上下文工程(Context Engineering)

在上一节中,我们学习了提示词版本管理,知道一条提示词要想长期稳定使用,不能只保存正文,还要记录模型、参数、测试结果和运行环境。

但新的问题又来了:大模型真正看到的内容,远远不只有一段 Prompt。

你上传的文件、前面的聊天记录、系统提示词、用户偏好、知识库资料、工具返回结果,甚至当前时间和登录身份,都会一起影响 AI 的回答。

有时候,提示词本身明明已经写得很清楚了,但 AI 还是把事情办砸了。这往往不是因为你 “不会提问”,而是它根本没拿到正确的资料,或者桌面上堆了太多过期、互相冲突的信息。

所以,我们需要把格局打开,从 “怎样写好一句 Prompt”,升级到 “怎样管理 AI 干活时能看到的全部信息” ——这就是所谓的 “上下文工程”。

上下文工程的概念:从写好提示词到管理AI全部信息的转变

提示: 这一节会稍微涉及一点 AI Agent 的概念,但并不要求小伙伴们会写代码。我们只需要理解 “给 AI 正确的资料,并及时清理无关信息”,就已经在使用上下文工程了。

什么是上下文工程?

简单来说,上下文(Context)是大模型在处理当前请求时,实际能够读取和利用的 “全部信息” 。它不仅包括你刚敲下去的那句话,还包括:

  • 系统规则。
  • 当前任务。
  • 对话历史。
  • 外部资料。
  • 用户偏好。
  • 工具定义和结果。
  • 当前时间与业务状态。
  • ……

而 “上下文工程”,就是研究如何挑选、整理并把这些资料喂给大模型的全过程。

大模型上下文包含的多种信息维度:系统规则、外部资料等

很多小伙伴以为 “上下文工程” 只是给 “提示词工程” 换了个高大上的马甲,其实两者的侧重点是不太一样的:

  • 提示词工程:重点研究 “怎么说” ,也就是怎么把任务说明白,包括角色、任务、约束等。
  • 上下文工程:重点研究 “给什么” ,也就是让 AI 看见什么、不知道什么、什么时候看见。

一条真正在业务中干活的 Prompt,通常长这样:

最终请求 = 提示词(怎么做) + 上下文(给什么)

上下文中通常包含哪些内容?

对于一次会话来说,上下文一般会包含下面这几类内容:

  • 系统规则:相当于 AI 的 “岗位说明书”,规定了它的角色和安全边界(比如 “客服助手只能根据政策回答,遇大额争议转人工”)。
  • 当前任务:用户这次到底要干嘛。最好明确目标和限制,别只丢一句 “帮我处理下”。
  • 对话历史:多轮对话的 “记忆”。但历史不是越长越好,如果前面换了三次方案,旧要求还留着,AI 就不知道到底听谁的了。
  • 外部资料与知识库:决定了 AI 能不能基于事实说话,而不是靠训练时的老黄历瞎编。常见的 RAG 就是干这个的:先找资料,再让模型回答。
  • 用户偏好与记忆:比如用户习惯看简短回答、对花生过敏,能让回答更贴心。但重要信息发生变化时仍需要确认更新。
  • 工具及返回结果:比如旅行助手不仅得知道 “能查天气”,还得拿到具体的城市、日期和最新的天气数据,才能决定行程要不要调整。

AI 会话上下文中通常包含的6类核心内容

为什么上下文不是越多越好?

很多小伙伴一听到上下文工程,第一反应就是:“那我把所有资料都塞进去,不就万无一失了吗?”

尽量别这么干,这容易把 AI 的脑子变成垃圾场。资料塞得太多,会带来几个挺要命的问题:

  • 无关信息变多:你的核心要求被大量闲聊和旧资料淹没。
  • 资料互相打架:不同版本的规则都在,AI 根本不知道信谁的。
  • 信息过期:旧价格和旧政策继续影响答案。
  • 又慢又贵:每次都传一堆冗余数据,Token 成本直线上升,速度更慢。
  • 窗口占满:真正重要的新信息反而挤不进去了。

上下文资料过载会导致AI产生无关信息干扰和互相打架等问题

这就好比开会讨论活动方案,你把公司成立以来的所有合同和财务报表全搬进会议室。资料确实是全了,但大家可能连桌子在哪都找不到了

真正好的上下文,不是 “什么都有”,而是符合下面四个要求:

  • 正确:资料本身可靠,没有明显错误。
  • 相关:与当前任务直接有关。
  • 及时:使用的是当前有效版本,而不是过期内容。
  • 清晰:来源、结构和优先级都容易理解。

上下文工程的核心方法

要做好上下文工程,通常有下面几个核心思路:

  • 按需提供,别一次塞满:用户问退款,你只给对应订单和退款政策就行了,没必要把整个商城的用户记录全扔过去。这种思路叫 “按需检索”。
  • 标清来源和优先级:给了多份资料时,告诉 AI 谁说了算。比如 “以最新版为准,冲突时列出差异,别自行决定”。
  • 压缩又臭又长的对话:聊了几十轮后,可以让 AI 把前面的结论写成一个小摘要,只保留有效约束,扔掉已淘汰的废话。
  • 及时更新和删除过期信息:价格变了、项目结项了,旧信息就要及时标记失效或删除。不然 AI 可能会一直拿三年前的偏好来敷衍今天的你。
  • 将不同任务和用户隔离开:上一秒在写活动方案,下一秒要改代码,最清爽的做法是直接新开一个对话。不同用户、不同任务的数据更要严格隔离防串台。

