From 1eb2ca7dc5e2463c92a149ab637969900c09ee13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BB=9D=E5=B0=98?= <237809796@qq.com> Date: Mon, 20 Jul 2026 08:11:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E:=20=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=96=87=E7=AE=A1=E7=90=86=E6=BC=94=E8=BF=9B=20Wave3=EF=BC=88T?= =?UTF-8?q?5=20WorkingContext=20=E5=B1=82=E6=B3=A8=E5=85=A5=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 接线) --- src-tauri/src/commands/ai/agentic/mod.rs | 12 ++++++++++++ src-tauri/src/commands/ai/mod.rs | 3 +++ 2 files changed, 15 insertions(+) diff --git a/src-tauri/src/commands/ai/agentic/mod.rs b/src-tauri/src/commands/ai/agentic/mod.rs index 229b5fd..df917a7 100644 --- a/src-tauri/src/commands/ai/agentic/mod.rs +++ b/src-tauri/src/commands/ai/agentic/mod.rs @@ -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 尾部。 // // 治「LLM 跨平台命令幻觉」:LLM 训练数据 Unix 多,易生成 macOS/Linux 语法命令(PowerShell 5 diff --git a/src-tauri/src/commands/ai/mod.rs b/src-tauri/src/commands/ai/mod.rs index ab67fd1..df4a2ee 100644 --- a/src-tauri/src/commands/ai/mod.rs +++ b/src-tauri/src/commands/ai/mod.rs @@ -856,6 +856,8 @@ pub struct PerConvState { /// /// 随会话销毁(per_conv 内存,不落库):会话切换/删除后该标志消失,新会话从 false 开始。 pub knowledge_extracted: bool, + /// T5 WorkingContext 常驻上下文(结构化目标/决策/步骤/脏标记) + pub working_context: df_ai::context_helpers::WorkingContext, } /// 单个目标记录(含状态追踪)。 @@ -914,6 +916,7 @@ impl PerConvState { session_trust: HashSet::new(), created_at: None, knowledge_extracted: false, + working_context: df_ai::context_helpers::WorkingContext::new(), } } }