咒语已死
2023年初,网上流传着这样一个“万能提示词”:
“你是一位拥有20年经验的麦肯锡顾问。请用金字塔原理,以MBA案例分析的格式,为我撰写以下问题的解决方案……”
据说这样写,AI的答案质量会“飙升”。
但如果你今天再试这个模板,用同一个问题、不同的模型,结果可能差强人意。GPT5.5可能给出一个过于啰嗦的框架性回答,Claude可能先花三句话告诉你“我不需要你告诉我我是什么……
这不是哪个模型“不行”。
是“万能提示词”这件事从根本上就不成立。
同一个提示词,换了模型就不灵。同一个模型,上下文窗口位置不同表现就不同。同一个位置,对话历史长短不同输出就不同。
如果你把Prompt当咒语,背一个模板,就期待它每次都灵,你会永远在“这次怎么不行“的困惑里打转。
但如果你把Prompt当成接口设计,理解它的工作原理,知道什么时候该给什么信息,你就不再需要“咒语”了。
这就是本章要做的事:忘掉你的模板,明确你的需求(包括你有的东西)和你的顾虑,也就是你要什么、不要什么。
Prompt到底在做什么
先回到最底层。
你已经知道了,当你输入一段Prompt,AI不是在“理解指令”。它做的是同一件事:给定上下文序列,预测下一个Token。
那为什么之前一段“好的提示词”确实能改善输出?
因为它改变了概率分布的形状。
一个模糊的Prompt:“分析一下这个市场”,给AI的概率分布几乎没有约束。它可以输出宏观经济分析、行业竞争分析、消费者画像、投资建议……任何跟“分析市场”在训练数据里共现过的文本模式,都有可能被采样。
一个明确的Prompt:“用A模型分析中国新能源汽车市场,列出每个力量的关键影响因素,控制在500字以内”,把概率分布大幅收窄。AI的训练数据里,“A+新能源汽车+关键因素+500字”这个组合,对应着非常具体的文本模式。它的输出几乎必然落在你预期的区域内。
所以,Prompt不是“咒语”,是“约束”。 你写的每一句话,本质上都是在说:
“在接下来你要生成的Token序列里,请把概率集中在这些方向上,远离那些方向。”
这个视角一旦建立,所有“提示词技巧”都变得透明了。
好Prompt只做四件事
把上面这句话拆开,一个好的Prompt其实就是做了四件事:
1. 定义任务——“要什么”
不说“帮我写点东西”,说“写一封200字的客户道歉邮件,原因是我们延迟了两天发货”。
不说“分析这份数据”,说“找出上季度销售额下降最明显的三个品类,分别说明可能原因”。
任务越具体,概率分布越窄,输出越可控。
小tips:一个Prompt不要塞多件割裂的事。此外,区分分析型任务和创造型任务,最好不要让两种任务在一起执行。分析型任务需要“收窄逻辑路径”,创造型任务需要“收窄风格边界”,约束的方向不同。
2. 约束格式——“长什么样”
“用表格列出”比“列出来”更好。“每段不超过三句话”比“简洁一点”更好。“用JSON格式输出,包含name、price、stock三个字段”,这直接把输出空间从“所有可能的文本”压缩到了“符合JSON schema的文本”。
格式约束是性价比最高的Prompt技巧。因为格式本身就是强约束,不符合格式的输出,一眼就能识别,而且几乎不会和“正确内容”混淆。
3. 提供范例——“像这样”
范例是概率分布的“锚点”。
如果你让AI“写一个吸引人的产品标题”,它可以给出几百种不同风格的答案。但如果你先给它看三个你喜欢的标题范例,再让它写,AI的概率分布会大幅缩窄到范例的风格范围内。
这就是少样本提示(Few-shot Prompting)的原理:
你给的不是“指令”,是“概率分布的样本”。
这里的2和3可以用一句话代替:对于不确定的内容请联网搜索。这里又会涉及搜索接口的质量问题和信息筛选问题。
4. 划定边界——“不要什么”
“不要”和“要”同样重要。
“不要使用专业术语”“不要超过200字”“不要给出你无法确认的数据”“如果原文中没有明确答案,请直接说‘无法确认’”。
很多AI翻车不是因为不知道答案,而是因为它被训练成“总是给一个答案”,因为训练数据里,“我不知道”比“答案是这样的”少得多得多。
你明确告诉它“可以说不”,就是在修正这个训练偏差。
从Prompt到Context:关键的认知跃迁
上面四条,足够你在日常对话中大幅提升AI的可靠度。
但这里有一个关键限制:你只能控制“你输入的那段话”。 但AI看到的,远远不止你那句话。AI看到的是整个上下文,包括:
- 系统提示词(System Prompt)
- 对话历史(前面聊过的每一轮)
- 工具描述(AI能调用哪些函数)
- 知识片段(RAG检索到的文档)
- 记忆缓存(之前对话中存储的偏好和事实)
注:RAG(Retrieval-Augmented Generation,检索增强生成)旨在从外部知识库中找出与用户问题最相关的信息片段,供后续生成模型参考。
你的那段Prompt,可能只占整个上下文的20%。
这意味着:你精心打磨了一段提示词,但如果系统提示词写得很烂、对话历史里堆了三轮无效信息、检索到的知识片段是错的。你的20%再精致,也救不了另外80%。
这就是从“Prompt Engineering”到“Context Engineering”的跃迁。
Prompt是你直接控制的部分,Context才是AI实际接收到的。
一个只会写Prompt的人,是在调方向盘。一个会设计Context的人,是在调整个系统。

