什么是上下文工程

作者:明知山 发布时间: 2026-01-16 阅读量:1

上下文工程这个词,最近一年在 AI 技术圈里被反复提起,但很多人的第一反应其实是:这是不是换个说法的 Prompt Engineering?如果只看表面,确实容易混在一起,但真正用过之后会发现,两者关注的层级完全不同。

Prompt 更像是在和模型“说一句话”,而上下文工程关心的是:模型在做判断时,脑子里到底放了哪些信息,这些信息以什么顺序、什么结构、什么粒度被放进去,又如何随着任务推进不断演化。

换句话说,上下文工程解决的不是“怎么问”,而是“模型在一个任务生命周期内,被允许知道什么”。

在传统软件工程里,我们早就习惯了“上下文”的概念。一次 HTTP 请求有上下文,一个事务有上下文,一个线程里也会绑定上下文信息。上下文工程做的事情,其实是把这种工程化思维,搬进了大模型的推理过程。

从效果上看,很多人第一次意识到上下文工程的重要性,往往是因为遇到了这些问题:模型一会儿聪明一会儿犯傻;同样的问题,换个顺序回答就变了;对业务规则的理解不稳定,越聊越偏;明明已经说过的前提,模型却“忘了”。

这些问题,靠反复改 prompt 很难彻底解决,本质原因在于:你并没有控制模型的上下文结构,只是在往一个黑盒里不断追加自然语言。

上下文工程的第一步,是把“信息”从“话术”中解耦出来。模型需要知道的内容,大致可以分为几类:稳定不变的背景信息、当前任务的目标和约束、可被引用的事实数据、以及随着对话产生的中间结论。这些信息混在一句 prompt 里,短期看还能跑,一旦任务变复杂,就会迅速失控。

一个典型的工程化做法是:把系统规则、业务边界、角色设定,作为长期上下文固定下来;把用户当前的任务意图,作为会话上下文;把实时数据、查询结果、规则计算结果,作为可插拔上下文;而对话历史本身,只保留对“下一步推理”真正有用的部分。

当你这样拆解之后,会发现很多“模型不稳定”的问题,其实是上下文污染。模型不是不会推理,而是在一堆互相干扰的信息中,做了一个你不期望的选择。

上下文工程的第二个核心,是“控制顺序”。大模型并不是平均地看待所有上下文,越靠后的内容,权重越高;越结构化的信息,越容易被遵守。把约束条件放在结果示例后面,和放在最前面,效果往往天差地别。这不是玄学,而是推理机制的自然结果。

因此,在工程实践中,常见的做法是:先给规则,再给目标,然后给数据,最后才是指令。这种顺序,会显著降低模型“自由发挥”的概率。

第三个容易被忽视的点,是上下文的生命周期管理。不是所有信息都应该一直留在上下文里。比如中间推导过程、已经完成的子任务、过期的数据,如果不主动清理,就会不断占用上下文窗口,甚至干扰后续判断。

这一步在复杂系统里尤其关键。很多看似“模型记忆混乱”的问题,实际上是上下文该删的不删,该替换的不替换。

从工程视角看,上下文工程并不神秘,它更像是三件事的结合:信息建模、状态管理、以及推理引导。你在做的不是“写更聪明的话”,而是“搭一个让模型更容易做对事的环境”。

如果你把大模型当作一个非常聪明、但短期记忆有限、又极其容易被暗示的同事,那上下文工程做的,就是把会议材料、规则说明、数据附件和会议议程提前准备好,并且在会议进行到下一阶段时,及时收走不再需要的纸张。

从这个角度看,上下文工程并不是一个只属于 AI 领域的新概念,而是工程化思想在新技术下的一次回归。真正决定系统效果的,往往不是模型参数,而是你如何构建它的“认知环境”。

对刚入门的人来说,不必一开始就追求复杂框架或术语。只要在实践中不断问自己三个问题:模型此刻需要知道什么?这些信息是否会干扰它的判断?它是否被迫记住了不该记住的东西。能把这三点想清楚,就已经走在上下文工程的路上了。