面试官系列 · 全文约 2171 字 · 阅读约 5 分钟

上一篇讲了幻觉怎么治,评论区有人问:“同样的模型、同样的框架,为什么别人跑出来的效果就是比我好?”

差别往往不在模型,而在"上下文喂得对不对"。今天就讲这个现在特别火的话题——上下文工程(Context Engineering),它也是面试很爱问的新考点。

一句话先记住

上下文工程是在 Agent 干活的每一步,动态决定"往窗口里放什么、不放什么、怎么放、怎么收"的一整套系统工程;它管的是整个信息环境,而不只是写好一句提示词。

上下文工程是什么?

Context Engineering(上下文工程)

🏗 **是什么:**系统性地设计、检索、组装、压缩和管理提供给大模型的全部信息,让模型在每一步都拿到"恰好够用、且相关"的内容。随着 Agent 从单轮问答走向多步长任务,核心挑战从"写好一条提示词"变成"每一步把正确、相关、适量的信息填进有限窗口"。

🗣 白话:像给一个人准备工作台:不是写张便签就完事,而是要在他干活的每个环节,把要用的资料、工具、之前的记录,按时按序摆到桌上,用完还得收走。

这个词被 Andrej Karpathy 带火,Anthropic 也把它定义为"在推理时策划和维护最优 Token 集合的策略"。记住一个关键:它覆盖整个窗口里的信息,包括那些"不是你写的 prompt"的部分。

和 Prompt 工程有啥区别?

很多人会把这两个混在一起,其实是"局部"和"整体"的关系:

Prompt 工程聚焦怎么把指令写好,通常是静态的、写一次反复用,关注一次性回答的效果;上下文工程是它的自然进阶,是动态的、每一轮都要重新决定给模型什么,涵盖指令、检索、记忆、历史、工具等全部内容。一句话:Prompt 是上下文的一部分,不是全部。

上下文从哪来?

一个窗口里的信息,主要来自这几块,前面几篇其实都讲过,现在把它们串起来:

系统指令定角色和规则,工具定义按需挂载(Skill/MCP),RAG 提供检索片段,记忆分短期和长期,加上对话历史和少样本示例——这些拼在一起,就是模型这一步能看到的全部。

上下文工程的四个关键动作

把这些信息管好,靠四个动作循环:

检索是按需取相关片段(RAG 和记忆召回),组装是按结构把它们拼好、位置有讲究(首尾更受关注、中间易遗忘),压缩是对长内容做摘要、截断、分块,管理是做多任务隔离、更新和把关键结论写回记忆。Agent 每转一轮,这套动作就跑一遍。

最高杠杆:从预打包到即时检索

业界公认最高杠杆的一个转变,是别再"预打包",改成"即时检索":

预打包(pre-packing)是在一轮开头把可能有用的东西全塞进去,结果噪声多、又贵又慢;即时检索(JIT)是让 Agent 自己决定此刻需要什么,只在需要时取那部分,用多少取多少、窗口不常驻。这也是前面"工具按需挂载、RAG 只召回相关片段"的同一个思路。

工程上要盯住的几件事

**窗口是稀缺资源:**先算容量预算,按"指令/工具/检索/历史/输出"分配,别让任何一块无限膨胀。

**相关性优先:**检索设阈值、工具只挂相关的,低相关噪声宁可不带,避免把模型带偏。

**位置有讲究:**关键指令和结论放开头或结尾,长上下文要防"中间遗忘",用清晰的分隔标签标明每块是什么。

**信息要会"收":**长历史及时摘要或截断,中间状态写进便签/记忆,下一轮再读,别让窗口一直堆。

**做好隔离:**多用户、多任务的上下文分开,避免串味;记忆和状态要及时更新,别用过期信息。

最容易踩的三个坑

坑1:把上下文工程等同于写 Prompt

⚠️ **问题现象:**只盯着系统指令反复调,却忽略检索、记忆、历史、工具这些进入窗口的内容,整体效果上不去。

🗣 白话:以为把便签写漂亮,工作台就不用整理了。

**✅ 解法:**把视角从"写好一句话"扩到"管好整个窗口",prompt 只是其中一块。

坑2:一股脑全塞,不压缩不按需

⚠️ **问题现象:**把资料、工具、历史全堆进窗口,context stuffing 导致报错超限、变慢变贵,还被噪声带偏。

🗣 白话:把所有文件都摊在桌上,人反而找不到要用的那张。

**✅ 解法:**改用即时检索和按需加载,配合摘要、截断、分块,保持窗口精简。

坑3:不隔离不更新,多任务串味

⚠️ **问题现象:**多任务/多用户共用一个上下文,或老信息残留、记忆不写回,模型拿着过期或张冠李戴的信息作答。

🗣 白话:两个人的资料混在一个文件夹,自然拿错。

**✅ 解法:**上下文分窗隔离,状态和记忆及时更新、写回,关键结论留痕。

面试官最后爱听啥

一句话总结:模型能力上限由模型决定,但实际表现由上下文决定;上下文工程就是在每一步把正确、相关、适量的信息动态喂给模型,并在出错和过载时能兜住。

答题一句话:“上下文工程是动态管理整个窗口信息的系统工程,是 Prompt 工程的进阶;我会用即时检索、按需组装、压缩和隔离更新,让模型每一步都拿到恰好够用的信息。”

会打比方:“Prompt 是写便签,上下文工程是整理整个工作台;每一步把该用的资料按时摆好、用完收走。”

**说得出细节:**能甩"just-in-time、pre-packing、RAG、记忆写回、上下文隔离、Token 预算、中间遗忘、摘要截断、Skill 按需挂载",就说明你真理解。

新手建议:拿一个多轮 Agent,分别试"全塞"和"即时检索+摘要"两种喂法,对比回答质量和成本,你立刻就能体会上下文工程的价值。

— AI小瑜 · 面试官系列 · 聊透 Agent 架构 —

📂 面试官系列合集 · 点击阅读全部

Logo

更多推荐