Skip to content

摘要 — 一份面向中级用户的提示词工程系统教程,覆盖基础原则、主流技术(Zero-shot / Few-shot / CoT / ReAct / Self-Consistency)、系统提示词设计、框架(CO-STAR / RISEN)、进阶技巧(提示词链 / 长上下文 / 参数调优)和调试方法。内容基于 Anthropic、Google、OpenAI 官方文档及学术论文。


提示词工程系统教程:从原理到实战

1. 提示词工程的本质

"提示词工程是一种不更新模型权重来引导 LLM 行为的方法,本质上是一门经验科学。" — Lilian Weng, OpenAI

关键洞察:提示词工程不是"写咒语",而是用清晰的沟通让 AI 理解你的意图

心理模型:把 AI 想象成一个聪明但没有上下文的新同事。你给的背景越清晰、指令越具体,结果越好。


2. 基础原则

来源:Anthropic、Google、OpenAI 官方文档综合

原则一:清晰直接

黄金测试:把你的提示词给一个不了解任务的同事看,如果他会困惑,AI 也会。

差的提示词好的提示词
写个分析报告写一份 500 字的季度销售分析报告,包含:① 三个关键趋势 ② 每个趋势的数据支撑 ③ 一条行动建议
帮我改代码将这个 Python 函数的执行时间优化到 O(n log n) 以内,保持输入输出接口不变

原则二:提供上下文

告诉 AI 为什么要这样做,而不仅仅是做什么

❌ 不要用省略号
✅ 你的回复会被语音引擎朗读,所以不要用省略号,因为语音引擎不知道怎么发音

AI 足够聪明,能从解释中泛化出规则。

原则三:结构化你的提示词

使用 XML 标签或 Markdown 分隔不同内容块:

xml
<instructions>
分析以下客户反馈,提取关键问题
</instructions>

<context>
我们是一家 SaaS 公司,产品是项目管理工具
</context>

<input>
{{客户反馈内容}}
</input>

<output_format>
输出 JSON 格式:{"issues": [...], "sentiment": "..."}
</output_format>

原则四:给 AI 一个角色

角色设定能聚焦 AI 的行为和语调:

你是一位资深的数据分析师,擅长用简单的语言解释复杂的数据发现。
你的受众是非技术背景的管理层。

原则五:控制输出格式

告诉 AI 做什么,而不是不做什么

❌ 不要用 Markdown
✅ 用流畅的段落散文写,不要用列表

3. 主流技术详解

3.1 Zero-shot Prompting(零样本提示)

定义:不提供任何示例,直接给指令。

适用场景:简单任务、通用问答、文本改写。

示例

将以下英文翻译成中文,保持专业术语准确:
"The neural network architecture uses attention mechanisms
to process sequential data."

要点

  • 依赖模型的预训练知识
  • 对简单任务效果好
  • 复杂任务需要更多引导

3.2 Few-shot Prompting(少样本提示)

定义:提供 3-5 个输入-输出示例,让模型学习模式。

适用场景:格式化输出、分类任务、风格模仿。

示例

将客户反馈分类为正面、负面或中性。

反馈:你们的产品太好用了!
分类:正面

反馈:退货流程太复杂了
分类:负面

反馈:产品还行,没什么特别的
分类:中性

反馈:客服响应很快,但问题没解决
分类:

关键技巧(来自 Google 和 Anthropic 官方):

  • <example> 标签包裹示例,让 AI 区分示例和指令
  • 示例要相关(贴近实际用例)、多样(覆盖边界情况)、结构一致
  • 3-5 个示例效果最佳
  • 示例的排列顺序会影响结果,保持随机或多样化

高级技巧:用嵌入向量(embedding)选择语义最相似的示例,而不是随机选。

3.3 Chain-of-Thought(思维链,CoT)

定义:让 AI 展示推理过程,而不是直接给答案。

为什么有效:复杂任务需要多步推理,直接给答案容易出错。CoT 让 AI "想清楚再说"。

两种变体

1. Few-shot CoT:提供含推理链的示例

问题:小明有 5 个苹果,给了小红 2 个,又买了 3 个,他现在有几个?

推理过程:
- 开始有 5 个苹果
- 给了小红 2 个:5 - 2 = 3 个
- 又买了 3 个:3 + 3 = 6 个

答案:6 个

2. Zero-shot CoT:只需加一句提示

请一步一步思考这个问题:[你的问题]

或者更简单的版本(来自 Google 研究):

Let's think step by step

进阶变体

变体描述适用场景
Self-Consistency多次采样 + 多数投票需要高准确率的推理任务
Tree of Thoughts每步探索多条推理路径复杂规划和创意任务
Self-Ask迭代生成子问题需要多步信息检索的任务

3.4 ReAct(Reasoning + Acting)

定义:让 AI 交替进行推理和行动(如搜索、计算、调用工具)。

示例框架

