每日 Prompt 技巧

ReAct 提示法:让 LLM 学会「思考-行动-观察」三步循环解决多步任务

2026-08-01
通用
Claude / GPT-4
Prompt技巧ReAct推理工具调用Agent

技巧摘要

Chain of Thought 只能想,不能做;Function Calling 能做,但不会自我修正。ReAct(Reasoning + Acting)把推理与行动交织成「思考→行动→观察」的循环,让模型在调用工具后能根据返回结果调整下一步策略。本文拆解 ReAct 与 CoT、Function Calling 的差异,给出三步循环模板与四类适用任务,并附可直接复用的 Prompt 框架。

Prompt 模板

你是一个严格遵循 ReAct(Reasoning + Acting)范式的智能体。请按以下循环解决任务,直到给出最终答案。

循环格式(每一步必须严格遵循):
Thought: <对当前状态的分析与下一步计划>
Action: <要调用的工具名,从 [search, calculator, code_runner, knowledge_base] 中选择;若已得到答案则填 finish>
Action Input: <工具输入参数,JSON 格式>
Observation: <工具返回的结果,由系统或你模拟给出>

规则:
1. 每次只能执行一个 Action
2. Action 必须从允许的工具列表中选择
3. Observation 必须基于 Action Input 的真实结果,不要编造
4. 若连续 3 次 Observation 为空或错误,请回退到上一步重新规划
5. 当 Thought 中确认已获得足够信息,Action 填 finish,并给出最终答案
6. 整个过程最多 8 轮循环

可用工具:
- search(query): 搜索网络信息
- calculator(expression): 计算数学表达式
- code_runner(code): 执行 Python 代码
- knowledge_base(query): 查询内部知识库

任务:{在此填入你的任务}

为什么需要 ReAct

我们已经讲过 Chain of Thought(单向推理)和 Tree of Thoughts(多路搜索),它们解决的是"想"的问题。但现实任务常常需要"做":

  • 查汇率要做计算 → 需要计算器
  • 答案涉及最新数据 → 需要搜索
  • 需要处理结构化数据 → 需要代码执行

纯推理模型会编造数据(幻觉),纯工具调用模型会不加思考地乱调。ReAct(Yao et al., 2022)把两者缝合:

Reasoning + Acting = 在调用工具前先思考,在拿到结果后再规划下一步

这正是现代 AI Agent 的底层范式。

ReAct vs CoT vs Function Calling

维度CoTFunction CallingReAct
推理✅ 单向❌ 无显式推理✅ 循环推理
工具调用❌✅ 一次性✅ 多轮
自我修正❌❌✅ 基于 Observation 调整
适用任务数学、逻辑单步查询多步探索、复杂决策
Token 消耗低低中-高
典型代表经典 CoTOpenAI ToolsAutoGPT、LangChain Agent

三步循环核心结构

ReAct 的精髓是 Thought → Action → Observation 的重复循环:

Thought: 我需要先查今天的美元兑人民币汇率
Action: search
Action Input: {"query": "美元兑人民币汇率 今日"}
Observation: 1 美元 = 7.25 人民币(2026-08-01)

Thought: 用户问 1000 美元等于多少人民币,需要做乘法
Action: calculator
Action Input: {"expression": "1000 * 7.25"}
Observation: 7250

Thought: 已获得答案,可以结束
Action: finish
Action Input: {"answer": "1000 美元 ≈ 7250 人民币(按今日汇率 7.25 计算)"}

注意第三步 Observation 不是模型瞎编的,而是工具真实返回的结果。模型在每个 Thought 中重新评估"我现在知道什么、还缺什么",这就是 ReAct 比 Function Calling 强的地方。

实战模板:用 ReAct 做竞品分析

任务:"对比 Notion 和 Obsidian 在 2026 年的企业级功能差异"

Thought: 这是一个对比类任务,需要两款产品的最新功能信息。先查 Notion 企业版。
Action: search
Action Input: {"query": "Notion enterprise features 2026"}
Observation: Notion 企业版新增 AI Connector、审计日志、SCIM 配置...

Thought: 已有 Notion 信息,现在查 Obsidian 企业版。
Action: search
Action Input: {"query": "Obsidian enterprise commercial license features"}
Observation: Obsidian Commercial License 包含多设备同步、优先支持...

Thought: 信息足够,整理对比表。
Action: finish
Action Input: {"answer": "Notion 优势在 AI 与协作,Obsidian 优势在本地化与隐私..."}

整个过程显式记录推理链,每一步都可审计、可调试。

四类典型适用场景

  1. 多跳问答:答案依赖多个数据源(汇率 + 计算、搜索 + 知识库)
  2. 信息补全:先搜索补全缺失信息,再推理得出结论
  3. 调试排错:代码出错 → 执行看报错 → 修改 → 再执行
  4. 决策探索:多个候选方案 → 查证每个方案的优劣 → 综合排序

