1、定义
编码智能体把不断增长的“消息—工具调用—代码观察—测试输出—决策”轨迹,转换为一个更短的状态检查点;同时保留少量最近原始消息,并依靠测试、Git、PR、部署版本等外部工件重新读取细节。
2、机制有:
摘要旧历史、保留最近尾部、清理旧工具输出、AGENT.md、自动记忆-mem插件、进度文件补充持久状态、上下文编辑、
3、所以值得利用压缩机制实现的有
-1、让开发过程天然容易被表示成状态机;
0、让每个阶段产生可重新读取的外部证据;
1、失败测试和通过测试可以被视为一种语义校验和。完整的探索过程也许有几万 Token,但最终可能只需保存:
test_regression_427:修复前失败,修复后通过
完整测试:312 passed, 0 failed
这不能重建模型的全部推理,却能保存最关键的行为证据。Trae Agent 使用回归测试淘汰候选补丁,Anthropic 的长期任务方法也要求只有端到端验证后才把功能标为完成;这些公开经验均支持“测试是高密度状态信号”的判断。15
2、,Git、PR 和部署版本把上下文从“模型必须记住的文本”转变为“模型可以重新读取的地址”。压缩摘要无需复制完整 diff,只要保存:
commit: 81b7a62
PR: #427
deploy: api-2026.08.06-rc3
changed: auth/session.py, tests/test_session.py
需要细节时,智能体可以读取 commit、diff、PR 或部署日志。Anthropic 在长时间运行任务中把 Git 描述为可恢复的进度和协调机制,建议在每个有意义的工作单元后提交和推送。16
3、部署版本提供一个不可变的现实检查点。仅仅说“代码已经修了”仍存在工作区未提交、CI 未运行、部署未完成等不确定性;而“版本 X 已部署、健康检查 Y 通过”大幅减少了状态空间。下一轮任务可以从已知基线开始,而不是重新判断上轮修改到底进行到哪里。
4、减少未闭合推理分支。编码对话可能同时存在多个假设、临时实验和未完成编辑。压缩器必须判断哪些是结论、哪些已否定、哪些仍待验证。
上下文收益行为表
| 输入或工作模式 | 对压缩的影响 | 原因 |
|---|---|---|
| 一个 Bug 对应一个明确验收条件 | 很高正收益 | 目标和停止条件唯一 |
| 先复现,再修改 | 很高正收益 | 避免把“猜测问题”误记为“已确认问题” |
| 先添加失败测试 | 很高正收益 | 形成机器可验证的初始状态 |
| 小 diff、原子 commit | 很高正收益 | 摘要只需保存增量和提交指针 |
| 每阶段输出结构化 checkpoint | 很高正收益 | 降低摘要器判断事实类别的负担 |
| PR 和部署版本可寻址 | 高正收益 | 细节可外部恢复 |
| 工具只返回错误、摘要和退出码 | 高正收益 | 避免日志吞噬上下文 |
| 同时混合多个 Bug 和重构目标 | 强负收益 | 状态分支和依赖关系迅速增加 |
| 在文件改到一半时压缩 | 强负收益 | “磁盘状态、模型计划、测试状态”不一致 |
| 反复粘贴完整文件和完整日志 | 强负收益 | 前缀缓存和上下文窗口被低价值重复内容占用 |
| 只说“继续”“还是不行” | 负收益 | 压缩后无法恢复精确失败条件 |
| 把计划、事实、猜测混在同一段文字中 | 负收益 | 摘要容易把假设提升为事实 |
分享一个基于我思考的压缩智能体提示词;
你可以运行测试,你的对话压缩后剩下啥。
执行一次任务状态压缩。目标不是复述对话,而是让新的编码智能体
在不知道旧对话内容的情况下继续完成当前任务。
压缩规则:
1. 先读取并核对最新 CHECKPOINT、Git 状态、测试结果和当前 diff。
2. 最新工件与旧摘要冲突时,以最新可验证工件为准。
3. 严格区分:
- 已验证事实
- 尚未验证假设
- 已完成工作
- 尚未完成工作
4. 保留所有精确标识:
文件路径、符号名、测试名、错误消息、命令、退出码、
commit SHA、PR 编号、部署版本。
5. 保存失败尝试的结论和“不应重试”的原因。
6. 删除:
重复日志、进度条、礼貌表达、已被后续事实推翻的推测、
可通过 Git 或文件重新读取的大段内容。
7. 检查 next_exact_action 是否已被最新尾部完成;
已完成则重新计算下一动作,禁止原样复制过期 TODO。
8. 输出一份结构化 handoff,不输出额外解释。