关于各家压缩机制的研究

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,不输出额外解释。

end:把压缩视作失忆纳入管理

把压缩视作失忆纳入管理

1 个赞

说实话,cc的记忆理念和压缩机制和召回排序机制依旧是top行列,可以去读下他们前几个版本曝光的源码康康

1 个赞