上下文压缩

Compaction

一种在内存中完成的 Handoff:将上一 Session 的历史压缩成摘要,并用这份摘要开启一个新的 Session。设计上是有损的——原始对话记录是一手来源,摘要只是二手来源,用细节换取上下文余量。可以由用户手动触发,也可以通过 Autocompact 自动触发。

其机制在于:上下文窗口有限,长 Session 会把它填满——每次工具结果、每次文件读取、每次走弯路都会留在历史里。当上下文不堪重负时,Harness 会让模型总结当前 Session,丢弃原始历史,再用摘要启动新 Session。凡是没写进摘要的内容,都会从上下文中消失。有些 Harness 会缓和这一点:把旧对话记录保留在磁盘上,并在摘要里留下一个指向它的上下文指针——二手来源从而链接回一手来源,这样摘要遗漏的细节可以通过重新读取原始记录找回来。

摘要由模型生成,因此可以通过 Prompt 引导。写上“保留 schema 决策”能让生成结果更有目的性。时机也很重要——在阶段边界、计划确定之后再压缩,而不是任务做到一半。

与清空(clearing)相比:清空会丢掉一切、从头开始;上下文压缩会尽量把关键信息带过去;清空则赌这些信息已经写在更合适的地方了。

用法:

“上下文越来越重了,可我还要把测试跑通。”

“开始前先压缩——把必须保留的东西写进摘要 Prompt,这样新 Session 能保留 schema 决策,同时丢掉探索过程。”