上下文工程是什么?为什么它比单纯写 Prompt 更重要?

上下文工程是什么?为什么它比单纯写 Prompt 更重要?
这道题考的是你对 AI 应用工程的深层理解。很多人觉得写好 Prompt 就够了,但面试官真正想看你懂不懂"上下文工程"这套系统思维。
简单说:上下文工程是管理 AI 信息环境的全套方法论,Prompt 只是其中一小块。
上下文工程到底管什么
先泼盆冷水:很多人写的 Prompt 其实是在"许愿"。
"请帮我写一篇优质文章"——什么叫优质?给谁看?什么场景?这些你没说,AI 也猜不准。
上下文工程解决的就是这个问题。它不是优化单次输入,而是管理整个信息环境,让 AI 在正确的前提下做正确的事。
想象一下:你是个厨师,光告诉你"做道好吃的菜"够不够?不够。你还得知道今天有什么食材、厨房有什么厨具、客人有什么忌口。这些信息加在一起,才是完整的"上下文"。
上下文工程的五大信息来源:
- 用户输入:当前任务的具体描述
- 对话历史:之前的交互积累
- 外部数据:文档、数据库、知识库
- 环境信息:时间、地点、用户身份
- 工具结果:代码执行、搜索返回的结果
上下文工程要做的事情,就是把这些信息来源管理好、调度好,确保 AI 拿到的是高质量的输入。

System Prompt 和运行时上下文不是一回事
很多人把这两东西混为一谈,面试说出来就知道你还没搞清楚。
System Prompt 是静态规则,定义 AI 的角色、目标、行为边界。比如"你是一个专业的数据分析师,回答要严谨,引用数据要标注来源"。这东西设一次,基本不动。
运行时上下文是动态信息,是这次任务需要的具体情报。比如用户今天上传了一份销售报表,想分析 Q3 的趋势——这个"Q3 销售报表"就是运行时上下文,它每句话都在变。
类比一下:System Prompt 像公司发的员工手册,告诉你做事的基本原则。运行时上下文像领导今天交代的新任务,你知道原则,但得先搞明白今天要干嘛。
System Prompt 设边界,运行时上下文填血肉。 两者配合,AI 才能既懂规矩又懂任务。

为什么上下文工程比写 Prompt 更重要
这才是这道题的核心。
Prompt 解决的是"怎么说"的问题——我用什么语气、什么结构、什么格式来表达需求。
上下文工程解决的是"在什么情况下说"的问题——没有足够的上下文,任务连被解决的前提都不具备。
打个比方:Prompt 是你的发言稿,上下文工程是让这场会议能开起来的所有准备工作。会议室没订、参会人员没通知、资料没打印——稿子写得再好也白搭。
Prompt 工程做的是锦上添花,上下文工程做的是雪中送炭。你把 Prompt 优化到 100 分,上下文一团糟,AI 该答不上来还是答不上来。
| 对比维度 | Prompt 工程 | 上下文工程 |
|---|---|---|
| 关注点 | 单次输入的优化 | 整个信息环境的管理 |
| 目标 | 怎么说得更清楚 | 确保有足够的信息让任务可解 |
| 范围 | 一句话/一段话 | 用户输入+历史+外部数据+环境+工具 |
| 核心问题 | 这个请求怎么表达更好 | 这个任务需要什么信息、从哪来 |

两个让上下文失效的杀手
知道上面那些还不够,面试官想看你有没有踩过坑、踩过什么坑。
杀手一:信息稀释
大模型有上下文窗口限制,不是你想塞多少就塞多少。信息太多,有效内容反而被淹没。就像开会,人多了发言多了,关键信息反而没人记住。
杀手二:中间丢失效应
模型对开头和结尾的内容记忆最深,中间部分容易"看漏"。写一大段背景,中间那段大概率被忽略。
怎么应对?高信噪比原则。不是塞更多信息,而是确保每条信息都有用。
Claude Code 模式的做法值得借鉴:先减法,再加载。先把不相关的清干净,按需加载必要信息。Token 预算要分层管理:
- 高优先级内容:必须放在固定位置,比如当前任务描述
- 中优先级内容:可折叠,必要时展开
- 低优先级内容:精简或省略

面试怎么答
基础版(150字左右):
上下文工程是构建向 LLM 提供精准、及时信息的系统性方法。核心目标是让任务"有可能被解决"——给够上下文是前提。跟 Prompt 工程不一样,Prompt 优化单次输入的表述方式,上下文工程管理整个信息环境,包括用户输入、对话历史、外部数据、环境信息、工具结果等多个来源。另外,System Prompt 设的是静态边界,运行时上下文需要动态管理。
加分版(加这些点):
还要注意两个上下文失效的杀手:信息稀释和中间丢失效应。实战中要遵循高信噪比原则,比堆信息量更重要的是确保每条信息都有用。Token 预算要分层管理,高优先级放固定位置,低优先级精简省略。
一句话总结
上下文工程管的是"让任务可解"的前提,Prompt 工程管的是"说清楚怎么解"的表达,两者根本不在一个层次。