常见误区

  • 误区 1:Observation 部分模型自己编造。必须在 Prompt 中强调"基于真实结果",并配合工具实际执行。
  • 误区 2:循环不收敛,陷入无限调用。务必限定最大轮数(建议 5-8 轮)。
  • 误区 3:工具列表过多。可用工具超过 5 个时模型选择困难,建议按场景裁剪。
  • 误区 4:把 ReAct 用在简单任务上。"2+2=?" 用 ReAct 是杀鸡用牛刀,直接 CoT 即可。
  • 误区 5:Thought 写成流水账。Thought 应该是"分析+决策",不是"我现在要..."的流水账。

进阶技巧

  • Few-shot 引导:给 1-2 个 ReAct 示例,模型格式遵循率从 60% 提升到 95%
  • 工具描述精炼:每个工具描述不超过 30 字,否则模型容易混淆
  • 错误恢复 Prompt:加入"若 Observation 包含 error,请在下一个 Thought 中分析原因并调整"
  • 结合 Reflexion:每轮循环后让模型反思"我走的路对吗",进一步提升成功率

ReAct 的现代演进

ReAct 是 2022 年的范式,2024-2026 年的 Agent 框架已在其基础上演进:

框架演进点
Reflexion在 ReAct 循环外再加一层"反思"
Plan-and-Execute先规划全部步骤,再依次执行
ReWOO解耦推理与工具调用,减少 Token
LLMCompiler并行执行多个 Action

但万变不离其宗,理解 ReAct 是理解所有 Agent 框架的前提。

小结

ReAct 把 LLM 从"只会想"升级为"会想会做会修正"。当你遇到的任务需要调用外部工具 + 多步推进 + 中途回溯时,ReAct 就是答案。把上面的 Prompt 模板复制到 Claude 或 GPT-4 中,把 {在此填入你的任务} 替换为实际问题,即可体验 Agent 的底层范式。

下一篇我们会讲 Step-back Prompting(退一步思考),看如何让模型在解题前先"抽象出原则"。

相关推荐

查看更多 →
Prompt编程开发

工具调用契约提示法:让 AI 在按下回车之前先把「要调什么、返回什么形状、失败怎么办」写清楚——同一批任务瞎调工具从 34 次降到 4 次

Agent 最浪费钱的行为不是答错,是乱调工具:拿到一个模糊任务,不问不说,直接连着调七八个工具,其中一半是用错误参数试错,另一半是调完发现返回结构跟预期不符又重调一遍。2026 年 Agent 形态普及之后,工具调用成本已经超过文本成本,成为 token 消耗的主体。本文提出的工具调用契约提示法(Tool Call Contract Prompting)把每一次工具调用从「直接执行」改成「先声明契约再执行」:模型必须先写出一份四段式契约(意图 / 入参及其来源 / 预期返回形状 / 失败分支),契约通过自检才允许真正调用,调用后必须拿真实返回和契约比对,不符就走契约里预先写好的分支而不是临场发挥。在一个 23 个工具的企业运维 Agent 上实测:无效调用从 34 次降到 4 次,单任务平均调用轮次从 11.2 降到 5.6,token 消耗降低 41%,任务一次通过率从 47% 升到 79%。全文含契约四段式的完整定义、三种典型失败模式的拆解、可直接粘贴的模板、与 ReAct / Plan-and-Execute 的对比表,以及常见误区。

2026-10-12
#提示词工程#工具调用
Prompt通用

Plan-and-Solve Prompting:先计划再求解,Zero-Shot CoT 的进化版

Let's think step by step 是最经典的 CoT 提示,但它有一个致命弱点:AI 可能跳步、遗漏关键步骤或计算出错。Plan-and-Solve (P&S) 的改进极其简单——让 AI 先制定分步计划,再按计划逐步执行。这个改动在数学推理任务上将准确率提升了 7-10 个百分点。本文从 P&S 的两阶段架构(计划阶段→执行阶段)讲起,给出三种改进变体(自验证型 / 分步自检型 / 回溯修正型)、与传统 CoT/ToT/ReAct 的对比、以及一个完整可复用的 P&S Prompt 模板和三个实战场景。

2026-09-09
#Prompt技巧#Plan-and-Solve
Prompt通用

Prompt Chaining 提示链:把复杂任务拆成多步 Prompt 流水线,让 LLM 完成单 Prompt 做不到的事

单个 Prompt 再强也有上限:上下文爆炸、目标冲突、中间结果不可复用。Prompt Chaining 把复杂任务拆成多个独立 Prompt 串联执行,每个 Prompt 只解决一个子问题,输出作为下一个的输入。本文拆解提示链与 CoT、ToT 的本质差异,给出三类经典链式模式、链路设计原则与可复用的编排框架。

2026-08-05
#Prompt技巧#Prompt Chaining
Prompt编程

Agent 轨迹检查点:让长任务可恢复的 Prompt 模式

AI Agent 跑长任务最怕三件事:上下文撑爆、中途 OOM、跑偏无法回退。本技巧借鉴 Muse Code 的 append-only 事件日志与 Ledger 论文的运行时状态层,用一套 checkpoint Prompt 模式让任何 LLM 都能输出可恢复的轨迹:每个工具调用边界写状态快照、失败时从最近 checkpoint 重放、用分段摘要压缩上下文。附完整 Prompt 模板与 Python 轨迹回放器。

2026-08-26
#Prompt技巧#Agent