02a - 12 种 Prompt 模式扫盲
本文是《AI Agent 实战手册》第 2 章第 1 节。 上一节:核心概念扫盲 | 下一节:模型差异化 Prompt 技巧
概述
Prompt Engineering 是与大语言模型(LLM)高效协作的核心技能。不同的 prompt 模式适用于不同场景——从简单的零样本指令到复杂的多步推理链。本节系统梳理 12 种主流 prompt 模式,每种模式包含概念说明、适用场景和可直接使用的示例,帮助你建立完整的 prompt 技术工具箱。
1. Zero-Shot Prompting(零样本提示)
概念说明
直接给模型下达指令,不提供任何示例。依赖模型在预训练阶段学到的知识来完成任务。这是最基础也是最常用的 prompt 模式。
适用场景
- 简单分类、翻译、摘要等通用任务
- 模型已经对任务类型有良好理解的场景
- 快速原型验证,不想花时间构造示例
工具推荐
| 工具 | 用途 | 价格 | 适用场景 |
|---|---|---|---|
| ChatGPT (GPT-4o) | 通用零样本任务 | $20/月 (Plus) | 日常对话、写作、翻译 |
| Claude 4 Sonnet | 长文本零样本处理 | $20/月 (Pro) | 文档分析、代码生成 |
| Gemini 2.5 Pro | 多模态零样本 | 免费 / $19.99/月 | 图文理解、长上下文 |
示例
将以下英文翻译为中文,保持技术术语准确:
"Prompt engineering is the practice of designing inputs to guide LLM outputs."输出: Prompt engineering 是设计输入以引导大语言模型输出的实践方法。
2. Few-Shot Prompting(少样本提示)
概念说明
在 prompt 中提供少量输入-输出示例(通常 2-5 个),让模型通过”上下文学习”(In-Context Learning)理解任务模式,然后处理新的输入。
适用场景
- 模型对任务格式不够熟悉时
- 需要特定输出格式或风格
- 分类任务中需要明确类别边界
示例
请根据以下示例,对新的评论进行情感分类:
评论:"这个产品太棒了,完全超出预期!" → 正面
评论:"包装破损,客服态度差。" → 负面
评论:"还行吧,中规中矩。" → 中性
评论:"发货速度很快,但产品有点小瑕疵。" → ?输出: 中性(混合正面和负面因素)
技巧
- 示例数量通常 3-5 个效果最佳,覆盖不同类别
- 示例顺序会影响结果——把最相关的示例放在最后(近因效应)
- 确保示例格式一致,模型会严格模仿你的格式
3. Chain-of-Thought Prompting(思维链提示)
概念说明
引导模型在给出最终答案之前,先展示中间推理步骤。就像让模型”思考过程外显化”,通过分步推理减少逻辑错误。这是 2022 年由 Google 提出的技术,至今仍是最重要的高级 prompt 模式之一。
适用场景
- 数学计算和逻辑推理
- 多步骤决策问题
- 需要解释推理过程的场景
- 代码调试和 bug 分析
示例
请一步步思考以下问题:
一个团队有 8 名开发者。每人每天可以完成 3 个 story point。
Sprint 为 2 周(10 个工作日)。其中 2 天用于会议和 code review。
团队的 Sprint 容量是多少?
请展示你的推理过程。输出:
- 每人可用工作天数:10 - 2 = 8 天
- 每人可完成 story point:8 × 3 = 24 点
- 团队总容量:24 × 8 = 192 story point
变体
| 变体 | 说明 | 触发方式 |
|---|---|---|
| Zero-Shot CoT | 不给示例,直接触发推理 | 添加”让我们一步步思考” |
| Manual CoT | 手动提供推理示例 | 在 few-shot 中包含推理步骤 |
| Auto-CoT | 让模型自动生成推理链 | ”请展示你的完整推理过程” |
4. Self-Consistency Prompting(自一致性提示)
概念说明
对同一个问题生成多条独立的推理路径,然后通过”多数投票”选出最一致的答案。类似于咨询多位专家,取共识结论。这是对 Chain-of-Thought 的增强,通过多次采样提高可靠性。
适用场景
- 高风险决策需要高可靠性
- 数学推理和逻辑判断
- 存在多种合理解法的问题
- 需要验证答案正确性的场景
示例
请用三种不同的方法解决以下问题,然后比较三个答案,
选出最一致的结论:
一个 API 的平均响应时间是 200ms,P99 是 800ms。
如果我们要求 SLA 保证 99.9% 的请求在 500ms 内完成,
这个 API 是否满足要求?请从不同角度分析。操作步骤
- 设置较高的 temperature(0.7-1.0)以获得多样化推理路径
- 对同一问题运行 3-5 次
- 比较所有输出,取出现频率最高的结论
- 如果结论不一致,分析分歧原因
5. Tree-of-Thought Prompting(思维树提示)
概念说明
将推理过程组织为树状结构,在每个决策节点探索多个分支,评估每个分支的前景,然后选择最优路径继续。相比线性的 Chain-of-Thought,Tree-of-Thought 允许回溯和并行探索。
适用场景
- 需要探索多种方案的规划问题
- 创意写作和头脑风暴
- 架构设计中的方案对比
- 博弈论和策略分析
示例
我需要为一个电商平台选择技术栈。请使用思维树方法:
1. 列出 3 个候选方案
2. 对每个方案,评估以下维度(1-10 分):
- 开发效率
- 性能
- 可维护性
- 团队学习成本
- 生态系统成熟度
3. 对得分最高的 2 个方案,深入分析优劣
4. 给出最终推荐和理由与 CoT 的对比
| 特性 | Chain-of-Thought | Tree-of-Thought |
|---|---|---|
| 推理结构 | 线性(A→B→C) | 树状(分支+回溯) |
| 探索广度 | 单一路径 | 多路径并行 |
| 适用复杂度 | 中等 | 高 |
| Token 消耗 | 较少 | 较多 |
| 典型用途 | 数学推理、逻辑分析 | 规划、创意、架构设计 |
6. Role Prompting(角色提示)
概念说明
为模型指定一个特定角色或身份,让它从该角色的视角和专业知识出发来回答问题。角色设定会影响模型的语气、专业深度和关注点。
适用场景
- 需要特定领域专业知识的咨询
- 模拟不同利益相关者的视角
- 代码审查(扮演高级工程师)
- 文档写作(扮演技术作家)
示例
你是一位有 15 年经验的 DevOps 架构师,专精 Kubernetes 和云原生架构。
你的沟通风格是直接、务实,喜欢用具体数据说话。
请审查以下 Kubernetes 部署配置,指出潜在问题和优化建议:
[配置内容]技巧
- 角色描述越具体越好:包含经验年限、专业领域、沟通风格
- 可以组合多个角色进行”辩论”,获得多视角分析
- 避免过于夸张的角色设定(如”你是世界上最好的程序员”),这可能导致过度自信的输出
7. System Prompting(系统提示)
概念说明
通过 API 的 system 角色消息设定模型的全局行为规则、人格特征和约束条件。System prompt 在整个对话中持续生效,是构建 AI 应用和 Agent 的基础。
适用场景
- 构建 AI 应用时定义助手行为
- 设定输出格式和语言约束
- 定义安全边界和内容过滤规则
- Agent 的核心指令配置
示例
{
"role": "system",
"content": "你是一个代码审查助手。规则:
1. 只关注代码质量问题,不讨论业务逻辑
2. 按严重程度分级:🔴 严重 / 🟡 警告 / 🔵 建议
3. 每个问题必须包含:位置、问题描述、修复建议
4. 输出格式为 Markdown 表格
5. 如果代码没有问题,回复'✅ LGTM'"
}System Prompt vs Role Prompt
| 特性 | System Prompt | Role Prompt |
|---|---|---|
| 设置位置 | API system 角色 | 用户消息中 |
| 持续性 | 整个对话 | 可能被后续消息覆盖 |
| 优先级 | 最高 | 较低 |
| 适用场景 | 应用开发、Agent 构建 | 临时角色切换 |
| 可见性 | 用户通常不可见 | 用户可见 |
8. Structured Output Prompting(结构化输出提示)
概念说明
明确指定模型输出的格式和结构,如 JSON、XML、Markdown 表格、YAML 等。2025-2026 年,主流模型(GPT-4o、Claude、Gemini)都支持原生结构化输出(Structured Outputs),可以在 API 层面保证输出符合指定的 JSON Schema。
适用场景
- API 响应需要机器可解析的格式
- 数据提取和信息抽取
- 自动化工作流中的数据传递
- Agent 工具调用的参数生成
工具推荐
| 工具 | 结构化输出支持 | 价格 | 特点 |
|---|---|---|---|
| OpenAI Structured Outputs | JSON Schema 强制约束 | API 按 token 计费 | 100% schema 合规 |
| Claude Tool Use | JSON Schema 约束 | API 按 token 计费 | 通过 tool_use 实现 |
| Gemini Controlled Generation | JSON Schema 约束 | API 按 token 计费 | 支持 enum 约束 |
| Instructor (Python 库) | Pydantic 模型验证 | 免费开源 | 自动重试+验证 |
示例
分析以下代码片段,以 JSON 格式输出结果:
{
"language": "检测到的编程语言",
"complexity": "low | medium | high",
"issues": [
{
"severity": "error | warning | info",
"line": "行号",
"message": "问题描述",
"suggestion": "修复建议"
}
],
"metrics": {
"lines_of_code": "数字",
"cyclomatic_complexity": "数字"
}
}2026 最佳实践
- 优先使用 API 原生的 Structured Outputs 功能,而非在 prompt 中描述格式
- 使用 Pydantic(Python)或 Zod(TypeScript)定义 schema,通过 Instructor 或 LangChain 自动转换
- 对于复杂嵌套结构,先用简单 schema 验证,再逐步增加复杂度
9. Constrained Generation(约束生成)
概念说明
在 prompt 中设定严格的输出约束条件,包括字数限制、必须包含/排除的内容、格式要求、语气限制等。与结构化输出关注”格式”不同,约束生成更关注”内容边界”。
适用场景
- 营销文案需要精确字数控制
- 合规内容需要排除特定词汇
- SEO 内容需要包含特定关键词
- 技术文档需要遵循特定术语规范
示例
为以下产品写一段描述。
约束条件:
- 恰好 3 段,每段不超过 50 字
- 第一段:产品核心价值(必须包含"效率"一词)
- 第二段:3 个关键特性,用 bullet point
- 第三段:行动号召,包含紧迫感
- 语气:专业但友好
- 禁止使用:最好的、革命性的、颠覆性的
- 必须包含"免费试用"恰好一次
产品:[产品描述]约束类型清单
| 约束类型 | 示例 | 用途 |
|---|---|---|
| 长度约束 | ”不超过 200 字” | 控制输出篇幅 |
| 格式约束 | ”使用 Markdown 表格” | 统一输出格式 |
| 内容包含 | ”必须提到 X” | 确保关键信息 |
| 内容排除 | ”不要提及竞品” | 避免敏感内容 |
| 语气约束 | ”正式商务语气” | 控制表达风格 |
| 受众约束 | ”面向非技术人员” | 调整专业深度 |
10. Multi-Turn Prompting(多轮对话提示)
概念说明
通过多轮对话逐步引导模型完成复杂任务。每一轮基于前一轮的输出进行深化、修正或扩展。这是实际使用中最常见的模式,也是 Agent 交互的基础。
适用场景
- 复杂任务的分步完成
- 迭代式内容创作和修改
- 交互式代码开发和调试
- 需求澄清和方案细化
示例
第 1 轮:请为一个待办事项 API 设计数据模型,包含用户、项目、任务三个实体。
第 2 轮:很好。现在为 Task 实体添加优先级、标签和截止日期字段,
并设计标签的多对多关系。
第 3 轮:请基于这个数据模型,生成 Prisma schema 文件。
第 4 轮:现在为 Task 的 CRUD 操作生成 REST API 端点定义。技巧
- 每轮聚焦一个明确的子任务
- 在新一轮开始时,简要总结前几轮的关键决策
- 如果对话过长,定期要求模型”总结到目前为止的所有决策”
- 注意上下文窗口限制——超长对话可能导致早期信息丢失
11. ReAct Prompting(推理+行动提示)
概念说明
ReAct(Reasoning + Acting)模式让模型交替进行”推理”和”行动”。模型先思考下一步该做什么(Thought),然后执行一个动作(Action),观察结果(Observation),再基于观察继续推理。这是现代 AI Agent 的核心运行模式。
适用场景
- AI Agent 的工具调用决策
- 需要外部信息检索的问答
- 多步骤任务的自主执行
- 需要实时反馈的交互式任务
示例
你是一个研究助手,可以使用以下工具:
- search(query): 搜索网络信息
- calculate(expression): 计算数学表达式
- read_file(path): 读取文件内容
任务:分析 React 和 Vue 在 2026 年的 npm 下载量对比。
请按以下格式回答:
Thought: [你的推理]
Action: [工具名(参数)]
Observation: [工具返回结果]
... (重复直到完成)
Answer: [最终答案]典型执行流程:
Thought: 我需要获取 React 和 Vue 的 npm 下载量数据
Action: search("React npm weekly downloads 2026")
Observation: React 周下载量约 2800 万次
Thought: 现在需要获取 Vue 的数据进行对比
Action: search("Vue npm weekly downloads 2026")
Observation: Vue 周下载量约 520 万次
Thought: 我已经有了两个框架的数据,可以进行对比分析
Answer: React 的周下载量(~2800 万)约为 Vue(~520 万)的 5.4 倍...ReAct 在 Agent 中的应用
2025-2026 年,ReAct 已成为主流 Agent 框架(LangChain、LlamaIndex、Claude Code)的默认推理模式。Agent 的每次工具调用本质上都是一个 ReAct 循环:
- Thought:分析当前状态,决定下一步
- Action:调用工具(搜索、执行代码、读写文件等)
- Observation:获取工具返回结果
- Repeat:基于结果继续推理或给出最终答案
12. Self-Refine Prompting(自我优化提示)
概念说明
让模型生成初始输出后,自己审查并改进输出质量。模型扮演”作者”和”评审者”双重角色,通过迭代反馈循环不断提升输出质量。
适用场景
- 代码生成后的自动审查和优化
- 文案写作的质量提升
- 翻译的准确性改进
- 任何需要”先写后改”的创作任务
示例
请完成以下任务,分三步进行:
步骤 1 - 初稿:
为以下函数编写单元测试。
步骤 2 - 自我审查:
审查你写的测试代码,检查以下方面:
- 是否覆盖了边界条件?
- 是否有遗漏的错误场景?
- 测试命名是否清晰?
- 是否有冗余测试?
步骤 3 - 改进版:
基于审查结果,输出改进后的测试代码。
用 "// IMPROVED:" 注释标记所有改动。进阶:多轮自我优化
请对以下代码进行 3 轮优化:
第 1 轮:关注正确性(修复 bug)
第 2 轮:关注性能(优化算法复杂度)
第 3 轮:关注可读性(改善命名和注释)
每轮输出优化后的代码和改动说明。12 种模式速查对比表
| # | 模式 | 核心思想 | 复杂度 | Token 消耗 | 最佳用途 |
|---|---|---|---|---|---|
| 1 | Zero-Shot | 直接指令 | ⭐ | 低 | 简单任务 |
| 2 | Few-Shot | 示例引导 | ⭐⭐ | 中 | 格式/风格控制 |
| 3 | Chain-of-Thought | 分步推理 | ⭐⭐ | 中 | 逻辑推理 |
| 4 | Self-Consistency | 多路径投票 | ⭐⭐⭐ | 高 | 高可靠性决策 |
| 5 | Tree-of-Thought | 树状探索 | ⭐⭐⭐⭐ | 很高 | 复杂规划 |
| 6 | Role Prompting | 角色扮演 | ⭐ | 低 | 专业咨询 |
| 7 | System Prompting | 全局规则 | ⭐⭐ | 低 | 应用/Agent 构建 |
| 8 | Structured Output | 格式约束 | ⭐⭐ | 中 | API/自动化 |
| 9 | Constrained Generation | 内容边界 | ⭐⭐ | 中 | 合规内容 |
| 10 | Multi-Turn | 多轮迭代 | ⭐⭐ | 累积 | 复杂任务分解 |
| 11 | ReAct | 推理+行动 | ⭐⭐⭐ | 高 | Agent 工具调用 |
| 12 | Self-Refine | 自我改进 | ⭐⭐⭐ | 高 | 质量优化 |
模式组合策略
在实际生产中,很少单独使用某一种模式。以下是常见的组合方式:
组合 1:Role + System + CoT
System: 你是高级安全工程师...
User: 请一步步分析这段代码的安全漏洞...适用于:需要专业深度的分析任务
组合 2:Few-Shot + Structured Output
以下是 3 个示例,请按相同的 JSON 格式处理新输入...适用于:批量数据处理和信息抽取
组合 3:ReAct + Self-Refine
使用工具完成任务后,审查你的结果并改进...适用于:Agent 的自主任务执行
组合 4:CoT + Self-Consistency + Constrained
用 3 种方法分析,取共识结论,输出不超过 200 字...适用于:高风险决策场景
避坑指南
❌ 常见错误
-
过度使用 Few-Shot
- 问题:提供太多示例(>5 个)会占用大量上下文窗口,且可能导致模型过度拟合示例模式
- 正确做法:3-5 个高质量示例通常足够,优先选择有代表性的边界案例
-
CoT 用于简单任务
- 问题:对简单任务使用 Chain-of-Thought 反而可能降低准确率,因为多余的推理步骤引入了出错机会
- 正确做法:简单任务用 Zero-Shot,复杂推理才用 CoT
-
角色设定过于夸张
- 问题:使用”你是世界上最顶级的专家”这类夸张描述,可能导致模型过度自信,减少对不确定性的表达
- 正确做法:用具体的经验描述(“10 年 Kubernetes 经验”)代替夸张形容
-
忽略 System Prompt 的优先级
- 问题:在用户消息中设定的规则可能被后续对话覆盖
- 正确做法:关键规则放在 System Prompt 中,确保全局生效
-
结构化输出只靠 prompt 描述
- 问题:仅在 prompt 中描述 JSON 格式,模型可能输出不合规的 JSON
- 正确做法:使用 API 原生的 Structured Outputs 功能或 Instructor 等库进行 schema 验证
✅ 最佳实践
- 从 Zero-Shot 开始,效果不好再逐步升级到 Few-Shot → CoT → 更复杂的模式
- 在 prompt 末尾放置最重要的指令(模型对末尾内容的关注度更高)
- 使用 XML 标签(
<context>,<instructions>,<examples>)组织长 prompt 的结构 - 定期测试和优化 prompt——同一个 prompt 在不同模型版本上的效果可能不同
- 为生产环境的 prompt 建立版本管理,记录每次修改和效果变化
相关资源与延伸阅读
Playground 与实验工具
- OpenAI Playground — OpenAI 官方 Prompt 实验环境,支持多模型对比和参数调节
- Anthropic Console — Claude 模型的官方 Playground,支持 System Prompt 和 Tool Use 测试
- Google AI Studio — Gemini 模型的免费实验平台,支持多模态 Prompt 测试
- ChainForge — 开源的可视化 Prompt 实验工具,支持多模型并行对比测试
Prompt 库与模板
- Anthropic Prompt Library — Anthropic 官方 Prompt 模板库,涵盖常见任务场景
- AI Prompt Library — 社区驱动的 Prompt 模板集合,按用途分类
- Awesome ChatGPT Prompts — GitHub 上最受欢迎的 Prompt 集合,10 万+ Star
学习资源
- Prompt Engineering Guide — 最全面的 Prompt Engineering 开源教程,支持中文
- Learn Prompting — 免费的 Prompt Engineering 互动课程,从入门到高级
- Anthropic Prompt Engineering 文档 — Claude 官方 Prompt 工程最佳实践
社区
- r/PromptEngineering — Reddit Prompt Engineering 社区,分享技巧和讨论
- Prompt Engineering Community — The Hive Index — 23+ 个 Prompt Engineering 社区的聚合目录
参考来源
- 12 Advanced Prompt Engineering Techniques (2025-2026) (2026 年 2 月)
- Types of Prompt Engineering: Zero-Shot to Self-Consistency (2026 Guide) (2026 年 2 月)
- Prompt Engineering Best Practices (2026): Checklist (2026 年 1 月)
- Prompt Engineering Guide 2026 - Analytics Vidhya (2026 年 1 月)
- Advanced Prompting Techniques for Complex AI Reasoning (2025 年 11 月)
- GPT-5.2 Prompting Guide: The 2026 Playbook (2026 年 2 月)
📖 返回 总览与导航 | 上一节:核心概念扫盲 | 下一节:模型差异化 Prompt 技巧