提示词工程听起来很唬人?这篇把它拆成了你能消化的每一口

0 阅读19分钟

想象你新招了一个实习生。

这个实习生的背景堪称离谱——他读过人类有史以来出版过的几乎所有书籍、论文、代码库和论坛帖子。他的知识储备碾压地球上任何一个活人。

但他有一个致命的毛病:他完全不会猜测你的意图。你让他"写个登录页",他会交给你一个只有用户名和密码框、连 CSS 都没有的 HTML 文件——因为从逻辑上讲,这确实是一个登录页。

你叹了口气,重新说:"写一个现代风格的登录页面,要有圆角卡片、渐变背景、输入框带图标、支持邮箱和手机号两种登录方式、响应式布局。"

这次他交出了一个像样的页面。

这就是你和 AI 大模型的关系。它不是不聪明,它只是太听话了——听话到你需要精确地告诉它你想要什么。

而「提示词工程」,就是研究怎么和这个"超级实习生"沟通,才能稳定拿到你想要的结果的那门手艺。

一、什么是提示词工程

提示词工程(Prompt Engineering),说白了就是设计给 AI 模型的输入指令,让它输出你想要的东西。

别被"工程"两个字吓到。它和你熟悉的软件工程不一样——你不写代码,不改模型参数,不做训练。你只是在组织语言。

提示词工程这个概念并非凭空出现。它的学术根基可以追溯到 GPT-3 论文(Brown et al., 2020) 中提出的 In-Context Learning(上下文学习)。研究者发现,大语言模型不需要针对特定任务做微调,只需要在输入中给几个示例(demonstrations),模型就能"当场学会"这个任务——整个过程不更新任何权重参数,仅仅通过前向推理完成。这一发现直接催生了后续提示词工程的所有技术路线。

从 NLP 学术视角来看,提示词工程的本质是把下游任务重新表述为语言模型的原生任务:将分类问题变成"请在 A 和 B 之间选择",将抽取问题变成"从以下文本中找出……"。这种"任务重述"(Task Reformulation)的能力,决定了提示词质量的天花板。

OpenAI 官方对它的定义是:

Prompt engineering is the process of writing effective instructions for a model, such that it consistently generates content that meets your requirements.

关键词是 consistently ——稳定地、可复现地拿到好结果。这恰恰是纯靠"感觉"写提示词最难做到的事。

提示词为什么能"操控"模型——Token 的底层逻辑 要理解为什么换几个词就能让模型输出天差地别,需要先理解一个概念:Token。

大模型不直接处理"文字",它处理的是 Token——你可以把它理解为模型词汇表中的最小语义单元。一个中文字通常对应 1-2 个 token,一个英文单词对应 1-3 个 token。当你输入一段提示词,模型做的第一件事就是把它切分成 Token 序列,然后基于这个序列预测下一个最可能出现的 Token。

这就是为什么提示词的措辞如此重要:不同的措辞会产生不同的 Token 序列,激活模型中不同的注意力路径,最终导向完全不同的输出分布。 这不是模型"理解"了你的意图,而是在统计意义上,某些 Token 序列会显著提升输出落在你期望区域内的概率。

但即使是最先进的模型(包括 2025-2026 年的 GPT-5 系列),依然遵循同一底层原理:输入决定输出分布

提示词工程是一套经过大量实践验证的方法论体系,涵盖角色设定、示例引导、推理拆解、格式约束、上下文管理等一整套技巧。

二、为什么你写的提示词总是不灵?

写提示词这件事,很像你在电话里教一个从来没进过你家厨房的朋友做菜。

糟糕的提示词:

"帮我做个好吃的菜。"

你朋友可能在冰箱里翻出一根黄瓜,切了切撒点盐端给你。你觉得难吃,你觉得他不会做菜。但实际上,是你没告诉他:

  • 你冰箱里有什么食材(上下文)
  • 你想吃什么菜系(角色/风格)
  • 几个人吃、有什么忌口(约束条件)
  • 你希望成品是什么样(输出期望)

