Skip to Content

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 容量是多少? 请展示你的推理过程。

输出:

  1. 每人可用工作天数:10 - 2 = 8 天
  2. 每人可完成 story point:8 × 3 = 24 点
  3. 团队总容量: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 是否满足要求?请从不同角度分析。

操作步骤

  1. 设置较高的 temperature(0.7-1.0)以获得多样化推理路径
  2. 对同一问题运行 3-5 次
  3. 比较所有输出,取出现频率最高的结论
  4. 如果结论不一致,分析分歧原因

5. Tree-of-Thought Prompting(思维树提示)

概念说明

将推理过程组织为树状结构,在每个决策节点探索多个分支,评估每个分支的前景,然后选择最优路径继续。相比线性的 Chain-of-Thought,Tree-of-Thought 允许回溯和并行探索。

适用场景

  • 需要探索多种方案的规划问题
  • 创意写作和头脑风暴
  • 架构设计中的方案对比
  • 博弈论和策略分析

示例

我需要为一个电商平台选择技术栈。请使用思维树方法: 1. 列出 3 个候选方案 2. 对每个方案,评估以下维度(1-10 分): - 开发效率 - 性能 - 可维护性 - 团队学习成本 - 生态系统成熟度 3. 对得分最高的 2 个方案,深入分析优劣 4. 给出最终推荐和理由

与 CoT 的对比

特性Chain-of-ThoughtTree-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 PromptRole 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 OutputsJSON Schema 强制约束API 按 token 计费100% schema 合规
Claude Tool UseJSON Schema 约束API 按 token 计费通过 tool_use 实现
Gemini Controlled GenerationJSON 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 循环:

  1. Thought:分析当前状态,决定下一步
  2. Action:调用工具(搜索、执行代码、读写文件等)
  3. Observation:获取工具返回结果
  4. Repeat:基于结果继续推理或给出最终答案

12. Self-Refine Prompting(自我优化提示)

概念说明

让模型生成初始输出后,自己审查并改进输出质量。模型扮演”作者”和”评审者”双重角色,通过迭代反馈循环不断提升输出质量。

适用场景

  • 代码生成后的自动审查和优化
  • 文案写作的质量提升
  • 翻译的准确性改进
  • 任何需要”先写后改”的创作任务

示例

请完成以下任务,分三步进行: 步骤 1 - 初稿: 为以下函数编写单元测试。 步骤 2 - 自我审查: 审查你写的测试代码,检查以下方面: - 是否覆盖了边界条件? - 是否有遗漏的错误场景? - 测试命名是否清晰? - 是否有冗余测试? 步骤 3 - 改进版: 基于审查结果,输出改进后的测试代码。 用 "// IMPROVED:" 注释标记所有改动。

进阶:多轮自我优化

请对以下代码进行 3 轮优化: 第 1 轮:关注正确性(修复 bug) 第 2 轮:关注性能(优化算法复杂度) 第 3 轮:关注可读性(改善命名和注释) 每轮输出优化后的代码和改动说明。

12 种模式速查对比表

#模式核心思想复杂度Token 消耗最佳用途
1Zero-Shot直接指令简单任务
2Few-Shot示例引导⭐⭐格式/风格控制
3Chain-of-Thought分步推理⭐⭐逻辑推理
4Self-Consistency多路径投票⭐⭐⭐高可靠性决策
5Tree-of-Thought树状探索⭐⭐⭐⭐很高复杂规划
6Role Prompting角色扮演专业咨询
7System Prompting全局规则⭐⭐应用/Agent 构建
8Structured Output格式约束⭐⭐API/自动化
9Constrained Generation内容边界⭐⭐合规内容
10Multi-Turn多轮迭代⭐⭐累积复杂任务分解
11ReAct推理+行动⭐⭐⭐Agent 工具调用
12Self-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 字...

适用于:高风险决策场景


避坑指南

❌ 常见错误

  1. 过度使用 Few-Shot

    • 问题:提供太多示例(>5 个)会占用大量上下文窗口,且可能导致模型过度拟合示例模式
    • 正确做法:3-5 个高质量示例通常足够,优先选择有代表性的边界案例
  2. CoT 用于简单任务

    • 问题:对简单任务使用 Chain-of-Thought 反而可能降低准确率,因为多余的推理步骤引入了出错机会
    • 正确做法:简单任务用 Zero-Shot,复杂推理才用 CoT
  3. 角色设定过于夸张

    • 问题:使用”你是世界上最顶级的专家”这类夸张描述,可能导致模型过度自信,减少对不确定性的表达
    • 正确做法:用具体的经验描述(“10 年 Kubernetes 经验”)代替夸张形容
  4. 忽略 System Prompt 的优先级

    • 问题:在用户消息中设定的规则可能被后续对话覆盖
    • 正确做法:关键规则放在 System Prompt 中,确保全局生效
  5. 结构化输出只靠 prompt 描述

    • 问题:仅在 prompt 中描述 JSON 格式,模型可能输出不合规的 JSON
    • 正确做法:使用 API 原生的 Structured Outputs 功能或 Instructor 等库进行 schema 验证

✅ 最佳实践

  1. 从 Zero-Shot 开始,效果不好再逐步升级到 Few-Shot → CoT → 更复杂的模式
  2. 在 prompt 末尾放置最重要的指令(模型对末尾内容的关注度更高)
  3. 使用 XML 标签(<context>, <instructions>, <examples>)组织长 prompt 的结构
  4. 定期测试和优化 prompt——同一个 prompt 在不同模型版本上的效果可能不同
  5. 为生产环境的 prompt 建立版本管理,记录每次修改和效果变化

相关资源与延伸阅读

Playground 与实验工具

  • OpenAI Playground  — OpenAI 官方 Prompt 实验环境,支持多模型对比和参数调节
  • Anthropic Console  — Claude 模型的官方 Playground,支持 System Prompt 和 Tool Use 测试
  • Google AI Studio  — Gemini 模型的免费实验平台,支持多模态 Prompt 测试
  • ChainForge  — 开源的可视化 Prompt 实验工具,支持多模型并行对比测试

Prompt 库与模板

学习资源

社区


参考来源


📖 返回 总览与导航 | 上一节:核心概念扫盲 | 下一节:模型差异化 Prompt 技巧

Last updated on