系统会启动一次专门的“压缩请求”，把当前长对话发给模型，让它按固定格式总结：

- 用户原始需求
- 做过哪些修改
- 关键文件和代码
- 遇到的错误
- 当前工作进度
- 下一步应该做什么

这不是随便总结，而是为了让后续模型能“接着干活”。

**压缩后只保留三类内容**  
压缩后的上下文大致变成：

[compact_boundary 标记]
[旧对话的详细摘要]
[最近几轮原始消息，完整保留]
[必要附件：文件状态、计划、工具说明、hooks 等]

1.compact_boundary 是一个系统消息，意思是：  
“这之前的内容已经被摘要覆盖了，之后请求模型时不要再把更早历史塞进去。”

后续每轮都会从最后一个 compact_boundary 开始取消息，避免重复带上旧历史。


2.压缩请求共享主对话的缓存前缀


system: 稳定行为规则

messages:
1. user: 压缩摘要 + 必要附件
2. user/assistant/tool: 最近保留的真实消息
3. user: 当前新请求