图1: Prompt vs Context
Context Engineering 的核心问题
如果说Prompt回答的问题是“怎么说”,那Context回答的问题是“给什么”。
具体来说,四个问题:
1. 给什么?
不是越多越好。上下文窗口里的每一段信息,都在竞争AI的注意力。
给AI一份50页的PDF + 三段参考资料 + 你写的300字需求描述时,你以为你给了“全面的信息”,实际上你稀释了每一条信息的注意力权重,AI可能反而在模糊的概率分布中迷失。
好的Context像好的简历:只放最相关的信息,用最有效的方式呈现。
2. 不给什么?
想清楚这个这比想清楚“给什么”更难。
对话历史里有“污染”(上一轮AI的幻觉输出,你还没纠正就进入了下一轮)、知识片段里有冲突(检索到的两段文档对同一问题给了相反答案)等等……这些都应该被清理,而不是一股脑塞进上下文。
3. 什么时候给?
信息的时机影响它的权重。
前面已经说过,AI更关注首尾,具体来说,约束条件放在末尾比放在开头更可能被遵循(因为末尾的内容在概率预测时“距离更近”、注意力更强,这也是为什么一般系统提示词会把用户提问放在末尾拼接)。范例放在任务描述之后、约束条件之前效果最好。系统提示词里的角色设定,放在最前面给出“全局语境”,放在最后反而干扰任务执行。
4. 以什么格式给?
结构化信息(列表、表格、JSON)比自由文本更可能被准确解析。因为结构化格式本身就是强约束,AI在训练数据里有非常固定的Token关联模式。
如果你想让AI“记住”三条规则,写成:
规则1:XXX
规则2:YYY
规则3:ZZZ
比写成“请遵守以下三条规则:第一,XXX;第二,YYY;第三,ZZZ”更可能被完整遵循。
当然这不是绝对的,就目前来说,预训练数据中格式化信息占大头。此外,一些AI产品可能在产品层面做了一些约束或者trick(小技巧),后者也许会更好。
大白话为什么更好
有一个反直觉的发现值得单列一节。
2026年,一项发表在ACL(顶级学术会议之一)的研究发现:大语言模型在处理任务时,对高频、口语化的表达有显著偏好。即使语义不变,将表达转换为更常见、更贴近日常用语的方式,也能有效提升模型在推理等多项任务中的表现。
换句话说:模型更爱听“大白话”。
你写的“请运用结构化思维框架对此议题进行维度化剖析”,不如写“请从三个角度分析这个问题,每个角度列出正反两面”。
不是因为AI“讨厌”高级词,是因为高级词在训练数据里出现的频率低,围绕它们的概率分布更模糊。高频词有更锐利的统计模式,模型对它们的处理更确定。
这个发现直接否定了很多“提示词专家”的核心主张:“用专业术语激活模型的高级能力”。
你不用激活任何东西。你只需要让概率分布尽可能锐利。而高频、口语化的词,天然有更锐利的分布。
角色设定为什么越来越不重要
本书不把“角色设定”独立成章,理由就在这里。
“你是一位专业的数据分析师”——这个开头在GPT-3.5时代确实有效。因为它把模型的概率分布从“日常对话”窄化到了“数据分析报告”。
但模型越来越强之后,这种窄化效果在递减。
GPT-4和Claude 3.5之后的模型,在“理解任务”这件事上已经足够好。你不需要先花一句话告诉它你是谁,它才能明白你要什么。你直接说“分析这份数据”和“你是一位数据分析师,请分析这份数据”,对于强模型来说,输出差异已经微乎其微。
但是,角色设定并不是完全“没用”。它在某些场景下依然有价值:比如你需要AI模仿某个特定人物(“用海明威的风格写一段话”),比如你在构建一个面向客户的AI产品(公司客服Agent需要一致的品牌语调)。还有在一些特定的场景中使用Agent,约束角色,会让使用者的体验更好。
但它不再是“必须”。从“咒语“到“接口”的进化路径中,角色设定是第一个被弱化的环节。未来,更强的模型会进一步弱化它。
一个小tips:近期一些网友表示在 prompt 中加入“Michael Polanyi”,AI 的表现会显著提升。这揭示了一个关于“提示”本身的有趣事实:即我们作为人类,虽然有千言万语想向AI表达,但真正重要的知识往往是“只可意会,不可言传”(Michael Polanyi的理论)的。这个技巧并非指加入某人名,而是借用“Michael Polanyi”这个人物来暗示AI,要去挖掘和理解我们那些无法用语言清晰表达的深层“默会知识” 。通过在提示词中加入“Michael Polanyi”,我们实际上是在告诉AI:“人类知道的,远比他能说出来的要多。请优先专注于那些我说不出来、但真正重要的东西。”
一个实用的Context构造框架
我们不讲模板,我们梳理思路。当你准备让AI做一件事时,不要先想“怎么写Prompt”。
先想这四个问题:
-
任务锚点 AI最终要输出什么? 这个输出“对”的标准是什么?(我一眼就能判断对错的那个标准)
-
信息来源 AI应该基于什么来回答?(我给的文档?我给的示例?它的训练知识?) 什么信息不该给?(会干扰判断的、过时的、冲突的)
-
约束清单 格式约束:用什么格式输出? 边界约束:不能输出什么?什么情况下应该说“不知道“? 质量约束:多长?什么风格?什么语气?
-
验证方式 我怎么快速判断输出是否合格? 有没有“一眼假”的检查项?
看下面这张图加深一下理解。

