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(), } } }