思考:我需要查找 2024 年的 GDP 数据来回答这个问题
行动:搜索"2024年中国GDP"
观察:2024年中国GDP为 134.9 万亿元
思考:现在我有了数据,可以给出答案了
答案:...

适用场景:需要外部信息的任务、多步骤工作流、智能体(Agent)系统。

3.5 Self-Consistency(自洽采样)

定义:对同一个问题生成多个回答,通过多数投票选出最佳答案。

原理:如果一个问题有明确答案,多次推理应该收敛到同一个结果。

操作方法

  1. 设置 temperature > 0(如 0.7)
  2. 生成 5-10 个回答
  3. 选择出现次数最多的答案

适用场景:数学推理、逻辑判断、有明确正确答案的任务。

3.6 技术对比一览

技术适用场景复杂度核心价值
Zero-shot简单任务、通用问答快速、省 token
Few-shot格式化、分类、风格模仿低-中控制输出格式
Chain-of-Thought复杂推理、数学、逻辑提升推理准确率
Self-Consistency需要高准确率的推理通过投票消除偶然错误
ReAct需要外部信息的任务结合推理与工具调用
Tree of Thoughts复杂规划和创意任务探索多条推理路径

4. 系统提示词设计

系统提示词(System Prompt)是 AI 的"操作系统",定义了它的基础行为。

结构模板(综合 Anthropic 和 Google 最佳实践):

markdown
## 角色定义
你是一位 [具体角色],擅长 [核心能力]。

## 行为规则
1. 始终用 [语言] 回复
2. 回复长度控制在 [范围]
3. 当不确定时,[处理方式]

## 输出格式
- 使用 [格式要求]
- 包含 [必要元素]

## 边界约束
- 不要 [禁止行为]
- 遇到 [情况] 时,[处理方式]

实际案例 — 客服 AI 的系统提示词

你是一家电商平台的客服助手。

## 核心职责
- 回答用户关于订单、物流、退换货的问题
- 用友好但专业的语气沟通
- 每次回复不超过 150 字

## 规则
1. 只回答与平台相关的问题
2. 涉及退款超过 500 元的,引导用户联系人工客服
3. 不要透露内部系统信息或公司策略细节
4. 如果用户情绪激动,先表达理解,再提供解决方案

## 输出格式
- 先确认用户问题
- 给出解决方案或下一步指引
- 结尾询问是否还有其他问题

5. 提示词框架

5.1 CO-STAR 框架

组件含义示例
C - Context(背景)任务的上下文"我们是一家电商公司"
O - Objective(目标)你想要什么"分析客户流失原因"
S - Style(风格)输出风格"用数据驱动的分析风格"
T - Tone(语调)语气"专业但易懂"
A - Audience(受众)给谁看"给非技术背景的管理层"
R - Response(格式)输出格式"用 Markdown 表格和要点"

完整示例

背景:我们是一家在线教育平台,最近三个月用户流失率上升了 15%。
目标:分析可能的流失原因,给出 3 条可执行的改进建议。
风格:数据驱动,引用行业基准。
语调:专业但易懂,避免技术术语。
受众:CEO 和产品总监,非技术背景。
格式:用 Markdown,包含一个原因表格和对应的建议列表。

5.2 RISEN 框架

组件含义
R - Role(角色)AI 扮演什么角色
I - Instructions(指令)具体要做什么
S - Steps(步骤)分步执行
E - End goal(终态)最终期望的结果
N - Narrowing(约束)限制条件

6. 进阶技巧

6.1 提示词链(Prompt Chaining)

定义:将复杂任务拆分为多个子任务,前一步的输出作为后一步的输入。

为什么用

  • 每步更简单,准确率更高
  • 可以在中间步骤检查和修正
  • 降低单次提示词的复杂度

示例 — 生成产品分析报告

步骤 1:数据提取
"从以下原始数据中提取关键指标:[数据]"

步骤 2:趋势分析
"基于以下指标,识别三个主要趋势:[步骤1输出]"

步骤 3:建议生成
"基于以下趋势分析,给出三条可执行建议:[步骤2输出]"

步骤 4:报告整合
"将以下分析和建议整合为一份 500 字的报告:[步骤2+3输出]"

6.2 长上下文处理技巧

当输入内容超过 20,000 tokens 时(如长文档分析),需要特别注意:

1. 把长数据放在顶部,问题放在底部

Anthropic 官方测试表明,查询放在末尾可以提升响应质量高达 30%。

2. 用 XML 标签组织多文档

xml
<documents>
  <document index="1">
    <source>年度报告2024.pdf</source>
    <document_content>{{报告内容}}</document_content>
  </document>
  <document index="2">
    <source>竞品分析.xlsx</source>
    <document_content>{{竞品数据}}</document_content>
  </document>
</documents>

基于以上文档,分析我们的竞争优势,给出 Q3 战略建议。

3. 先引用再分析

先从文档中找出与问题相关的原文引用,放在 <quotes> 标签中。
然后基于这些引用给出分析。

