上下文工程怎么做:长任务智能体的上下文管理方案提示词(放什么进上下文、何时压缩、怎么记笔记和按需取回)
智能体或长对话应用跑着跑着「忘了」前面的要求、重复做已经做过的事,或者上下文被工具返回的大段内容塞满时用:描述任务和现象,AI 帮你盘点上下文里每类内容的去留,设计压缩、外部笔记和按需检索的策略,并给出交接时用的状态摘要模板。
通用大模型 对话模型通用
我在做一个需要长时间运行或多轮对话的大模型应用,遇到了上下文管理的问题。请帮我设计上下文方案。出发点是:上下文容量有限,而且内容越多、越杂,模型对其中任何一条信息的注意都会被稀释,所以目标不是「尽量塞满」,而是「每一步只让模型看到当下需要的」。 应用与任务:[应用与任务] 一次任务的典型长度:[任务长度](多少轮、多少次工具调用、会读多少资料) 现在放进上下文的内容:[当前上下文构成] 观察到的问题:[观察到的问题](例如:后半段忘记约束、重复读同一个文件、被旧信息误导) 可用的手段:[可用手段](能否写文件、有无数据库或检索、是否支持子智能体、平台是否提供自动压缩) 请输出: 一、上下文盘点 把我当前放进上下文的内容分类,逐类判断: - 每一步都需要的(任务目标、关键约束、当前计划与进度); - 只在特定步骤需要的(某份资料、某个工具的详细说明); - 用过之后只需保留结论的(工具返回的大段原文、搜索结果、中间推导); - 已经过时、会造成误导的(被推翻的结论、旧版本文件内容)。 对每一类给出处理方式:常驻、按需取回、用后只留摘要、及时移除。 二、常驻区怎么写 系统提示词与任务说明里应固定保留什么;怎样写才不至于臃肿;容易被遗忘的关键约束是否需要在长任务中途以用户消息的形式重申,多久一次。 三、工具返回内容的控制 返回前裁剪字段与长度;长内容先给摘要和定位信息,需要时再取详情;同一内容避免重复进入上下文。 四、外部笔记 1. 让智能体把什么写到上下文之外:进度清单、已做出的决定及理由、已排除的方案、待办与未解决的问题、关键事实及其来源。 2. 笔记的格式模板,以及何时写、何时读(例如每完成一个阶段更新一次,每次重新开始时先读)。 3. 结构化状态(如测试是否通过、任务清单)与自由文本笔记分别适合记什么。 五、压缩与交接 1. 何时触发压缩或重开一个新的上下文;压缩时必须保留的内容清单(目标、约束、当前状态、已改动的对象、下一步、未解决问题)与可以丢弃的内容。 2. 给出一份「交接摘要」模板:让接手的新上下文只读这一页就能继续。 3. 重新开始后的第一件事:读笔记、核对当前真实状态(而不是相信摘要里的描述),再继续。 六、用子智能体隔离 哪些环节适合交给子智能体在独立上下文里完成、只带回结论(如大范围搜索、通读长文档);交代任务与带回结果各应遵循什么格式。不适合时直接说明。 七、验证 设计 3 个测试:一个超长任务、一个中途改需求的任务、一个需要在后期引用早期信息的任务,观察改动前后的差别;说明应记录哪些指标(任务完成情况、重复操作次数、上下文长度变化)。 涉及具体平台的能力(自动压缩、记忆工具、上下文长度)时,请标注「以所用平台的最新文档为准」。
高亮处换成你自己的内容:[应用与任务]、[任务长度]、[当前上下文构成]、[观察到的问题]、[可用手段]
ChatGPT Plus 充值
已被复制 0 次
使用说明
从「写提示词」到「管上下文」:单轮问答里,把提示词写好就够了;到了多步的智能体任务,模型每一步看到的不只是你的提示词,还有历史对话、工具返回、读过的文件……这些加起来才决定它的表现。上下文不是越多越好:容量有上限,而且塞进去的无关内容越多,关键约束越容易被淹没。所谓上下文工程,就是有意识地决定每一步让模型看到什么。
四个基本手段,提示词已逐一覆盖:常驻区只留每一步都要的;工具返回的内容先裁剪、先摘要;把进度和决定写到上下文之外的笔记里,需要时再读;上下文快满或换阶段时做压缩并写交接摘要,必要时用子智能体把「脏活」隔离出去。
怎么填变量:[当前上下文构成] 尽量按实际顺序列出并估个长度,如「系统提示词约 3000 字;工具定义 12 个;全部历史消息;每次搜索返回 10 条全文」。[观察到的问题] 写具体现象,比笼统的「效果不好」有用得多。[可用手段] 决定方案能走多远:能写文件的环境,笔记是最划算的办法。
常见问题与调整:
- 压缩后丢了关键信息 → 追问:「这是压缩前后的内容,请指出丢失了哪些必须保留的信息,并修改压缩指令。」
- 笔记越记越乱 → 让它定规矩:「把笔记分成『当前状态』(每次覆盖更新)和『决定记录』(只追加)两部分,各给一个模板。」
- 模型在长对话后半段不再遵守格式 → 把格式要求在最近的用户消息里重申一次,通常比继续加长系统提示词有效。
配合使用:提示词本身过长的精简方法见本站「提示词太长怎么精简提示词」;交给子智能体的任务怎么写见「给 AI 智能体写任务说明书的提示词」。
示例输出
示例,仅供参考(应用:编程智能体做一次跨 20 多个文件的重构;节选)
上下文盘点
| 内容 | 分类 | 处理方式 |
|---|---|---|
| 重构目标、不能改动的公共接口清单 | 每一步都需要 | 常驻;每完成 5 个文件后重申一次 |
| 读过的源文件全文 | 用后只需结论 | 改完即不再保留全文,笔记里记「已改 / 改了什么」 |
| 测试运行的完整输出 | 用后只需结论 | 只保留失败用例名称与报错的前几行 |
| 第一版方案(已被否决) | 已过时 | 移除,仅在「决定记录」留一行否决理由 |
交接摘要模板
- 目标与不可违反的约束;
- 当前状态:已完成的文件清单、测试结果(通过与失败的数量);
- 已做出的决定及理由;已排除的做法;
- 下一步要做的三件事;
- 未解决的问题与需要确认的事项。
重新开始后的第一步:读摘要与笔记,然后运行一次测试并查看版本库状态,以实际结果为准。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~