feat(engine): 添加运行时上下文支持并重构工具迭代限制
添加 RuntimeContext 类用于捕获模型运行时的日期时间信息, 包括UTC时间、本地时间和时区信息,并在系统提示中显示这些信息。 同时增加最大上下文消息数和工具迭代次数的配置选项, 将验证服务从引擎加载器中移除,并更新相关的数据结构和接口。 BREAKING CHANGE: 移除了验证服务,相关字段被替换为证据状态和接受状态。 - 添加 RuntimeContext 类和相关渲染方法 - 增加 max_context_messages 和 max_tool_iterations 配置 - 移除 ValidationService 相关代码 - 更新消息记录中的验证状态字段 - 添加原始工具调用检测和回退处理
This commit is contained in:
28
app-instance/backend/tests/unit/test_context_builder.py
Normal file
28
app-instance/backend/tests/unit/test_context_builder.py
Normal file
@ -0,0 +1,28 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from beaver.engine.context import ContextBuildInput, ContextBuilder, RuntimeContext, SessionContext
|
||||
|
||||
|
||||
def test_context_builder_injects_current_date_and_time() -> None:
|
||||
result = ContextBuilder().build_messages(
|
||||
ContextBuildInput(
|
||||
base_system_prompt="Follow user requests.",
|
||||
current_user_input="今天几号?",
|
||||
session_context=SessionContext(session_id="web:alpha", source="web", model="stub-model"),
|
||||
runtime_context=RuntimeContext(
|
||||
utc_datetime="2026-05-26T01:10:00+00:00",
|
||||
local_datetime="2026-05-26T09:10:00+08:00",
|
||||
timezone="Asia/Shanghai",
|
||||
utc_offset="+08:00",
|
||||
),
|
||||
)
|
||||
)
|
||||
|
||||
system_prompt = result.messages[0]["content"]
|
||||
assert "# Current Date and Time" in system_prompt
|
||||
assert "Current UTC time: 2026-05-26T01:10:00+00:00" in system_prompt
|
||||
assert "Current local time: 2026-05-26T09:10:00+08:00" in system_prompt
|
||||
assert "Local timezone: Asia/Shanghai" in system_prompt
|
||||
assert "Local UTC offset: +08:00" in system_prompt
|
||||
assert '"today", "tomorrow", "now", "this week", and "next month"' in system_prompt
|
||||
assert result.messages[-1] == {"role": "user", "content": "今天几号?"}
|
||||
Reference in New Issue
Block a user