合格的提示词:

"冰箱里有鸡胸肉、青椒、洋葱、鸡蛋。做一个两人份的中式家常小炒,少油少盐,15 分钟内能完成。告诉我每一步怎么做。"

你看,同样的"厨师",同样的"厨房",换个说法,结果天差地别。

这就是提示词工程研究的核心问题:如何用最小的沟通成本,拿到最稳定的高质量输出。

三、核心技巧:从"能跑"到"好用"的五层心法

很多人学提示词是东学一个模板、西抄一个套路,感觉好像懂了,拿回去一用还是翻车。根本原因在于没有建立体系化的认知。

我把提示词工程的核心技巧分为五个层次,从入门到进阶,一层一层来。

3.1 给AI设定一个角色

这是提示词工程里门槛最低、效果最立竿见影的技巧。

大模型就像一个千面演员。你不给它角色,它就只能用自己的"默认人格"来演——那个会礼貌地说"作为一个 AI 助手,我不能……"的老好人。

当你给它一个明确的角色,它就仿佛被激活了另一套知识体系和表达风格。

技术原理:指令层级(Instruction Hierarchy)

从技术角度看,角色扮演不是"魔法",而是 OpenAI 在 Model Spec(模型规范) 中明确定义的指令层级机制。

在 OpenAI API 中,一条对话由三种角色的消息组成,按优先级排列:

  • developer message(开发者消息)——应用开发者设定的全局规则和角色,优先级最高
  • user message(用户消息)——终端用户发出的指令,优先级次之
  • assistant message(助手消息)——模型自己的历史输出

这个设计类比编程语言中的函数定义:developer message 好比函数体(规则和逻辑),user message 好比函数参数(具体输入)。模型在处理时,会将 developer message 中定义的角色、边界、风格作为"最高准则"来约束后续行为。

在实践中,我们通常在 API 的 instructions 参数或对话的第一条消息中设定角色。各家模型对角色设定的实现路径略有不同——Claude 称之为 System Prompt,GPT 区分 developer 和 system 角色——但内核一致:在推理开始前,先为模型建立一套稳定的行为基线。

比如:

提示词输出风格
"解释一下 React 的 useEffect"教科书式的技术说明
"你是一名在字节跳动工作了 5 年的前端架构师,用口语化的方式给你带的实习生解释 useEffect"带真实场景案例、有"踩坑经验"、语气亲近
"你是一位严厉的计算机教授,正在给研究生上 React 高级课"学术化、强调原理和边界情况、带批判性思维

写法模板:

你是一名 [角色],拥有 [年限/背景] 的经验。
你的说话风格是 [风格描述]。
你的读者/听众是 [受众]

一个反例告诉你角色有多重要:

如果你直接问模型"写一段代码审查意见",它给出的可能是不痛不痒的"可以考虑优化变量命名"。

但如果你说"你是一名以毒舌著称的 Tech Lead,以毫不留情地指出代码问题闻名,写一段 code review",它很可能会输出:"这个函数名 doStuff,你是认真的吗?命名规范是写给外星人看的?"

角色的力量,就在于此。

3.2 少样本学习-给示例

大模型有一个神奇的特性:你不需要重新训练它,只需要在提示词里放几个例子,它就能立刻领会你想要什么。

这就是少样本学习(Few-shot Learning),学术上更准确地称之为 In-Context Learning(上下文学习)。

少样本学习本质上是在用示例重新校准模型的输出分布:示例中的输入-输出对向模型传递了一个清晰的"映射关系"信号,让模型在统计上更倾向于复现这种模式。

没有例子的情况:

把下面的句子翻译成"程序员黑话""这个需求做不了"

给了例子的情况:

把下面的句子翻译成"程序员黑话":

示例1:
输入:"这个需求很简单"
输出:"这个需求很简单,怎么实现我不管"

示例2:
输入:"明天能上线吗"
输出:"明天能上线吗,上线了能下班吗"

