Andrej Karpathy最近提出了一个值得关注的新概念——“上下文工程(context engineering)”。它试图揭示,想让大模型真正发挥潜力,关键不在于怎么写指令,而在于如何精准地提供背景信息。简单来说,我们熟悉的“提示工程”正在经历一次范式升级。
先说说核心要点:
- 从提示工程到上下文工程的范式升级
- 构建有效上下文的七大科学要素
- 上下文工程中艺术与科学的精妙平衡

很多时候,大家以为“提示工程”就是给AI写几句话让它完成任务。但今天要聊的这个概念,可能让不少人觉得“提示工程”这个词已经有点不够用了——更准确的说法,应该是“上下文工程”。
这个观点来自AI大佬Andrej Karpathy。他为什么主张改个名字?
为什么叫“上下文工程”更贴切?
可以把AI想象成一个超级聪明的同学。要完成一项任务,光告诉它任务是什么远远不够,它还需要大量相关的背景知识。这个“背景知识”就是所谓的“上下文”。
- “提示”太简单了:就像跟同学说“帮我写篇作文”,只是一个简单的指令。
- “上下文”更丰富:但同学真要写好,还会问:“作文写什么主题?有没有范文参考?以前写过类似的吗?想表达什么感情?”这些问题加你的回答,才构成完整的“上下文”。
在真正厉害的大模型应用里,“上下文工程”是一门精妙的艺术和科学。它远不像日常用ChatGPT那样,随便输入一句话就完事。
它是一门科学:构建上下文的七大要素
因为我们需要非常讲究地把各种信息精准地塞进AI的“大脑”里。这里面包括:
- 详细的任务描述和解释:不仅仅是“写作文”,而是“写一篇关于环保的议论文,观点积极向上,字数800字左右”。
- 少量示例(few-shot examples):就像给AI看几篇优秀范文,让它知道什么样的文章是好的。
- 检索增强生成(RAG):相当于给AI一个内置搜索引擎,让它在海量信息中找出最相关、最新的资料。
- 相关数据(可能是多模态的):不只是文字,还有图片、视频等,AI可以从中获取更多信息。
- 工具:AI可能需要计算器、翻译器等工具,这些要提前告知。
- 历史和状态:AI要记住之前发生过什么,比如之前问过什么问题、回答了什么,以便理解后续意图。
- 信息压缩:AI的“大脑”容量有限,需要将大量信息浓缩提炼,只保留最重要的部分。
如果给的信息太少或形式不对,AI可能搞不清状况,表现不佳。但如果信息太多或不相关,不仅更“烧钱”(处理信息多),还可能因为干扰信息被搞晕,反而变差。把握这个度,非常复杂。
它还是一门艺术:直觉与经验的微妙平衡
这里面有很多“只可意会不可言传”的成分,需要凭借直觉去揣摩AI的“心理”——就像理解一个人的“脾气”。如何让AI更好地理解我们,如何用最巧妙的方式引导它,离不开经验和灵感。
上下文工程只是冰山一角
别以为搞定“上下文工程”就万事大吉。一个真正完整、强大的大模型应用,除了这个核心技术,还需要很多工作:
- 合理拆分问题:把大问题分解成小步骤,像搭积木一样一步步引导AI。
- 高效填充上下文窗口:精准地把每一步所需的“背景知识”打包好,塞进AI的“大脑”。
- 选择合适的LLM模型:不同模型有不同专长,要根据任务选择最合适的。
- 人机交互设计:考虑用户如何与AI互动,比如生成内容后如何验证、修改,都需要精心设计。
- 以及更多:安全防护(防止AI胡说八道)、性能评估、并行处理、预加载等。
所以,“上下文工程”只是构建完整LLM应用中的一小块,但非常关键。整个应用就像一台巨大机器,需要复杂的软件层协调AI的每一次思考行动,远不止是简单地“调用”AI。
那些说LLM应用只是“ChatGPT套壳”的说法,其实忽略了背后巨大的技术挑战和创新。
网友热议:众说纷纭的共鸣与延伸
这个观点在社区里引发了不小讨论,汇集了一些很有意思的视角:
1. “上下文工程”与“提示工程”其实类似。比如,一个人陷入某个上下文,你提示他一下,可能惊醒梦中人。例如出租车司机想开快多赚钱,你担心安全,提示一句“头晕”,他正陷入赚钱上下文,被提示后或许会顾及乘客舒适度。但“上下文”这个词更能表达被提示对象处于认知陷阱、灯下黑状态——正如被电信反诈转账,需要警察提示才可能阻止。
2. “上下文工程”就是新时代的“氛围编码”(vibe coding)。
3. 人们使用“提示”一词,往往(不正确地)将一个相当复杂的部分轻描淡写了。你可以提示LLM告诉你天空为什么是蓝色的,但应用程序会一丝不苟地为LLM建立上下文,以解决它们的自定义任务。
4. 这简直是天才般的想法,完美解释了我们为什么要强调“上下文工程”的重要性。
5. 一切都与上下文工程有关。LLM是无状态函数,将输入转化为输出。为了获得最佳输出,需要提供最佳输入。创造良好的上下文意味着:你给模型的提示和指示,检索的任何文档或外部数据(如RAG),任何过去的状态、工具调用、结果或其他历史记录,任何来自相关但独立的历史/对话的过去信息或事件(记忆),以及关于输出什么类型结构化数据的说明。
6. 非常喜欢“上下文工程”这个术语,而不是“提示工程”。它更好地描述了核心技能:为任务提供所有上下文的艺术,使LLM能够似是而非地解决问题。
7. 虽然喜欢这个说法,但可能还需要再深一层。实际的技能更像是“意图工程”——非常清楚地表达你想要什么。尽管背景很关键,但只是支持,更重要的还是清晰的思维。
比喻:从点菜到当大厨,信息“俄罗斯方块”与幕后“指挥家”
平时去餐厅吃饭,是不是觉得只要会点菜就行?“服务员,来份宫保鸡丁,再来份麻婆豆腐!”——这就像平时给ChatGPT发提示,简单明了。
但真正的AI大模型应用,它可不是点菜的顾客,而是要在厨房里掌勺的大厨。想一想,大厨要做一桌菜,得:
- 协调二三十种不同的食材:这就像AI要处理海量信息,文字、图片、代码、数据……五花八门。
- 完美掌握时间,不能把菜烧糊:就像AI要精准地在有限的“思考时间”内给出结果并保证质量。
- 确保每道菜色香味俱全:就像AI要输出高质量、符合要求的内容。
所以,大部分人以为的“提示工程”,就是像点菜一样写几句聪明的请求给ChatGPT。但真正的LLM应用,是在厨房里上演一场高难度、高效率的“美食大戏”。
LLM应用处理信息,就像玩一场超级复杂的“信息俄罗斯方块”:
- 什么数据能塞进它的“小窗口”里?(上下文窗口就像有限的游戏区域)
- 这些数据按什么顺序放进去才最合理?
- 要包含多少历史信息,才不会“爆预算”(处理的信息越多成本越高)?
这都需要精密的计算和巧妙的安排,才能让AI在有限的“脑容量”里获得最有效的信息支持。
除了这些“俄罗斯方块”,AI大模型应用在幕后还有一场华丽的“交响乐”。它像一个高超的指挥家,协调着所有乐手:
- 把大问题拆成小块:就像把复杂交响乐拆分成不同乐章。
- 缓存结果:就像把已经演奏好的乐谱放在一边,下次直接拿来用。
- 在不同模型之间灵活切换:有些乐手速度快(快速出答案),有些水平高(答案更精准),指挥家根据需要让不同乐手上场,且每个乐手的“演出费”不一样——要考虑怎么用最划算的方式奏出最完美的乐章。
那些嘲笑LLM应用只是“ChatGPT套壳”的人,根本不知道为了让这些东西真正大规模运转起来,需要投入多少复杂的工程设计和智慧。这不是简单的套个壳子,而是科技与智慧的极致融合。
9. 正是如此。重新训练AI需要几个月时间。所以,如果你不给它提供正确的上下文,它就会获得过时的信息。这就是为什么我们看到所有这些研究模型涌现出来——它们进行实时网络扫描以提取上下文,反馈给模型进一步提示。
人眼看世界,AI“看”信息
你知道人眼虽然能看到一大片区域,但真正能看得最清楚的地方只有中间一个很小的点,叫“中央凹”。就像玩游戏时准星只有一个,但感觉屏幕上的一切都挺清楚。这是因为大脑会飞快地、自动地把这个“高精度准星”对准最需要看的地方,让整个视野都显得清晰。
LLM的“上下文窗口”也是这个道理——它就像AI的“高精度准星”。AI的“脑容量”有限,能一次性“看清”的信息量不大。尤其当让它处理一大堆文件、代码或文章时,信息量可能远超过它能一次性“看清”的范围。
这时候,“上下文工程”变得至关重要。它就像一个超级筛选器和信息调度员。要做的是从海量信息中精挑细选出最有用、最关键的“金子”,然后按正确顺序、配上恰当的引导语,精准地“喂”给AI的“准星”。这样,AI的“大脑”才能把所有精力集中在完成任务最有价值的部分,不会被无关信息分心。
动态调整,让AI更聪明
更厉害的是,现在做“上下文工程”已经不是那种“一锤子买卖”了。它可以在AI工作过程中不断进化和调整。
想象一下,AI就像一个侦探。它可能先去图书馆找了一些线索(第一次搜索)。根据这些线索,它发现某些方向更有价值,于是又去档案馆找到更关键的证据(第二次搜索)。如果档案馆的证据比图书馆的更有用,它甚至会把之前不那么重要的线索“扔掉”,只保留最有用的信息。
这种动态的、像“智能体”一样不断调整“焦点”和“线索”的管理方式,正是当前面临的最大挑战——但也是它能开发出最强大、最聪明的AI应用的关键。
