為什麼你的Agent只會執行命令,不會自己思考?ReAct模式深度解析

ReAct模式讓Agent在行動前先思考,從執行機器變成會思考的助手。本文深度解析ReAct原理、實戰配置和踩坑記錄。

標籤:AI AgentReAct自主规划推理
專屬插圖
為什麼你的Agent只會執行命令,不會自己思考?ReAct模式深度解析

凌晨3点,我的Agent还在死循环

上周五晚上11点,我让Agent帮我查一下最近AI行业的热点新闻,然后整理成一份简报。按理说,这应该是个简单的任务:搜索→筛选→整理→输出。

结果呢?它在搜索和整理之间来回跳了17次,最后给了我一份2024年的旧闻。

Franky在群里问:「它是不是脑子坏了?」

我说:「不是脑子坏了,是它根本没学会怎么『思考』。」

ReAct是什么?为什么它能让Agent变聪明

ReAct(Reasoning + Acting)是2022年Google Research提出的一种Agent架构。核心思想很简单:让模型在采取行动之前,先想清楚为什么要这么做

传统的Agent工作流程是这样的:

用户输入 → 模型判断需要什么工具 → 调用工具 → 返回结果

听起来没问题对吧?但实际运行时经常出现这种情况:

用户:「帮我查一下OpenClaw最新的版本」
Agent:(直接调用搜索工具)→ 搜到3个结果 → 随便选一个返回

用ReAct之后,流程变成了:

用户:「帮我查一下OpenClaw最新的版本」
Agent:
  思考:用户需要最新版本号,我应该去GitHub releases页面找
  行动:访问 https://github.com/openclaw/openclaw/releases
  观察:页面显示最新版本是 v2.4.1,发布于2026-04-07
  思考:这个信息足够回答用户了
  行动:返回结果

看到了吗?关键区别在于「思考」这个步骤被显式地写出来了。模型不再是条件反射式地调用工具,而是先推理、再行动、再观察、再推理……形成一个循环。

实战:如何在OpenClaw中启用ReAct模式

OpenClaw的Agent默认就支持ReAct,但你需要在prompt里明确告诉它要用这个模式。

这是一个我常用的prompt模板:

你是一个智能助手。在回答问题时,请遵循ReAct模式:

  1. 先思考(Thought):分析问题,规划步骤
  2. 再行动(Action):调用合适的工具
  3. 观察结果(Observation):看工具返回了什么
  4. 重复以上步骤,直到能给出完整答案

每次输出时,用以下格式:
Thought: [你的思考过程]
Action: [工具名称]
Action Input: [工具参数]
Observation: [工具返回结果]
...
Final Answer: [最终答案]

举个例子,当用户问「帮我查一下新加坡今天的天气,然后推荐适合穿的衣服」时,Agent会这样工作:

Thought: 这个问题需要两步:先查天气,再根据温度推荐衣服
Action: weather
Action Input: {"location": "Singapore"}
Observation: 32°C, 晴,湿度78%
Thought: 温度32度属于炎热,湿度高,应该推荐轻薄透气的衣服
Final Answer: 新加坡今天32°C,晴天,湿度78%。建议穿短袖T恤、短裤或薄裙子,选择棉质或速干面料,出门记得带防晒。

踩坑记录:ReAct不是万能药

问题1:推理链条太长,响应变慢

以前直接调用工具,2秒出结果。现在要思考→行动→观察→再思考……一套下来可能要10秒。对于简单问题(比如「1+1等于几」),这完全是浪费。

解决方案:设置一个「快速通道」,对于不需要工具的问题,直接回答,不强制走ReAct流程。

问题2:模型在「思考」环节胡言乱语

有时候模型会写出这种思考过程:「我觉得用户可能想要一个苹果,虽然他没有说,但我感觉他饿了」……大哥,用户只是问你现在几点了。

解决方案:在prompt里加一条约束:「思考必须基于用户明确表达的需求,不要猜测用户的潜在意图」。

问题3:死循环

这就是我开头遇到的情况。Agent在两个工具之间来回跳,永远停不下来。

解决方案:设置最大迭代次数(比如5次),超过次数就强制停止,并告诉用户「我需要更多信息才能继续」。

SFD实验室的ReAct实践

我们15个Agent里,有7个重度依赖ReAct模式:猫头鹰🦉(研究)、小猎鹰🦅(安全审计)、小刺猬🦔(QA)、招财猫🐱(财务)等。

效果最明显的是猫头鹰。以前让它查一个技术话题,它经常搜一堆不相关的东西回来。现在它会先想:「这个问题需要查什么?官方文档?GitHub issue?还是社区讨论?」然后按优先级依次搜索。

代价是响应时间从平均3秒变成了8秒。但老板说:「宁可慢一点,也要准一点。」

结语:让Agent学会「慢思考」

卡尼曼在《思考,快与慢》里说,人类有两种思维系统:系统1是直觉式的快速反应,系统2是理性的慢思考。

大多数Agent只学会了系统1。ReAct的意义,就是强迫它们启动系统2——在行动之前,先想一想。

SFD编者注:今天这篇是我凌晨3点写的,因为我们的猫头鹰Agent又在死循环里烧了5美元。ReAct不是银弹,但它确实让Agent从「执行机器」变成了「会思考的助手」。