现在请翻译:
输入:"这个需求做不了"

现在模型立刻懂了你要的"程序员黑话"是什么风格。它会输出类似"这个需求做不了,除非你给我加钱"之类符合你例子风格的内容。

少样本学习的黄金法则:

  • 给 2-3 个例子就够了,太多的例子浪费 token 且可能过拟合
  • 例子要覆盖不同情况,别三个例子都很像
  • 例子的质量比数量重要,一个高质量的例子胜过十个平庸的

3.3. 思维链-让AI“打草稿”

这是提示词工程里可能最被低估的技巧。

大模型在回答简单问题时,基本上"张口就来"。但面对需要多步推理的复杂问题(数学题、逻辑推理、代码调试),直接回答的错误率会急剧上升。

思维链(Chain of Thought,CoT)的思路简单到令人发指:在提示词里加一句话,让模型把推理过程写出来

不加思维链:

小明有 5 个苹果,给了小红 2 个,
又买了 3 个,然后吃掉了 1 个。
小红又还给他 1 个。
小明现在有几个苹果?

模型直接算,可能会错。

加上思维链:

小明有 5 个苹果,给了小红 2 个,
又买了 3 个,然后吃掉了 1 个。
小红又还给他 1 个。
小明现在有几个苹果?

请一步一步地推理。

模型会输出:

初始:5 个 给小红 2 个:5 - 2 = 3 买了 3 个:3 + 3 = 6 吃掉 1 个:6 - 1 = 5 小红还 1 个:5 + 1 = 6 答案:6 个苹果

你看,就加了一句"请一步一步地推理",正确率就从"看运气"变成了"几乎 100%"。

思维链最管用的场景:

  • 数学计算和逻辑推理
  • 代码调试(让它自己先分析 bug 可能在哪)
  • 多条件判断("如果 A 则 B,如果 C 则 D,否则 E" 这种)
  • 需要权衡利弊的复杂决策

任何你觉得需要"动脑子"的问题,都试试在末尾加上"请一步步思考"。

3.4 结构化输出

很多时候,AI 的输出不是内容不对,而是格式不对。

你让模型"分析一下竞品",它写了 2000 字洋洋洒洒的散文。你想把它放进飞书文档里给老板看,可能得手动整理半小时。

结构化输出的核心思想是:在提示词里就把格式定死

几种实用的格式约束方式:

方式一:指定 Markdown 结构

请按以下结构输出:

## 概述
(一句话总结,不超过 50 字)

## 核心功能
- 功能1:(一句话描述)
- 功能2:(一句话描述)
...

## 优劣势分析
| 维度 | 优势 | 劣势 |
|------|------|------|
| ... | ... | ... |

## 结论
(是否推荐,理由)

方式二:要求 JSON 输出

请用 JSON 格式输出,结构如下:
{
  "summary": "一句话总结",
  "features": ["功能1", "功能2", ...],
  "pros": ["优势1", "优势2", ...],
  "cons": ["劣势1", "劣势2", ...],
  "score": 8
}

方式三:指定输出长度和风格

请用 3 个 bullet point 总结,每个不超过 20 字。
语气要像和朋友聊天,不要用术语。

一个冷知识: 很多模型对 JSON 输出的可靠性已经非常高(OpenAI 甚至有专门的 Structured Outputs 功能),你可以直接把模型返回的 JSON 塞进你的业务代码里,不需要再做清洗。

结构化输出的工程实践:Function CallingJSON Schema

在工程实践中,结构化输出不只是"让模型返回 JSON",它已经演进为一套标准化的 API 设计模式。

OpenAI 在 2024 年推出的 Structured Outputs 功能,允许开发者在 API 调用时直接传入 JSON Schema 定义,模型在生成时会严格遵循这个 schema——输出的 JSON 结构、字段类型、必填项都会精确匹配你的定义。这意味着你不再需要写防御性的解析代码来处理"模型偶尔少了个字段"这种问题。

