7 个Prompt 框架汇总:从 Chain of Thought 到 ReAct + PoT

7 个 Prompt 框架汇总:从 Chain of Thought 到 ReAct + PoT

作者:AI 开发者社区

标签:#Prompt工程 #CoT #ReAct #AI技巧 #思维链

阅读时长:13 分钟


前言

同样是问 AI,"帮我写个排序算法"和"用 Python 实现一个快速排序函数,要求原地排序、时间复杂度 O(n log n)",得到的答案质量天差地别。

差距在哪?Prompt 设计。

2026 年,Prompt Engineering 已经从"聊聊天"进化为一门系统工程学科。本文不灌水,直接带你搞懂 7 个核心 Prompt 框架,每个都附可复制的模板和实测对比。


目录

  1. Zero-Shot / Few-Shot ------ 基本功
  2. Chain of Thought(CoT)------ 让 AI 会推演
  3. ReAct --- 推理 + 行动循环
  4. Tree of Thoughts(ToT)------ 多路径探索
  5. Program of Thoughts(PoT)------ 用代码推理
  6. Plan-and-Solve --- 先规划再执行
  7. Self-Consistency --- 多数投票法
  8. 框架对比 & 场景选型指南

1. Zero-Shot / Few-Shot ------ 所有框架的基石

Zero-Shot :直接提问,不给示例。
Few-Shot:给 2-3 个示例,让模型学会"格式"和"风格"。

markdown 复制代码
## Zero-Shot 示例
问题:请将以下英文翻译成中文
"The future belongs to those who believe in the beauty of their dreams."

## Few-Shot 示例
你是一个专业的技术文档翻译。请将以下英文翻译成中文,要求:
- 保持技术术语的准确性
- 中文自然流畅
- 格式保持一致

示例 1:
E: "The system uses a transformer architecture."
C: "该系统采用 Transformer 架构。"

示例 2:
E: "Fine-tuning improves downstream task performance."
C: "微调可以提升下游任务的性能。"

现在请翻译:
E: "The mixture of experts approach reduces computational cost."

适用场景:翻译、分类、格式化输出等"格式 > 推理"的任务。


2. Chain of Thought(CoT)------ 思维链推演

核心思想:引导模型"一步步想",而不是直接给答案。

markdown 复制代码
## 标准 Prompt(不加 CoT)
问题:我有 15 个苹果,给了小明 3 个,又买了 8 个,然后给了小红一半,
最后又吃了 2 个。我还剩几个?
模型可能直接说:8 个(❌ 猜的)

## CoT Prompt
问题:我有 15 个苹果,给了小明 3 个,又买了 8 个,然后给了小红一半,
最后又吃了 2 个。我还剩几个?

让我们一步步思考:
1. 初始:15 个
2. 给小明 3 个后:15 - 3 = 12 个
3. 买 8 个后:12 + 8 = 20 个
4. 给小红一半后:20 / 2 = 10 个
5. 吃 2 个后:10 - 2 = 8 个
答案:8 个 ✅

CoT 实战模板

python 复制代码
# Python 中使用 CoT 的系统提示词
SYSTEM_PROMPT = """你是一个严谨的推理助手。在回答任何需要推理的问题时,
请遵循以下格式:

步骤 1:分析问题,识别关键信息
步骤 2:列出已知条件和待求目标
步骤 3:逐步推导,每步标注逻辑
步骤 4:验证答案的合理性
最终答案:[你的答案]
"""

实测效果(GSM8K 数学题集):

Prompt 方式 准确率
Zero-Shot 47.9%
CoT 74.5%
CoT + Few-Shot 82.3%

只需加一句"Let's think step by step",准确率从 48% 飙升到 74%。这就是思维链的威力。


3. ReAct --- 推理 + 行动循环

核心思想 :让模型交替执行 推理(Thought)行动(Action),像人一样"边想边做"。

复制代码
ReAct 循环:
Thought → Action → Observation → Thought → Action → ...

对比:
CoT:推理链(纯脑力)
ReAct:推理 + 工具调用(脑力 + 动手)

ReAct 实战:让 LLM 搜索 + 推理

python 复制代码
from langchain.agents import create_react_agent
from langchain.tools import Tool

tools = [
    Tool(name="搜索", func=search_web, description="搜索互联网获取实时信息"),
    Tool(name="计算器", func=calculator, description="执行数学计算"),
]

react_prompt = """你是一个能使用工具的推理助手。

可用工具:
- 搜索:搜索互联网获取实时信息
- 计算器:执行数学计算

请用以下格式回答:

Thought: [你的思考过程]
Action: [工具名称]
Action Input: [工具输入]
Observation: [工具返回结果]
...(可重复)
Thought: 我已获得足够信息
Final Answer: [最终答案]

问题:{question}
"""

agent = create_react_agent(llm, tools, react_prompt)
result = agent.invoke({"question": "2026年特斯拉股价相比2025年涨了多少?"})

