重构: agentic主循环拆分(提取自动压缩逻辑到context_lifecycle)

- context_lifecycle.rs: F-15自动压缩触发逻辑(maybe_auto_compress)

- title_lifecycle/knowledge_lifecycle: 文档说明(已在之前拆分到title.rs/knowledge_inject.rs)

- mod.rs从2222行降至2071行,行为零变更

- cargo check零警告通过
This commit is contained in:
lxy
2026-07-01 23:19:34 +08:00
parent 27b4268acb
commit 6e44878021
4 changed files with 332 additions and 190 deletions
@@ -0,0 +1,32 @@
//! Agentic 循环知识生命周期(文档占位)。
//!
//! ## 为什么没有抽取
//!
//! `run_agentic_loop` 中知识相关的逻辑**已经是模块化的**:所有调用点都是对已抽取函数的
//! 单行调用,不存在可内联抽取的知识逻辑。
//!
//! ### 已存在的知识模块
//!
//! 知识注入/提炼实现位于 [`super::super::knowledge_inject`] 模块,`mod.rs` 顶部已通过
//! `use super::knowledge_inject::{inject_knowledge_into_prompt, maybe_spawn_extraction};` 引入:
//!
//! - `inject_knowledge_into_prompt` —— 构建请求前把知识库上下文注入 system_prompt。
//! - `maybe_spawn_extraction` —— 后台知识提炼(需读已落库的对话消息)。
//!
//! ### mod.rs 中的调用点(均为单行)
//!
//! | 行 | 所在函数 | 调用 |
//! |----|----------|------|
//! | ~1853 | `run_agentic_loop`(正常完成后台 spawn) | `maybe_spawn_extraction(...)` |
//! | ~2092 | `try_continue_agent_loop` | `inject_knowledge_into_prompt(...)` |
//!
//! 注意:`run_agentic_loop` 入口的 system_prompt 构建**不**在 mod.rs 内联调用
//! `inject_knowledge_into_prompt` —— 知识注入发生在调用方(IPC commands.rs /
//! try_continue_agent_loop),loop 入参拿到的 `system_prompt` 已是注入后的最终值。
//! 故 mod.rs 内知识相关代码仅有上述 2 处单行调用。
//!
//! ### 结论
//!
//! 知识生命周期的抽取工作**早已完成**(knowledge_inject 模块独立)。本文件仅作占位与说明,
//! 无代码可移。`inject_knowledge_into_prompt` 的入口收敛(DRY B 改进)已在调用方完成,
//! 非 mod.rs 职责。