Context Engineering
上下文工程
设计模型每次推理时实际看到的信息组合,包括指令、资料、工具、历史、记忆和中间状态。
用一个类比理解
像为同事准备一张干净的工作台:不是把所有东西都堆上去,而是在正确时刻放上完成当前步骤所需的材料。这篇能帮你解决什么
带着目标读,读完可以验证
- 区分任务指令、事实资料和运行状态,组织一次模型输入
- 检查摘要压缩是否丢失了约束、证据或未完成事项
它解决什么
- 有限上下文里的信息取舍
- 多轮与 Agent 任务中的状态组织
它不是什么
- 它不只是把 Prompt 写长
- 更多上下文不必然带来更好结果
适合使用
- 系统有多类动态信息
- Agent 运行多步并需要保持关键状态
暂时别用
- 单次简单任务已能用短提示稳定完成
常见失败方式
- 上下文无限增长
- 不区分可信指令与外部内容
- 把无关历史反复带入
从一次失败的对话看问题#
教学情境: 客户先询问规则,后来修改订单号。应用每轮都把所有历史、全部商品文档和每个工具说明一起发送,模型仍然查了旧订单。这时只加一句“仔细阅读”未必能解决问题;需要检查旧信息、当前目标和确认状态如何组织。
上下文工程关注的是模型在这一步实际获得了什么信息。它包含提示设计,但还涉及资料筛选、工具返回结果和跨步骤状态。1
把输入分成三类#
- 任务指令: 要完成什么、允许什么、何时停止。来自应用的规则应与外部内容明确区分。
- 事实资料: 当前可访问的文档、查询结果与证据。保留来源、时间和必要的原文。
- 运行状态: 已确认的用户输入、已执行动作、失败原因、待确认事项。不要把计划当作执行记录。
这三类是本站用于教学的组织方式,不是某个协议规定的消息格式。
一份可检查的上下文清单#
当前目标:查询订单 ORD-204 的配送状态
已确认:本轮用户明确改用 ORD-204
尚未确认:是否需要修改地址
已完成动作:查询订单归属,校验通过
可用证据:物流接口响应及其查询时间
下一步限制:只查询;修改地址需要另行确认
该清单的价值是让人能够查错:订单号从哪里来,哪一步执行过,哪句话只是推测。不要在真实系统中相信模型自己填写的“校验通过”;该状态应由执行代码写入。
何时检索,何时压缩#
资料很多时,可以先取与当前问题有关的内容;长任务可以保存结构化笔记或压缩历史。Anthropic 同时指出,压缩过度可能丢失后来才显得重要的细节。1
因此压缩后要核查:明确约束是否还在、已执行动作是否准确、未解决问题是否保留、关键结论能否回到原文。证据编号和文件位置通常比一段无法追溯的总结更便于检查。
上下文够长不等于有效#
“放得下”和“用得对”是两件事。《Lost in the Middle》在其测试条件下观察到信息位置对结果的影响。2 这说明有必要测试自己的输入布局,而不是宣称某个长度以内必然可靠。
本站建议用同一道问题,分别提供精简资料和含干扰信息的资料,比较正确率、引用是否匹配和消耗。再单独测试摘要版本,避免同时更换模型、提示和资料后无法判断原因。
怎么继续排查#
检验理解 · 教学情境
你会怎么判断?
一段历史摘要写着“客户已同意退款”,但原始记录只有“客户想了解退款条件”。为了节省上下文继续沿用这段摘要,会有什么问题?
想好后,展开参考答案
摘要把询问升级成授权,改变了关键事实。应回到原始记录核查,并把已确认事实、尚待确认事项和来源分开保存。压缩后的文字不能成为执行退款的授权依据;执行权限仍由应用检查。
可信来源
依据在哪里,能说明什么
正文中的编号链接对应下列资料。教学案例与操作建议由本站整理,不是原作者的实验结果或普遍保证。
Effective context engineering for AI agents(2025)
支持的结论:讨论上下文选择、按需获取信息、压缩和结构化笔记,以及压缩丢失关键信息的风险。
适用边界:这是 Anthropic 的工程总结,具体保留策略并非适用于所有模型和任务的标准配方。
资料核验于 2026-09-05返回正文 ↑Lost in the Middle(2023)
支持的结论:在论文测试的模型与任务中,相关信息的位置影响长上下文使用效果。
适用边界:实验对应当时的模型与任务,不能直接套用为当前所有模型的性能曲线。
资料核验于 2026-09-05返回正文 ↑