图2:实用的Context构造框架
然后才开始写,或者你先让通用型的AI自己写。
这不是“提示词模板”。这是一个上下文设计的checklist(清单)。它不依赖任何特定模型,不绑定任何产品。
本章小结
Prompt Engineering正在被Context Engineering取代。这不是一个术语游戏,是认知层次的不同。
- Prompt思维:“我怎么说,AI才能懂?”
- Context思维:“我给AI什么样的信息和约束,才能让它的输出天然接近我需要的样子?”
后者不再把AI当“对话对象”,而是当一个“信息处理系统”。你输入的不是“话”,你输入的是一组结构化的约束条件。AI的输出不再是“回答”,而是这套约束条件下的概率采样结果。
这个思维转换,是全书从“会用AI”到“会设计AI系统”的第一个关键台阶。
下一章,我们给这个“概率引擎”装上手脚:让它不只是“说”,还能“做”。
自查清单
- 我能解释为什么“万能提示词模板”不可靠
- 我理解好Prompt的四个要素:任务、格式、范例、边界
- 我知道Prompt和Context的区别
- 我理解为什么“大白话”往往比“高级词”更有效
- 我知道角色设定有用,但不是必须
- 我能说出Context Engineering的四个核心问题
- 我在写Prompt之前,会先想“任务锚点、信息来源、约束清单、验证方式”
参考链接
- Hongyuan Lu et al., "Adam's Law: Textual Frequency Law on Large Language Models", ACL 2026. https://arxiv.org/abs/2604.02176
- Andrew Ng, "Agentic AI", DeepLearning.AI, 2025. https://www.deeplearning.ai/courses/agentic-ai/ ;中文翻译版 https://github.com/datawhalechina/agentic-ai
- Anthropic, "A Guide to Prompt Engineering". https://docs.anthropic.com/en/docs/build-with-claude/prompt-engineering/overview
- OpenAI, "Prompt Engineering Guide". https://platform.openai.com/docs/guides/prompt-engineering
一个只会说话的AI,上限是“答得好”。给它工具,它才开始“做得到、做得好”。我们要讲Agent的第一性原理。
