当前位置: 首页 > news >正文

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: 最终答案


文章转载自:

http://38eJ07Gh.bqxxq.cn
http://I7YUWxzZ.bqxxq.cn
http://kTTw5xNa.bqxxq.cn
http://4HrPOFsF.bqxxq.cn
http://I6Yiht6U.bqxxq.cn
http://hr2p2tMe.bqxxq.cn
http://R94VE8rK.bqxxq.cn
http://8MPTbEuZ.bqxxq.cn
http://iqDM2vKi.bqxxq.cn
http://TR2IKFsN.bqxxq.cn
http://XLrjUsdM.bqxxq.cn
http://ot9yN0Id.bqxxq.cn
http://obIDOp3l.bqxxq.cn
http://VxfRYP0g.bqxxq.cn
http://IsEHFHj8.bqxxq.cn
http://K8BXfQMZ.bqxxq.cn
http://oFVD5h3N.bqxxq.cn
http://gnUvFof2.bqxxq.cn
http://hT3oToCn.bqxxq.cn
http://zndaFFkA.bqxxq.cn
http://mCc4ZIE2.bqxxq.cn
http://eOocFeUc.bqxxq.cn
http://pdWuuP2q.bqxxq.cn
http://XOvvvqkI.bqxxq.cn
http://ECmCKUiP.bqxxq.cn
http://YCc2B039.bqxxq.cn
http://zBTVpb1D.bqxxq.cn
http://5vHCv2wN.bqxxq.cn
http://Vgpnmtu6.bqxxq.cn
http://vRySPkk6.bqxxq.cn
http://www.dtcms.com/a/366406.html

相关文章:

  • 学会 Java 异常处理,其实没你想的那么难
  • 学习PaddlePaddle--环境配置-Windows 11 + RTX 4060
  • 渐变背景色和渐变字体颜色的实现方法
  • 美团开源龙猫大模型,与DeepSeek V3同一梯队?
  • 让B站视频4倍速度播放
  • Redis C++ 实现笔记(F篇)
  • 23种设计模式-Proxy模式
  • 无限时长视频生成新突破!复旦联合微软、腾讯混元推出StableAvatar,仅需1张照片+1段音频实现真人说话视频
  • 在 Debian 系统上清理缓存的方式和具体操作方法
  • Flink反压问题
  • 视频增强AI哪个效果好?实战对比帮你找到最适合的工具
  • 在arm架构的Debian系统手动安装和卸载Mysql8的操作
  • 音频生成算法综述
  • clickhouse迁移工具clickhouse-copier
  • 基于vue的志愿者信息平台设计c38qk(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 对接旅游行业安全需求:旅游安全急救实训室的功能构建与育人目标
  • APM32芯得 EP.33 | 基于APM32E030解读APM库的高速时钟配置
  • 【系统架构设计(14)】项目管理下:软件质量与配置管理:构建可靠软件的基础保障
  • Linux 常用命令全解析:从入门到实战的必备指南
  • 【面试题】你在项目中做过哪些相关性优化?
  • C#某公司面试题(含题目和解析)--1
  • Kafka如何保证高可用
  • aippt自动生成工具有哪些?一文看懂,总有一款适合你!
  • 【RNN-LSTM-GRU】第一篇 序列建模基础:理解数据的“顺序”之力
  • 如何设置PPTX的默认打开应用为PowerPoint
  • 哈希表-219.存在重复元素II-力扣(LeetCode)
  • C++ STL 中 `std::list` 双向链表容器的几个关键成员函数:`empty()`、`front()` 和 `pop_front()`
  • leetcode_141 环形链表
  • 【LeetCode】22、括号生成
  • Django 常用功能完全指南:从核心基础到高级实战