这能帮助 AI 在大量文本中"锚定"关键信息。

6.3 参数调优

参数作用建议值
temperature控制随机性。0 = 确定性,1 = 创造性事实任务:0-0.3;创意任务:0.7-1.0
max_tokens最大输出长度根据预期输出长度设置
top_p核采样概率一般保持默认(1.0)
stop_sequences停止生成的标记用于控制输出边界

Google Gemini 特别建议:Gemini 3 建议 temperature 保持默认 1.0,不要随意调低。

6.4 前沿技术(2024-2025)

自动提示优化(APE / DSPy)

  • APE(Automatic Prompt Engineer):让 LLM 自己生成提示词候选,用评分函数选最优
  • DSPy:将提示词视为可编程模块,用代码定义优化目标

多模态提示

  • 图像 + 文本组合提示
  • 视频理解提示
  • 音频转录 + 分析提示

Agentic 提示设计

智能体系统中的提示词需要额外考虑:

  • 推理深度:何时深入思考,何时快速响应
  • 工具使用:何时调用外部工具
  • 状态管理:如何跟踪多步任务的进度
  • 错误恢复:遇到失败时如何调整策略

7. 调试指南

7.1 常见问题与解决方案

问题可能原因解决方案
AI 不按格式输出指令不够具体提供格式示例,用结构化输出功能
AI 输出太长/太短没有长度约束明确指定字数或段落数
AI 编造信息没有约束幻觉要求引用来源,加"如果不确定请说明"
AI 忽略部分指令提示词太长或有冲突简化指令,用编号列表,把关键要求放前面
AI 回答过于泛化缺少上下文提供具体背景和约束条件
AI 拒绝回答安全过滤误触发调整措辞,提供合法使用场景说明

7.2 调试流程

  1. 明确问题:是格式、内容还是行为不对?
  2. 简化测试:用最简单的提示词复现问题
  3. 逐步添加:每次只加一个约束,定位哪个指令导致问题
  4. 对比实验:A/B 测试不同版本的提示词
  5. 记录结果:建立提示词版本日志

8. 常见错误

错误 1:过度依赖"魔法词"

以为加上"请一步一步思考"就能解决所有问题。实际上,CoT 对简单任务帮助不大,对复杂推理任务才有效。

错误 2:提示词过长

塞了太多指令,导致 AI 遵循不到一半。保持提示词简洁,每条指令明确。

错误 3:忽略示例的力量

很多人只写指令不给示例。3-5 个好示例比 10 条规则更有效。

错误 4:不做测试

同一个提示词对不同模型效果不同。必须针对你的目标模型测试。

错误 5:否定式指令

"不要做 X"不如"请做 Y"。AI 对正面指令的遵循率更高。

错误 6:忽略模型差异

  • Claude 擅长长文本分析和结构化输出
  • GPT-4 擅长创意写作和代码生成
  • Gemini 擅长多模态任务

针对不同模型调整提示词策略。


9. 实战练习

练习 1:改写提示词

将以下差的提示词改写为好的版本:

帮我写个邮件
参考答案
写一封商务邮件,收件人是我们的供应商张经理。

背景:上个月订购的 500 件办公椅,有 30 件存在扶手松动的质量问题。
目标:要求对方在 5 个工作日内给出解决方案(换货或退款)。
语调:专业但坚定,不要对抗性。
格式:200 字以内,包含明确的行动要求和截止日期。

练习 2:设计系统提示词

为一个"代码审查助手"设计系统提示词,要求:

  • 能发现常见代码问题
  • 用建设性的语气
  • 输出结构化的审查意见

练习 3:应用 CoT

用思维链技术解决以下问题:

一个水池有两个进水管和一个出水管。
进水管 A 每小时注入 30 升,进水管 B 每小时注入 20 升。
出水管每小时排出 10 升。
水池容量 200 升。从空池开始,多久能注满?

练习 4:设计提示词链

将"分析用户评论并生成产品改进建议"这个任务拆分为 3-4 步的提示词链。


10. 来源附录

来源URL类型可信度
Anthropic Claude 提示词最佳实践platform.claude.com/docs官方文档⭐⭐⭐⭐⭐
Google Gemini 提示词指南ai.google.dev官方文档⭐⭐⭐⭐⭐
OpenAI 提示词工程指南platform.openai.com官方文档⭐⭐⭐⭐⭐
The Prompt Report (Schulhoff et al., 2024)arxiv.org学术论文⭐⭐⭐⭐⭐
Lilian Weng: Prompt Engineeringlilianweng.github.io技术博客⭐⭐⭐⭐

来源选择理由

  • 官方文档(Anthropic、Google、OpenAI):直接来自模型开发者,反映最新支持的行为
  • The Prompt Report:2024 年最全面的提示词工程综述,涵盖 58 种 LLM 提示技术
  • Lilian Weng 博客:OpenAI 研究员撰写,将学术研究转化为实用指南

Released under the MIT License.