做好上下文工程的5个核心方法:按需检索、标清优先级等

普通用户怎样做好上下文工程?

上下文工程听起来很像开发者的专属技能,其实普通用户每天也都在用,只是以前没有给它起名字而已。

平时我们使用 ChatGPT、Claude 或其他 AI 工具时,可以遵循下面几个简单做法:

  • 一个对话尽量只聊一个核心任务,换主题就新开对话。
  • 传文件时只传相关的,顺便提一嘴哪个是最新的。
  • 长对话聊到一半,让 AI 先总结一下已确认的结论,再接着聊。
  • 重要日期、预算等条件,尽量在当前消息里重新确认一下。
  • 遇到资料打架,要求 AI 先把冲突点列出来,别让它擅自补全。

普通用户在使用 AI 工具时做好上下文工程的5个实用技巧

我们可以参考下面这个模板,来组织背景信息。

示例:

# 当前任务
[说明这一次需要 AI 完成什么]

# 关键背景
[只填写会影响结果的重要信息]

# 可用资料
[列出文件、链接或数据,并注明日期和来源]

# 已确认约束
[预算、时间、范围、禁止事项等]

# 仍不确定的信息
[存在冲突或需要补充的内容]

# 输出要求
[说明需要的格式和详细程度]
要求:如果信息不足或资料冲突,请先指出问题,不要擅自补全。

开发 AI 应用时,还要注意什么?

对于普通用户来说,整理好文件和聊天记录已经很管用了。但如果你是在开发 AI 应用,那就需要把上下文做得更系统一些:

  • 动态检索:根据问题从数据库搜出少量资料,而不是一次塞满,控制噪音和成本。
  • 保存信息溯源:回答最好能追溯到具体的文件片段和更新时间,出了问题好排查。
  • 区分长期记忆和当前事实:语气偏好可以做长期记忆;但库存、订单这种变量,应当实时查,不能依赖死记硬背。
  • 控制工具和数据权限:扔进上下文的数据必须经过后端权限校验,不能让 AI 越权。
  • 测试上下文变化:检索规则调整了,旧的评测结果可能就失效了,上下文组件也需要回归测试。

开发者在开发 AI 应用时需要注意的5个系统级上下文管理机制

完整实战:给 AI 旅行助手准备上下文

假设我们想让 AI 帮忙规划一次三天旅行。最简单的提问可能是:

帮我安排一份北京三日游行程。

这句话没有错,但 AI 缺少太多关键信息:哪三天、从哪里出发、预算多少、同行者是谁、有没有已经订好的酒店、能不能走太多路。如果它只能自己猜,生成的行程看起来可能很完整,实际却不一定适合你。

更完整的上下文可以这样组织:

# 系统规则
你是一名旅行规划助手。只能根据用户已确认的信息和最新查询结果安排行程。
如果营业时间、天气或交通信息无法确认,请明确标记。

# 当前任务
安排一份北京三日游行程。

# 用户与同行者
- 两名成年人和一名 8 岁儿童。
- 不希望每天步行超过 12 公里。
- 喜欢传统建筑和当地美食,不安排购物中心。

# 已确认信息
- 旅行日期:[填写日期]
- 酒店位置:[填写区域]
- 已预订项目:[填写项目,没有则写“无”]
- 每日预算:[填写预算]

# 可查询工具
- 天气查询
- 地图与交通时间
- 景点营业时间

# 输出要求
- 按上午、下午、晚上安排。
- 每天保留休息时间。
- 对需要预约的项目进行标记。
- 不要擅自修改已确认的酒店和预订。

这份上下文里,没有塞进去用户之前的电影清单和工作总结,只保留了刚好够做这份行程的 “纯净” 数据。

这就是上下文工程的核心:不是把 AI 喂得越撑越好,而是让它在需要的时候,刚好拿到完成任务所需的那一盘资料。

常见问题

1. 只有开发者才需要学上下文工程吗?

不是的。普通用户在上传文件、清理旧聊天记录、说明当前约束时,其实就已经在使用上下文工程了

开发者只是在这个基础上,进一步使用了知识库、权限系统把它自动化了。

2. 上下文工程就是 RAG 吗?

不是一回事。RAG 主要负责从外部知识库中检索相关资料,再交给模型回答,它是上下文工程中的一种常见方法。

而上下文工程的范围更大,还包括系统提示词、聊天历史、用户记忆、工具结果、信息压缩和权限隔离等。

3. 大模型的上下文窗口越来越大,是不是就不用管了?

大窗户确实能装下更多东西,但不代表你要把杂物也往里扔。过期和冲突的信息依然会干扰 AI,而且会导致响应更慢、花钱更多。

4. 聊天记录需要全部保留吗?

不需要。留下仍然影响当前任务的约束和决定就行了。如果话题彻底变了,新开个对话通常会比背着几十轮历史包袱更清爽。

5. 提示词工程和上下文工程,哪个更重要呢?

两者缺一不可。提示词工程负责说明 “要做什么”,上下文工程负责提供 “用什么做”。指令写得再漂亮,没有资料也是白搭;资料堆得再全,没有明确任务照样跑偏。

上一篇:

下一篇:

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号