新增: 上下文管理演进 Wave3(T5 WorkingContext 层注入)

PerConvState: 新增 working_context 字段
- 初始化 WorkingContext::new() 默认空

system_prompt 注入:
- L1a: 当前步骤(每轮必带,调用 build_injection)
- L1b: 脏标记条件注入(dirty_window=3,有变更才带)
- 拼入「## 工作上下文」段

T3 联动: compress 成功后的 reset_all 占位已在 context_lifecycle.rs 预埋
T4: 工作流注入点保留为独立段(待 workflow_id 字段落地)
L1c (read_context 工具): 待注册(依赖 tool_registry 接线)
This commit is contained in:
lxy
2026-07-20 08:11:40 +08:00
parent 3943d68430
commit 1eb2ca7dc5
2 changed files with 15 additions and 0 deletions
+12
View File
@@ -859,6 +859,18 @@ pub(crate) async fn run_agentic_loop(
} }
} }
// T5: WorkingContext L1 注入(L1a 常驻 + L1b 条件注入)
// 读取工作上下文,构建 L1 注入文本并拼入 system_prompt
{
let session = session_arc.lock().await;
if let Some(conv) = session.conv_read(&conv_id) {
let injection = conv.working_context.build_injection(3); // dirty_window=3
if !injection.is_empty() {
system_prompt = format!("{}\n\n## 工作上下文\n{}", system_prompt, injection);
}
}
}
// EnvSnapshot 环境感知:入口把当前平台的真实环境(OS/shell/工具版本)拼进 system_prompt 尾部。 // EnvSnapshot 环境感知:入口把当前平台的真实环境(OS/shell/工具版本)拼进 system_prompt 尾部。
// //
// 治「LLM 跨平台命令幻觉」:LLM 训练数据 Unix 多,易生成 macOS/Linux 语法命令(PowerShell 5 // 治「LLM 跨平台命令幻觉」:LLM 训练数据 Unix 多,易生成 macOS/Linux 语法命令(PowerShell 5
+3
View File
@@ -856,6 +856,8 @@ pub struct PerConvState {
/// ///
/// 随会话销毁(per_conv 内存,不落库):会话切换/删除后该标志消失,新会话从 false 开始。 /// 随会话销毁(per_conv 内存,不落库):会话切换/删除后该标志消失,新会话从 false 开始。
pub knowledge_extracted: bool, pub knowledge_extracted: bool,
/// T5 WorkingContext 常驻上下文(结构化目标/决策/步骤/脏标记)
pub working_context: df_ai::context_helpers::WorkingContext,
} }
/// 单个目标记录(含状态追踪)。 /// 单个目标记录(含状态追踪)。
@@ -914,6 +916,7 @@ impl PerConvState {
session_trust: HashSet::new(), session_trust: HashSet::new(),
created_at: None, created_at: None,
knowledge_extracted: false, knowledge_extracted: false,
working_context: df_ai::context_helpers::WorkingContext::new(),
} }
} }
} }