Agent 与工作流实战上下文压缩Agent
上下文预算:该留什么、该压什么
给长会话定一套取舍规则:保留哪些原文、哪些转成摘要、哪些直接丢,避免越聊越糊。
提示词模板
我的 Agent 会话越跑越长,后面开始忘前面、答得发散。帮我做一次上下文预算设计。
上下文窗口:{{模型窗口大小}}
任务类型:{{长文档分析 / 多轮客服 / 代码库改造 等}}
当前已用长度与症状:{{大概用了多少、具体表现}}
请输出:
1. 分层:把上下文分成「必须原文保留 / 可摘要 / 可丢弃」三层,每层列出具体内容类型;
2. 保留原文的白名单:哪些内容一个字都不能压(如用户明确的约束、已确认的决策、报错原文);
3. 压缩规则:什么时候触发压缩、压缩成什么结构(给出摘要模板字段)、压缩后如何校验没丢关键信息;
4. 外置:哪些内容应该挪到文件或数据库里按需检索,而不是一直放在对话里;
5. 回读:需要旧信息时怎么取回,取回后放在上下文的什么位置;
6. 预警:给出一个长度阈值和触发后的动作,避免每次都等到窗口撑爆。
约束:不要建议「全部摘要」这种一刀切做法;说明压缩可能引入的风险,以及哪些任务不该压缩。需要替换的部分
复制模板后,把下面这些 {{…}} 换成你的真实信息;没有的信息宁可留空,也不要让模型编。
{{模型窗口大小}}{{长文档分析 / 多轮客服 / 代码库改造 等}}{{大概用了多少、具体表现}}
什么时候用
长文档处理、多轮对话 Agent、代码库级改造任务。
示例
代码改造会话超过 60% 窗口时,把已完成文件的改动压成「文件—改了什么—遗留问题」三列,未改动的计划保持原文。
使用建议
- 1用户下过的硬约束(不许改的字段、必须遵守的格式)永远原文保留。
- 2压缩后用一个问题回测:问它「我们之前定了哪三条约束」,答不全就说明压过头了。
- 3历史越长不代表越好,无关的旧轮次会稀释当前指令。
方法来源:原创整理。模板为中文改写与整理,可按你的任务继续修改。