大家好!!我的项目叫做illusion-agent,我对这个项目的定位是集百家之所长的全能 agent,其中会话管理与压缩机制的实现或者说灵感来自于ClaudeCode(https://github.com/YunTaiHua/illusion-agent)

在ClaudeCode中,有两种压缩方式微压缩和全压缩,微压缩是指移除工具结果仅保留最近5条工具结果并用占位符替代原有的工具结果,同时也会移除图片读取结果同样以占位符替代图片识别的结果,当微压缩后上下文占比还是超过了阈值就会触发全压缩,全压缩就是很经典的llm总结摘要,在ClaudeCode中发送给 LLM 的提示词要求生成 9 段结构化摘要:用户请求与意图、关键技术概念、文件与代码片段、错误与修复、问题解决过程、全部用户消息、待完成任务、当前工作、可选下一步

IllusionAgent与ClaudeCode的做法高度一致,但也有自己的特别处理,比如上下文占比尽可能的采用真实的用量值,只有在全压缩完成后的一瞬间采用类似ClaudeCode的估算值*4/3的计量方法(这里是因为全压缩完成后的一瞬间没有产生API调用暂时只能用估算值替代不过在llm完成一轮工具调用后马上又会变成真实值)

这种压缩方式的优点很明显,微压缩不涉及API调用,压缩完成几乎是无感的,在实际测试中,如果上下文窗口是1m,触发了微压缩后几乎不可能再触发全压缩,并且微压缩产生的效果也比全压缩llm生成摘要好得多,微压缩的信息损失和时间损耗远远低于全压缩。

不过,不同工具的压缩机制差异很大:
Codex CLI使用服务端加密压缩,客户端无法干预或检查,压缩后自动重新读取最近5个文件
Cursor通过强化学习训练模型自主总结
Copilot CLI在约80%上下文容量时自动触发压缩,阈值比大多数工具的95%更保守
TRAE的具体压缩机制未公开,官方文档提到有Context Compaction功能(TRAE的压缩体验非常差!!)

如果LLM能力不够,全压缩生成的摘要质量往往较差,甚至会导致LLM重复已经做过的工作。这也是为什么微压缩如此重要——它能在不损失信息的前提下大幅减少token占用,是比LLM全压缩更优的第一道防线。illusion-agent的做法就是吸取了ClaudeCode和OpenCode的分层思路,优先使用微压缩,只有万不得已才走全压缩

最后编辑于 2026-08-11 20:10