ReAct模式解读

1、概述

ReAct = Reasoning(思考)+ Acting(行动)

让AI像人类一样:先想一想(Reason),再做一件事(Act),做完事再想一想,循环往复,直到解决问题。

核心思想:

不要让AI直接猜答案,而是让它:

  • 思考(Reason):分析问题、制定计划、反思结果
  • 行动(Act):调用工具(如搜素、计算、数据库)
  • 循环:根据行动结果,再思考,再行动

2、ReAct vs 传统AI

对比项 传统方式(直接回答) ReAct 模式
过程 输入 → 直接输出答案 输入 → 思考 → 行动 → 思考 → 行动 → 输出
可解释性 黑箱,不知道怎么想的 白箱,能看到每一步思考
准确性 容易"幻觉"瞎猜 基于事实行动,更准确
工具使用 不会主动调用工具 主动调用 API、搜索、计算等
错误恢复 答错了就错了 行动失败后会反思并调整

3、ReAct典型步骤

(1)核心循环

Think -> Act -> Observe -> Think ...

一个典型的ReAct交互流程:

复制代码
1. 🤔 Reason (思考): "我需要查一下北京今天的天气"
2. 🛠  Act   (行动): 调用 weatherAPI.getWeather("北京")
3. 👁  Observe (观察): 返回 {"city": "北京", "temp": "25°C", "condition": "晴"}
4. 🤔 Reason: "北京今天晴,25度,适合户外"
5. 🛠  Act: 无(问题已解决)
6. ✅ Answer: "北京今天晴,25度,适合户外活动。"

这个循环可以多次执行,直到问题解决

(2)典型步骤

1)Step 1:Reasoning(推理)

AI开始思考:

  • "用户问了什么?"
  • "我需要哪些信息?"
  • "我可以调用什么工具?"
  • "下一步该做什么?"

示例输出:我需要查询北京的天气,可以调用天气 API。

2)Step 2:Acting(行动)

AI 决定调用一个工具:

  • 调用 search(query) 搜索网页
  • 调用 calculate(expr) 计算数学
  • 调用 database.query(sql) 查数据库
  • 调用 python(code) 执行代码

格式通常是结构化的,比如:

复制代码
{
  "action": "weather_api",
  "action_input": "北京"
}

3)Step 3:Observe(观察)

系统执行工具调用,拿到结果,返回给AI,比如:

复制代码
{
  "observation": "北京,25°C,晴"
}

4)Step 4:继续Reasoning

AI看到结果后继续思考:"我拿到了天气数据,现在可以回答用户了。"

或者如果结果不完整:

"温度是25度,但用户可能想知道是否适合穿短袖,我需要补充穿衣建议。"

5)Step 5:Final Answer(最终回答)

当AI认为问题已解决,输出最终答案给用户

4、ReAct优势

优势 说明
减少幻觉 AI 不再瞎猜,而是基于真实工具返回的数据回答
可解释性强 你能看到 AI 的"思考过程",像看侦探破案
能解决复杂问题 可以多步推理 + 多次调用工具(如先搜索,再计算)
可调试 如果答案错了,可以看是哪一步出问题
支持工具扩展 可以接入搜索、数据库、代码执行、API 等

5、ReAct所需的技术组件

组件 说明
LLM(大模型) 负责推理和决策(如 GPT、通义千问)
Tool Calling(工具调用) 定义工具接口,让 LLM 知道能调用什么
Action Parser 解析 LLM 输出的 action(如 JSON)
Observation Handler 执行工具并返回结果
Loop Controller 控制最大步数,防止无限循环
Prompt Engineering 设计提示词,引导 LLM 按 ReAct 格式输出

6、ReAct的典型Prompt模板

复制代码
你可以使用以下工具:

- search(query): 搜索网页
- calculate(expr): 计算数学表达式
- get_weather(city): 获取天气

使用格式:

Thought: 你正在想什么
Action: 要执行的工具
Action Input: 工具参数
Observation: 工具返回结果
...(可以重复)
Thought: 我现在可以回答了
Final Answer: 最终答案
相关推荐
身如柳絮随风扬2 小时前
Java中的CAS机制详解
java·开发语言
风筝在晴天搁浅4 小时前
hot100 78.子集
java·算法
壮Sir不壮4 小时前
2026年奇点:Clawdbot引爆个人AI代理
人工智能·ai·大模型·claude·clawdbot·moltbot·openclaw
玉梅小洋4 小时前
Claude Code 从入门到精通(七):Sub Agent 与 Skill 终极PK
人工智能·ai·大模型·ai编程·claude·ai工具
-嘟囔着拯救世界-4 小时前
【保姆级教程】Win11 下从零部署 Claude Code:本地环境配置 + VSCode 可视化界面全流程指南
人工智能·vscode·ai·编辑器·html5·ai编程·claude code
故事和你915 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
x-cmd5 小时前
[x-cmd] x claude ds - 无需 Claude 账号!零门槛让 Claude Code 接入 DeepSeek AI 模型
ai·claude·deepseek·claude-code·写代码
Configure-Handler5 小时前
buildroot System configuration
java·服务器·数据库
:Concerto6 小时前
JavaSE 注解
java·开发语言·sprint
电商API_180079052476 小时前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