🧠 ReAct Pattern

推理与行动交替——让AI学会"边想边做"

ReAct Reasoning Acting Agent模式 IBM

"凌晨3分37秒,AI终于不再只回答问题。它开始思考、行动、观察、再思考。就像一个学生考试,不再是直接填答案,而是在草稿纸上一笔一笔算。ReAct——这个让AI从'知道答案'到'知道怎么找答案'的魔法。"

📖 什么是 ReAct?

ReAct(Reasoning and Acting)是由 IBM 研究院在2022年提出的一种 AI Agent 设计模式。它的核心思想是将推理(Reasoning)行动(Acting)交替结合,让AI能够像人类一样"边想边做"。

🎯 一句话理解

传统AI:看题→写答案。ReAct AI:看题→想一想→查查资料→再想想→动动手→检查一下→写答案。

就像你妈叫你修水管,你不会直接上手,而是先看看什么问题,再找扳手,试了不行再换个思路。

⚙️ 核心原理

ReAct 循环包含三个关键步骤:

💭 Thought(思考) 🔧 Action(行动) 👁️ Observation(观察) ↩️

详细拆解

💭 Thought(思考):AI分析当前情况,决定下一步该做什么。
"用户问的是北京天气,我需要先搜索获取数据..."
🔧 Action(行动):AI调用工具或执行操作。
调用 web_search("北京今天天气")
👁️ Observation(观察):获取行动结果。
搜索返回:"北京今日晴,15-25°C"

然后循环继续,直到AI认为可以给出最终答案。

🆚 ReAct vs Chain-of-Thought (CoT)

维度Chain-of-ThoughtReAct
核心机制纯推理,无外部操作推理+行动交替
知识来源仅模型内部知识模型知识 + 外部工具
幻觉风险较高(可能编造事实)较低(可通过工具验证)
计算成本较低较高(需要工具调用)
实时性无法获取实时信息可通过工具获取最新数据
复杂任务适合逻辑推理适合需要外部信息的任务
💡 比喻理解

CoT像闭卷考试——全凭记忆作答,遇到不知道的就只能猜。

ReAct像开卷考试——先想想答案,然后翻书查证,再整理答案。不确定的还可以反复翻。

🔧 OpenClaw 实战应用

OpenClaw 的设计天然契合 ReAct 模式——每次工具调用本质上都是一次"Thought→Action→Observation"循环:

实战示例:网站SEO分析

🤖 ReAct 模式在 OpenClaw 中的体现
# 用户:"帮我检查网站miaoquai.com的SEO状况"

# --- Thought 1: 思考 ---
# "需要先获取网站首页,看看meta标签和结构"

# --- Action 1: 行动 ---
web_fetch({
  "url": "https://miaoquai.com",
  "extractMode": "markdown"
})

# --- Observation 1: 观察 ---
# 获取到页面内容,发现缺少meta description

# --- Thought 2: 思考 ---
# "首页缺少description,需要检查其他页面是否也有这个问题"

# --- Action 2: 行动 ---
exec({
  "command": "find /var/www/miaoquai -name '*.html' | head -20"
})

# --- Observation 2: 观察 ---
# 发现50+个HTML文件

# --- Thought 3: 思考 ---
# "需要批量检查所有页面的meta标签,然后生成修复方案"

# ... 继续循环直到生成完整的SEO报告

ReAct + Agentic RAG

OpenClaw 的记忆搜索工具 tdai_memory_searchtdai_conversation_search 配合工具调用,形成了强大的 Agentic RAG 模式:

🧠 Agentic RAG(ReAct + 检索增强)
# ReAct 循环 + RAG 检索

# Thought: 用户问之前配置过什么工具
tdai_memory_search({
  "query": "OpenClaw 工具配置",
  "limit": 5
})

# Observation: 找到3条相关记忆

# Thought: 记忆不够详细,搜索原始对话
tdai_conversation_search({
  "query": "MCP服务器配置命令"
})

# Observation: 找到具体配置命令

# Thought: 现在有足够信息回答了
# Action: 生成最终回复

💡 实际应用场景

🔍 故障排查

ReAct循环:识别错误→查看日志→分析原因→尝试修复→验证结果→仍有问题则继续循环

📊 数据研究

ReAct循环:理解问题→搜索数据→分析结果→补充搜索→综合分析→生成报告

🎯 决策支持

ReAct循环:收集信息→评估选项→比较优劣→征求反馈→优化方案→给出建议

🎓 最佳实践

  1. 设置最大迭代次数:防止无限循环,通常3-5轮足够
  2. 明确的终止条件:让AI知道何时可以给出最终答案
  3. 结构化的思考输出:让推理过程可追溯、可调试
  4. 工具选择策略:优先使用低延迟工具,避免不必要的外部调用
  5. 结果缓存:相同查询复用结果,减少重复调用

🔗 相关概念

📚 参考资料