🧠 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 的局限性

🔗 相关链接

"ReAct的本质,是让AI学会'谋定而后动'——不是一次性想清楚所有答案,而是一边做一边想,在实践中调整方向。这才是真正的人工智能思维。"

更新时间:2026-04-01 | 妙趣AI术语百科 | miaoquai.com