输出示例

复制代码
Thought: 我需要查询特斯拉2026年和2025年的股价
Action: 搜索
Action Input: "特斯拉 2025 股价"
Observation: 2025年均价约 $250

Thought: 还需要2026年数据
Action: 搜索
Action Input: "特斯拉 2026 股价"
Observation: 2026年均价约 $320

Thought: 现在计算涨幅
Action: 计算器
Action Input: (320 - 250) / 250 * 100
Observation: 28.0

Final Answer: 特斯拉2026年股价相比2025年上涨了约28%

4. Tree of Thoughts(ToT)------ 多路径探索

核心思想 :不只一条推理链,而是同时探索多条路径,选出最优解。

复制代码
CoT: A → B → C → 答案(一条线)
ToT: A → B1 → C1 → 答案1
      A → B2 → C2 → 答案2  → 评估 → 选最优
      A → B3 → C3 → 答案3

ToT 实战:解决"24点游戏"

python 复制代码
def tree_of_thoughts(llm, problem: str, num_branches: int = 3):
    """
    ToT 实现:生成多分支、评估、回溯
    """
    # 阶段 1:生成多条推理分支
    branches = []
    for i in range(num_branches):
        prompt = f"""问题:{problem}
请提出{num_branches}种不同的解题思路中的第{i+1}种。
注意:尽量与之前的思路不同。"""
        branch = llm.generate(prompt)
        branches.append(branch)

    # 阶段 2:评估每条分支
    evaluations = []
    for branch in branches:
        prompt = f"""思路:{branch}
请评估这条思路的可行性(1-10分),并说明理由。"""
        eval_result = llm.generate(prompt)
        evaluations.append(extract_score(eval_result))

    # 阶段 3:选最佳分支展开
    best_idx = evaluations.index(max(evaluations))
    return explore_branch(branches[best_idx], depth=3)

ToT 适用场景:需要创造性、多方案对比的问题(写作大纲、算法设计、策略规划)。


5. Program of Thoughts(PoT)------ 用代码推理

核心思想 :数学/逻辑推理不要用自然语言,生成代码执行更准确。

复制代码
CoT:一步步心算 → 容易出错
PoT:生成 Python 代码 → 执行得精确结果

PoT 实战

python 复制代码
def pot_solve(llm, question: str):
    """
    使用 PoT 解决数学问题
    """
    prompt = f"""你将解决以下数学问题。不要用文字推理,而是编写一个
Python 函数来求解。

问题:{question}

要求:
1. 编写一个完整的 Python 函数,接受必要参数
2. 在函数末尾调用它并打印结果
3. 代码中加注释说明每一步的计算逻辑

```python
"""

    code = llm.generate(prompt)

    # 安全沙箱执行
    result = execute_in_sandbox(code)
    return result

# 示例
question = "一个水池,A管4小时注满,B管6小时放空,两管同时开,几小时注满?"

# PoT 生成的代码:
code = """
# A管每小时注水 1/4,B管每小时放水 1/6
# 两管同时开,每小时净注水:1/4 - 1/6 = 1/12
# 注满时间:1 / (1/12) = 12 小时

def solve():
    rate_a = 1/4    # A管每小时注水量
    rate_b = 1/6    # B管每小时放水量
    net_rate = rate_a - rate_b  # 净注水速率
    hours = 1 / net_rate
    print(f"需要 {hours} 小时注满")
    return hours

solve()  # 输出:需要 12.0 小时注满
"""

PoT vs CoT 实测(GSM8K):

方法 准确率
CoT 74.5%
PoT 84.3%

代码推理比文字推理准 10 个百分点。


6. Plan-and-Solve --- 先规划再执行

核心思想:把复杂任务拆成子任务,逐个击破。

markdown 复制代码
## Plan-and-Solve 示例

问题:帮我在本地部署一个 AI 客服系统,要求支持中文、
能查询知识库、自动记录对话。

请按以下格式回答:

【总体计划】
1. [子任务1] 环境准备
2. [子任务2] 模型选型与部署
3. [子任务3] 知识库搭建
4. [子任务4] 对话系统集成
5. [子任务5] 部署测试

------

【执行】

### 步骤1:环境准备
- 安装 Docker: `curl -fsSL https://get.docker.com | sh`
- 安装 Python 3.12: `conda create -n ai-chat python=3.12`
- GPU 驱动检查: `nvidia-smi`

### 步骤2:模型选型
- 推荐:Qwen2.5-7B-Instruct(中文能力强,4-bit 量化仅需 4GB 显存)
- 部署方式:Ollama + vLLM
- 启动命令:...

### 步骤3:知识库搭建
...

Plan-and-Solve 让模型的回答从"东一句西一句"变成"有层次有逻辑"。


7. Self-Consistency --- 多数投票法

核心思想:同一个问题问 N 次(用不同措辞),取多数答案。