更进一步的是 Function Calling(函数调用):你定义好函数签名(函数名、参数、参数类型),模型在需要的时候不会"猜测"地返回一段文字,而是返回一个结构化的函数调用请求——{ "name": "get_weather", "arguments": { "city": "Beijing" } }。你的程序解析这个请求、执行真正的函数、把结果返回给模型,模型再基于结果生成自然语言回复。

这其实就是 AI Agent(智能体)的基础架构:模型是"大脑",Function Calling 是"手臂"。模型通过结构化输出来驱动外部系统——查数据库、调 API、发邮件、操作文件——而不是仅仅停留在"聊天"层面。

3.5 上下文管理-别让AI“失忆”

大模型有一个硬伤:上下文窗口有限

GPT-4 的上下文窗口是 128K token,GPT-4.1 系列可达 100 万 token——听起来很大。但如果你在一个对话里聊了上百轮,或者每次都给模型塞几十页文档,很快就会被截断。模型会"忘记"最早说过的话。

看不见的陷阱:Lost in the Middle

更隐蔽的问题是 "Lost in the Middle"(中间信息丢失)——这是 Liu et al.(2023)在论文中揭示的一个反直觉现象:

大模型在处理长文本时,对开头结尾的信息抓取最强,而对中间位置的信息提取能力显著下降。换句话说,即使你的上下文窗口还没满,放在中间的关键信息也可能被模型忽略。

这项研究的实验数据显示,当信息处于文档开头或结尾位置时,模型的多文档问答准确率可达 70% 以上,但当同样信息被移动到文档中间位置时,准确率可能骤降至不足 50%。窗口越大,这个效应越明显——因为模型需要在更长的文本中分配注意力。

这直接影响了提示词的信息排布策略:最重要的指令和上下文不要堆在中间,而是有意识地向两端集中。

这就像一个只有短期记忆的同事——你跟他聊了两个小时后,他已经忘了第一个小时你们在说什么。

两种解决思路:

思路一(轻量级):对话摘要 + 滚动窗口

在每轮对话前,用一句话提醒模型当前的状态:
"当前进度:我们已经完成了需求分析,现在正在进行接口设计。之前确认了 3 个核心接口:登录、支付、订单查询。"

这就是手动做"记忆压缩"。

思路二(系统级):RAG(检索增强生成)

当你需要 AI 基于特定知识库(比如公司内部文档、产品手册)回答问题时,不要在 prompt 里塞整个文档。先把文档切成小块存到向量数据库里,用户提问时检索出最相关的那几段,塞进 prompt。

这就是 RAG 的核心逻辑——不是让模型记住一切,而是只给它当下最需要的

四、进阶:从"手工作坊"到"工程化"

上面的五层心法还是"单次交互"的优化。当你开始把 AI 真正嵌入产品和工作流时,你需要的不再是"写好一个 prompt",而是"管理一个 prompt 体系"。

这就是行业内正在发生的转变——从提示词 1.0 到提示词 2.0

维度提示词 1.0提示词 2.0
定位手工技巧、单次指令系统工程、可迭代资产
方法试错、直觉、套模板框架、度量、A/B 测试、持续迭代
管理无版本、无监控Git 版本控制、效果监控、回归测试
推理直接问答思维链、思维树、反思修正

五、避坑指南:5 个最常见的错误

坑 1:提示词写得太模糊

"帮我分析一下这个产品""分析 XX 产品的目标用户、核心功能和定价策略,用 SWOT 框架输出,每个维
度至少 3 条"

模糊的输入必然导致模糊的输出。

坑 2:一次问太多问题

"帮我写个登录页面,要求支持邮箱手机号登录、记住密码、验证码、第三方登录
、忘记密码、注册跳转,对了还要做响应式,还要支持暗黑模式,还要有交互动画……"

模型可能会"丢三落四"。把大任务拆成小步骤,一个一个来。

坑 3:忽视模型的"边界"

"帮我预测明天的股票涨跌""帮我黑进隔壁公司的 WiFi"

