🧠 ReAct 推理模式
ReAct 推理 行动 思考链
"凌晨3点58分,我看着AI在屏幕上一边思考一边行动——不对,那不是思考,是推理+行动。我突然明白:这就像人一边走路一边看地图,AI也可以边想边做。"
📖 什么是 ReAct?
世界上有一种模式叫 ReAct(Reason + Act),它是让AI"边想边做"的智慧。
想象你在陌生的城市找路:你不会闷头走,而是会:看看地图(观察)→ 想想该往哪走(推理)→ 走一段(行动)→ 看看走对了没(观察)→ 继续调整... ReAct就是模拟这个过程:思考-行动-观察-思考-行动-观察...直到完成任务。
核心思想:ReAct 让 AI 在推理(Reason)和行动(Act)之间交替进行,通过每一步的观察结果来调整下一步的行动。
⚙️ 工作流程
ReAct 循环
┌─────────────────┐
│ 接收用户问题 │
└────────┬────────┘
▼
┌─────────────────┐
│ 思考 (Think) │
│ 需要什么信息? │
└────────┬────────┘
▼
┌─────────────────┐
│ 行动 (Act) │
│ 调用工具 │
└────────┬────────┘
▼
┌─────────────────┐
│ 观察 (Observe) │
│ 获取结果 │
└────────┬────────┘
▼
┌─────────────────┐
│ 回答充分? │
│ 是 → 结束 │
│ 否 → 继续 │
└────────┬────────┘
│ 否
└────────▶ 回到思考
实际例子
用户:"特斯拉股票的CEO是谁?"
思考1:我需要先搜索特斯拉股票的信息
行动1:调用 web_search(query="特斯拉股票 TSLA")
观察1:搜索结果显示 TSLA 是特斯拉公司的股票代码
思考2:我需要获取具体信息
行动2:调用 web_fetch(url="https://tesla.com")
观察2:获取到特斯拉CEO是Elon Musk
思考3:信息已获取,可以回答
行动3:直接回答用户问题
完成:特斯拉(TSLA)的CEO是Elon Musk
🔄 ReAct vs Tool Calling vs Chain-of-Thought
| 模式 | 特点 | 适用场景 |
|---|---|---|
| Chain-of-Thought | 只思考不行动 | 数学推理、逻辑分析 |
| Tool Calling | 按需调用工具 | 明确知道需要什么工具 |
| ReAct | 边想边做,观察调整 | 复杂多步任务 |
对比示例
问题:12 * 14 + 8 = ?
Chain-of-Thought:
"12乘以14等于168,加8等于176"
Tool Calling:
[调用计算器计算 12*14+8]
结果:176
ReAct:
思考:我需要计算这个表达式
行动:调用计算器
观察:结果是176
回答:176
💻 实现示例
LangChain ReAct
from langchain.agents import AgentType
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
from langchain.tools import Tool
llm = OpenAI(temperature=0)
# 定义工具
def calculator(expression):
return eval(expression)
tools = [
Tool(
name="Calculator",
func=calculator,
description="用于数学计算"
),
Tool(
name="Search",
func=web_search,
description="用于搜索信息"
)
]
# 初始化 ReAct Agent
agent = initialize_agent(
tools,
llm,
agent=AgentType.REACT_DOCSTORE,
verbose=True
)
# 执行
result = agent.run("特斯拉CEO是谁?")
ReAct 提示词
ReAct 提示词模板:
你是一个有帮助的AI助手。
在回答用户问题时,请按照以下格式思考:
Thought: [你现在的思考]
Action: [你要执行的行动]
Observation: [行动的结果]
如果需要多次行动,请重复以上步骤。
如果已经知道答案,请直接回答。
开始!
Question: {user_question}
Thought:
🛠️ OpenClaw 中的 ReAct
OpenClaw 的 Skills 系统天然支持 ReAct 模式:
// OpenClaw 自动实现 ReAct 循环
用户:"搜索AI新闻并总结"
OpenClaw 内部流程:
1. 思考:需要先搜索
2. 行动:调用 web_search
3. 观察:获取搜索结果
4. 思考:结果有了,需要总结
5. 行动:调用分析能力
6. 观察:生成总结
7. 回答:返回给用户
💡 ReAct 适用场景:
- 信息检索:需要多步搜索才能找到答案
- 复杂任务:无法一步完成,需要迭代
- 不确定情况:需要根据结果调整策略
- 调试场景:需要观察每一步的结果
⚠️ ReAct 的局限性
- token消耗:思考-行动-观察循环消耗更多token
- 循环风险:可能陷入无限循环
- 延迟:每次工具调用都有延迟
- 复杂度:调试比简单对话困难
🔗 相关链接
"ReAct的本质,是让AI学会'谋定而后动'——不是一次性想清楚所有答案,而是一边做一边想,在实践中调整方向。这才是真正的人工智能思维。"
更新时间:2026-04-01 | 妙趣AI术语百科 | miaoquai.com