直接回答:四板斧:滚动摘要(历史对话定期压缩成小结,保留近期原文)、工具结果裁剪(大段返回只留相关字段,原文存档可回查)、结构化状态外置(把“已做/待做/结论”抽成 state 对象,替代自然语言历史)、子 agent 隔离(脏活累活丢子 agent,只回传结论)。核心思想:上下文只放“决策所需信息”,其余存外部可按需取回。

展开解析:细节取舍:滚动摘要的关键是摘要本身的质量——让模型按固定模板总结(目标、已完成步骤、关键发现、待办),每 10~20 步触发一次,近期 2~3 轮保留原文防止摘要丢失细节;工具结果裁剪要在工具设计期就约定(返回里带 summary 字段),事后让模型读全量再总结等于没省;外置状态适合确定性信息(文件清单、任务树),模型每步读最新 state 而非翻历史。更激进的做法是上下文工程化分层:系统层(指令常驻)、状态层(结构化进度)、证据层(当前步骤所需的原始材料)、工作层(最近几轮),各层独立管理配额。坑:摘要是有损压缩,关键细节(某个精确报错信息、某个 ID)被摘要抹掉后模型会编造——重要事实要进 state 对象的字段而不是摘要散文;压缩触发点太早导致模型反复重新探索。监控上下文占用随任务步数的增长曲线,是 Agent 系统必备的健康指标。

追问方向:如何评测压缩策略对任务成功率的影响?KV cache 复用与上下文压缩的关系?

(约 480 字)