大模型不是万能的。它有知识截止日期、有安全边界、不会预测未来。了解模型的"能力边界"是提示词工程的前提。

坑 4:用同一套提示词套不同模型

GPT-4、Claude、Gemini、DeepSeek……不同模型对提示词的敏感度不同。一个在 GPT-4 上好用的 prompt,放到 Claude 上可能效果打折。针对目标模型调优,而不是"一招鲜吃遍天"。

坑 5:忘了给模型"退出机制"——幻觉的工程治理

"你是一个永远不说不知道的专家"

这会让模型在碰到不确定的问题时开始编答案——这就是 AI 领域最棘手的问题之一:幻觉(Hallucination)。

幻觉分为两类:内在幻觉(模型输出与输入上下文矛盾)和外在幻觉(模型输出无法被验证或与现实不符)。OpenAI 的 Model Spec 也明确指出,模型在缺乏足够信息时应诚实地表达不确定性,而非臆造答案。

从提示词工程的角度,减轻幻觉有几条经过验证的策略:

  1. 给模型"不知道"的许可——在提示词中明确:如果你不确定答案,直接说"我不确定",不要猜测。
  2. 强制引用来源——要求模型在给出事实性陈述时标注出处,没有出处就不要说。
  3. 设定置信度阈值——让模型自评每条信息的确定程度(高/中/低),对低置信度内容标记警告。
"如果你不确定答案,直接说'我不确定',不要猜测。
对于所有事实性陈述,请标注信息来源。如果无法核实,请明确标注'未经核实'。"

六、实战:手把手写一个高质量的提示词

假设你要让 AI 帮你写一份周报

第一步:定义角色和场景

你是一名互联网公司的前端开发工程师,工作 3 年,所在团队负责用户端 H5 页面开发。

第二步:提供上下文

本周你完成了以下工作:

商品详情页性能优化,首屏加载从 3.2s 降到 1.1s

接入了新的埋点 SDK,完成了 5 个核心页面的埋点

修了 3 个线上 bug(iOS 输入框遮挡、安卓白屏、图片加载失败兜底)

下周计划:

购物车页面重构

配合后端完成支付流程联调

第三步:明确格式和风格

请生成周报,要求:

使用 Markdown 格式

语气专业但不死板,适合发给直属 leader

每个工作项用一句话描述成果,再加半句话说明影响

总字数控制在 300 字以内

第四步:把以上拼成一个完整的提示词

你是一名互联网公司的前端开发工程师,工作 3 年,所在团队负责用户端 H5 页面开发。

本周工作:

商品详情页性能优化,首屏加载从 3.2s 降到 1.1s

接入了新的埋点 SDK,完成了 5 个核心页面的埋点

修复 3 个线上 bug:iOS 输入框遮挡、安卓白屏、图片加载失败兜底

下周计划:

购物车页面重构

配合后端完成支付流程联调

请生成 Markdown 格式的周报。语气专业但不死板,适合发给直属 leader。每个工作项用一句话描述成果加半句话说明影响。总字数 300 字以内。

你看,这就是一个结构完整的提示词:角色 + 上下文 + 任务 + 格式约束 + 风格要求。

七、最后:提示词工程是 AI 时代的"英语"

2023 年初,有人说"提示词工程师年薪百万"。后来很多人发现这活儿好像就是"会写 prompt",于是嘲讽这是"新时代的搜索引擎优化"。

但近三年过去了,一个事实越来越清晰:提示词工程不是昙花一现的炒作品类,而是 AI 时代的核心能力。

这就好比——30 年前,会打字是一项专门的技能,可以靠它吃饭;今天不会打字的人已经很难找到白领工作了。提示词工程正在走同样的路:从"专门的岗位"变成"通用的基本功"。

本文写于 2026 年 7 月。提示词工程这个领域每半年就变一个样,如果你发现文中的某些信息已经过时了——恭喜你,说明你一直在跟进。

欢迎大家交流提示词实战经验,踩过的坑和总结的套路~