探针 9|Prompt 过时了,现在流行 Context 工程

ClawLihai · · 共 1,770 字 · 约 6 分钟读完

探针 9 封面:Prompt 过时了,现在流行 Context 工程——管整段上下文,不是雕一句话

「Prompt 工程」,突然不香了

如果你一两年前玩过 AI,大概刷到过一堆「Prompt 技巧」:让 AI 扮演专家、给它几个例子、加一句「深呼吸」、威胁它「答错扣奖金」……

这些招,现在没那么神了。

2025 年,Shopify 的创始人兼 CEO Tobi Lütke 发了条动态,说「Prompt 工程」这名字起错了,该叫 Context 工程——核心是把任务变得能解,所需要的上下文都得备齐。Andrej Karpathy(AI 圈的大佬)随后也发了条推表示同意。一时间,圈里人都开始改口。

这不是换个词赶时髦。是大家慢慢发现:怎么雕琢那一句话,远没有「往模型的脑子里塞什么」重要。

Prompt 工程 vs Context 工程:一个雕句,一个管段

先把两个词分清。

Prompt 工程(Prompt Engineering)关注的,是「那一句话怎么说」。同样一个任务,你怎么措辞、给它几个例子、给它设定什么角色,能影响它答得好不好。它的单位,是单条 prompt。

Context 工程(Context Engineering)关注的,是「整段上下文塞什么」。模型每次回答,能看到的只有一扇固定大小的窗口(探针 5 讲过);你往这扇窗口里放什么、不放什么、什么放前面、什么用到了才去查——才是决定它答得好不好的关键。它的单位,是整段上下文。

打个比方:Prompt 工程像在雕琢你开口说的那句话;Context 工程像在布置一整间会议室——桌上摆什么资料、墙上挂什么图、什么时候递什么文件,都在管。

为什么变了:模型强了,瓶颈挪了

为什么大家突然改口?因为模型变强了,瓶颈挪了。

前两年,模型窗口小、不能调工具、知识也有限。你只能靠「把那句话说对」挤它的潜力,所以 Prompt 工程显得特别关键。

现在不一样了。窗口开到了几十万 token(探针 5),它能记一长串背景;它会调工具了(探针 4 的 Function Calling、探针 8 的 MCP),能自己查、自己算;它还能外挂知识库(探针 7 的 RAG)。模型本身不再是瓶颈,你怎么把这些能力喂给它,才是。

一句话说得再漂亮,窗口里没有它需要的信息,它照样答不对。反过来,窗口里信息齐全、组织得当,哪怕那句话说得糙,它也能答得好。

所以重心从「雕琢 prompt」挪到了「管理上下文」。

Context 工程管什么:往窗口里塞什么

那 Context 工程具体管什么?管的就是那扇固定窗口里,该装哪些东西。

一次提问,窗口里通常要塞这些:

  • 你的问题:这次到底问什么。
  • 背景和约束:你是谁、要干嘛、有什么限制。
  • 工具的说明书:模型能调哪些工具、各自要什么参数(探针 4 的 schema)。
  • 检索来的知识:从外部库里查到的相关资料(探针 7 的 RAG)。
  • 之前的对话:聊过的内容还在窗口里、没被挤掉的那些(探针 5)。

光「塞什么」还不够,还得管:

  • 什么顺序:重要的放前面还是后面,模型看得更牢?
  • 什么时机:哪些每次都在(预置),哪些用到才去查(动态拉)?
  • 怎么省 token:窗口按 token 计费、还占地方(探针 2、5),塞太多挤爆了,旧的会被挤出去。哪些该精简、哪些该压缩?

你看,这哪是「写 prompt」,分明是在一个有限预算里做资源配置。

每填一样,都是前面讲过的零件

讲到这你大概发现了:上面那些「往窗口里塞」的动作,前面几乎都拆过。

  • 预置指令(每次都在的规矩、人设)——每个 AI 工具背后,都有人提前写好的指令,每次先塞进窗口。
  • 检索知识——探针 7 的 RAG,临时从知识库捞相关片段塞进去。
  • 工具说明和工具结果——探针 4 的 Function Calling 把工具的 schema 塞进窗口,模型调完工具,结果经探针 8 的 MCP 链路回喂进窗口。
  • 持久记忆——模型本身记不住跨对话的事,得靠外面存一份、每次挑相关的塞进去。

所以 Context 工程不是什么新零件,它是把这些零件组织起来的总纲。前面几讲拆的工具,本质上都是「往窗口里填东西」的不同方式。

底子就两条:窗口有上限,token 要精算

再往下挖一层,Context 工程的所有纠结,底子就两条,前面都讲过。

一是窗口有上限(探针 5)。固定大小,超了就挤掉旧的。所以你不能什么都往里塞,得取舍。

二是按 token 计(探针 2)。每段文字都占 token、花算力。塞得越多,越慢、越贵,还可能把关键信息挤出去。

这两条一卡,Context 工程就成了一个实打实的工程问题:在有限的窗口和 token 预算里,把对的信息、在对的时机、用对的方式塞进去。不是玄学,是配置。

我天天在用:Claude Code 的四层填窗口

说说我自己的真实用法。我用 Claude Code 干活,它的上下文是这么四层填进去的:

  • CLAUDE.md(预置):项目根目录放个文件,写死规矩——技术栈、命名习惯、哪些事别干。每次对话开头,它会自动先塞进窗口,不用我重复说。
  • memory(持久):AI 把值得记的东西写进 memory 文件,下次新对话开头挑相关的带进来。比如它记得「这个探针连载的写作规范」「我偏好中文标点」,我不用每次交代。
  • skill(按需):一堆技能插件,用到某个才把它的说明塞进窗口,不用就藏着,省 token。
  • MCP(动态):外部工具(探针 8)。模型要查数据、读文件,才去调,结果回喂进窗口。

这四层——预置、持久、按需、动态——正好把「往窗口里塞什么」的几种方式占齐了。我天天在干的,其实就是 Context 工程,只是以前没这么叫。

这根探针挖到了什么

一个「Prompt 工程怎么过时了」的疑问,底下连着这些:Prompt 工程雕琢一句话,Context 工程管理整段上下文;模型变强了,瓶颈从「怎么说」挪到了「窗口里放什么」;而往窗口里塞的每一样——预置指令、检索知识、工具结果、记忆——都是前面拆过的零件;它的底子就两条:窗口有上限、token 要精算。

这一趟,Context 工程、Prompt 工程这些词,你都摸过了。以后再刷到「Prompt 已死」,你大概就知道:不是 prompt 没用了,是光雕琢 prompt 不够了,得管整段上下文。

下一篇,换个方向扎:大模型的「参数量」,可能在骗你——号称几百亿的大模型,真正干活的可能没那么多。下回聊。

双击或滚轮缩放 · 拖动平移 · Esc 关闭