背景
MicroCompact 是早期设计的上下文压缩机制,用于在 token 预算接近上限时对历史消息进行局部摘要压缩。随着项目演进,该方案暴露出以下问题:
主要:这个策略对缓存命中不友好,对于之前设计考量的是claude的缓存过期,而不并非适合所有模型,由此准备删除
- 复杂度高:涉及 summarizer 注册、pin checker、policy 路由等多层抽象,维护成本与收益不成正比
- 与现有 Compact 策略重叠:当前
context-compact.md 定义的全局 compact 已能覆盖预算管理需求
- 代码耦合深:microcompact 的类型定义散布在
context/types.go、tools/manager.go、tools/registry.go 等多处,增加了模块间耦合
- 测试负担大:microcompact 相关测试文件超过 1400 行,但实际功能未被主链路使用
目标
彻底移除 MicroCompact 子系统,降低代码复杂度,明确上下文管理的单一职责。
范围
删除文件
internal/context/microcompact.go — 核心压缩逻辑
internal/context/microcompact_test.go — 单元测试
internal/context/microcompact_summarizer_test.go — summarizer 测试
internal/context/pin_checker.go — pin 检查器
internal/context/pin_checker_test.go — pin 检查器测试
internal/tools/micro_compact_policy.go — policy 定义
internal/tools/micro_compact_summarizer.go — summarizer 接口
internal/tools/micro_compact_summarizer_test.go — summarizer 测试
internal/tools/micro_compact_summarizers_builtin.go — 内置 summarizer 实现
修改文件
internal/context/types.go — 移除 MicroCompact 相关类型与字段
internal/context/builder.go — 移除 microcompact 引用与构建逻辑
internal/context/projection.go — 移除 microcompact 投影逻辑
internal/config/context.go — 移除 microcompact 配置项
internal/config/loader.go — 移除配置加载中的 microcompact 分支
internal/tools/manager.go — 移除 summarizer 注册
internal/tools/registry.go — 移除 microcompact 工具注册
internal/runtime/runtime.go — 移除 runtime 中的 microcompact 引用
internal/app/bootstrap.go — 移除启动时的 microcompact 初始化
docs/context-compact.md — 移除 microcompact 相关文档
docs/tech-debt.md — 更新技术债务清单
docs/roadmap.md — 更新路线图
不在本任务范围
- 全局 Compact 策略的优化(独立任务)
- Budget 闭环的进一步完善(独立任务)
验收
背景
MicroCompact 是早期设计的上下文压缩机制,用于在 token 预算接近上限时对历史消息进行局部摘要压缩。随着项目演进,该方案暴露出以下问题:
主要:这个策略对缓存命中不友好,对于之前设计考量的是claude的缓存过期,而不并非适合所有模型,由此准备删除
context-compact.md定义的全局 compact 已能覆盖预算管理需求context/types.go、tools/manager.go、tools/registry.go等多处,增加了模块间耦合目标
彻底移除 MicroCompact 子系统,降低代码复杂度,明确上下文管理的单一职责。
范围
删除文件
internal/context/microcompact.go— 核心压缩逻辑internal/context/microcompact_test.go— 单元测试internal/context/microcompact_summarizer_test.go— summarizer 测试internal/context/pin_checker.go— pin 检查器internal/context/pin_checker_test.go— pin 检查器测试internal/tools/micro_compact_policy.go— policy 定义internal/tools/micro_compact_summarizer.go— summarizer 接口internal/tools/micro_compact_summarizer_test.go— summarizer 测试internal/tools/micro_compact_summarizers_builtin.go— 内置 summarizer 实现修改文件
internal/context/types.go— 移除 MicroCompact 相关类型与字段internal/context/builder.go— 移除 microcompact 引用与构建逻辑internal/context/projection.go— 移除 microcompact 投影逻辑internal/config/context.go— 移除 microcompact 配置项internal/config/loader.go— 移除配置加载中的 microcompact 分支internal/tools/manager.go— 移除 summarizer 注册internal/tools/registry.go— 移除 microcompact 工具注册internal/runtime/runtime.go— 移除 runtime 中的 microcompact 引用internal/app/bootstrap.go— 移除启动时的 microcompact 初始化docs/context-compact.md— 移除 microcompact 相关文档docs/tech-debt.md— 更新技术债务清单docs/roadmap.md— 更新路线图不在本任务范围
验收
go build ./...编译通过go test ./...全部通过go vet ./...无警告