- [x] 增加todo模块 设计目的:解决 Agent 在复杂长任务中的“迷路”与“状态丢失”问题。 功能设计 : - 外部状态机 :传统的 LLM 依赖于对话历史(Context)来记忆进度,但随着 Token 剪枝,早期的任务目标极易丢失。Todo 模块将任务状态从“对话流”中剥离,持久化在内存(或 Repository)中。 - ReAct 深度集成 :为 Agent 提供了 todo 原子化工具( add , update , list 等),强制要求 Agent 在执行前先拆解任务(Plan),执行中实时更新状态(Execute/Update)。 - 架构解耦 (DIP) :严格遵循领域驱动设计(DDD),在 domain 层定义 TodoRepository 接口,Service 层仅依赖接口。这确保了未来可以无缝将内存存储切换为 SQLite 或远程数据库,而无需修改核心逻辑。 - [x] 优化token剪枝 设计目的:在有限的上下文窗口内,最大化保留有效信息,防止费用暴增与模型崩溃。 功能设计 : - 滑动窗口策略 (Sliding Window) :仅保留最近 3-5 轮工具执行的完整输出。这保证了 Agent 能够基于最新的环境反馈做决策。 - 软压缩 (Soft Compression) :对于窗口之外的旧工具调用,不再彻底删除,而是采用“剥离正文、保留状态头”的方法。 - 头尾保留截断 (Head-Tail Truncation) :针对超长文件读写或 Bash 输出,采用 60/40 比例保留开头(通常包含定义/Header)和结尾(通常包含报错/结果),中间部分用省略号替代。 - 动态阈值配置 :在 app_config.go 中引入了 MaxToolContextOutputSize 等配置项,允许用户根据所使用的模型(如 128k 的 Claude 或 8k 的本地模型)灵活调整剪枝激进程度。 - [x] 制作PRD 【设计目的】:确立项目技术边界,为后续功能迭代提供“北极星”指标。
设计目的:解决 Agent 在复杂长任务中的“迷路”与“状态丢失”问题。
功能设计 :
外部状态机 :传统的 LLM 依赖于对话历史(Context)来记忆进度,但随着 Token 剪枝,早期的任务目标极易丢失。Todo 模块将任务状态从“对话流”中剥离,持久化在内存(或 Repository)中。
ReAct 深度集成 :为 Agent 提供了 todo 原子化工具( add , update , list 等),强制要求 Agent 在执行前先拆解任务(Plan),执行中实时更新状态(Execute/Update)。
架构解耦 (DIP) :严格遵循领域驱动设计(DDD),在 domain 层定义 TodoRepository 接口,Service 层仅依赖接口。这确保了未来可以无缝将内存存储切换为 SQLite 或远程数据库,而无需修改核心逻辑。
优化token剪枝
设计目的:在有限的上下文窗口内,最大化保留有效信息,防止费用暴增与模型崩溃。
功能设计 :
【设计目的】:确立项目技术边界,为后续功能迭代提供“北极星”指标。