python 复制代码
def self_consistency(llm, question: str, n_samples: int = 5):
    """
    多次采样 + 投票,取最一致答案
    """
    answers = []

    for i in range(n_samples):
        # 使用不同的 temperature 增加多样性
        answer = llm.generate(question, temperature=0.7 + i * 0.05)
        answers.append(normalize_answer(answer))

    # 投票:取出现频率最高的答案
    from collections import Counter
    final_answer = Counter(answers).most_common(1)[0][0]

    return {
        "final_answer": final_answer,
        "all_answers": answers,
        "confidence": Counter(answers).most_common(1)[0][1] / n_samples,
    }

效果实测(ARC 推理题):

采样次数 准确率
1(单次 CoT) 73.5%
5(Self-Consistency) 82.1%
10 85.7%

5次投票就能提升 ~9 个百分点,成本仅为 5 倍 token 消耗,性价比极高。


8. 框架对比 & 场景选型指南

复制代码
┌──────────────────────────────────────────────────────────┐
│                 7 种 Prompt 框架对比                       │
│                                                          │
│  Zero/Few-Shot  ████              格式控制 / 简单任务     │
│  CoT            ██████            逻辑推理 / 数学题       │
│  ReAct          ██████████        需要工具调用            │
│  ToT            ████████████      多方案对比 / 创意任务   │
│  PoT            ██████████        数学 / 代码生成         │
│  Plan-Solve     ██████████        复杂多步骤任务          │
│  Self-Consistency ██████          高精度推理              │
│                                                          │
└──────────────────────────────────────────────────────────┘

场景选型速查表

你的任务 推荐框架 为什么
翻译 / 格式化 / 分类 Zero-Shot / Few-Shot 不需要推理
数学题 / 逻辑推理 CoT + PoT 代码执行更准确
信息检索(需要搜索) ReAct 支持工具调用
创意写作 / 方案设计 ToT 多路径探索最优
复杂多步骤操作 Plan-and-Solve 结构化拆分
高精度场景 Self-Consistency 投票纠错
综合(最佳实践) CoT + ReAct + Self-Consistency 三合一

💡 终极模板:三合一 Prompt

markdown 复制代码
你是一个严谨且功能齐全的推理助手。

### 你的能力
- 逻辑推理:使用思维链(Chain of Thought)逐步推导
- 工具使用:需要实时信息时可以搜索网络
- 自我验证:如果不够确定,给出多种可能并说明你最倾向哪个

### 回答格式

## 问题分析
[简要分析问题,识别关键信息]

## 推理过程
步骤 1: ...
步骤 2: ...
步骤 3: ...

## 工具调用(如需要)
**搜索**: [搜索内容]
**结果**: [搜索结果]

## 最终答案
[答案]

## 置信度
[高/中/低] - [简要说明]

总结

复制代码
┌──────────────────────────────────────────────┐
│               Prompt 工程进阶要点              │
│                                              │
│  📌 基础功:Zero-Shot / Few-Shot 格式控制     │
│  🧠 推理:CoT 思维链让 AI 学会"想一想"        │
│  🔧 行动:ReAct 让 AI 能查能算               │
│  🌳 探索:ToT 多路径选择最优解                │
│  💻 代码:PoT 用代码代替文字推理              │
│  📋 规划:Plan-Solve 分解复杂任务             │
│  🗳️  纠错:Self-Consistency 投票提精度        │
│                                              │
│  🏆 终极组合:CoT + ReAct + Self-Consistency │
└──────────────────────────────────────────────┘

延伸阅读:


如果这篇对你有帮助,欢迎点赞、收藏、关注!下一篇:《我的 Prompt 踩坑日记:100 条错误用法与正确姿势》

相关推荐
迁旭3 小时前
Claude Code /status 功能技术文档
前端·javascript·人工智能·react.js·机器学习·gpt-3·文心一言
星星~笑笑3 小时前
react Next.js oss上传 上传阿里云
javascript·react.js·阿里云·js
GISer_Jing3 小时前
前端全流程求职Skill 攻略
前端·学习·前端框架
Bigger3 小时前
架构解密:mini-cc 的核心设计思路
前端·agent·ai编程
创世宇图5 小时前
【AI入门知识点】Harness 是什么?为什么 DeepSeek 要组建 Harness 团队?
人工智能·ai·harness
极客密码12 小时前
感谢雷总!Mimo大模型价值¥659/月的 MAX 套餐,让我免费领到了!
前端·ai编程·claude
swipe12 小时前
从本地开发到生产部署:用 Docker Compose 跑通 NestJS、MySQL 与 Milvus
后端·langchain·llm
深念Y12 小时前
我明白为什么B站没法在浏览器开直播了——Windows Chrome推流踩坑全记录
前端·chrome·webrtc·浏览器·srs·直播·flv
zhangxingchao13 小时前
AI应用开发七:可以替代 RAG 的技术
前端·人工智能·后端