ReAct(Reasoning + Acting) 是大型语言模型(LLM)中一种结合**推理(Reasoning)和行动(Acting)**的交互式框架,旨在通过动态规划任务步骤、调用工具(如搜索、计算器等)并整合结果,提升模型解决复杂问题的能力。
核心思想
- 推理(Reasoning)
- 模型通过**链式思考(Chain-of-Thought)**分解问题,生成分步推理(如:“第一步需要查天气,第二步计算温差”)。
- 行动(Acting)
- 在需要外部信息时,模型主动调用工具(如调用搜索引擎、API、代码解释器等),获取实时数据。
- 循环迭代
- 根据工具返回的结果调整后续步骤,直到问题解决。
关键流程示例
问题:
“旧金山今天的温度比北京高多少?”
ReAct步骤:
- 推理:
- “需要获取旧金山和北京的当前温度。”
- 行动:
- 调用天气API查询旧金山温度 → 得到15°C。
- 调用天气API查询北京温度 → 得到5°C。
- 推理+输出:
- “温差 = 15°C - 5°C = 10°C,旧金山比北京高10°C。”
优势
- 动态性:结合实时工具弥补LLM的静态知识局限(如最新天气、数学计算)。
- 可解释性:通过显式推理步骤展示决策过程。
- 通用性:适用于问答、数学推理、编程等复杂任务。
与纯CoT的区别
纯Chain-of-Thought (CoT) | ReAct |
---|---|
仅依赖模型内部知识推理 | 结合外部工具获取实时数据 |
可能因知识过时/缺失出错 | 结果更准确可靠 |
典型应用场景
- 需要实时数据的问答(如股票、天气)。
- 复杂数学/逻辑问题(调用计算器或代码)。
- 交互式任务(如控制智能家居API)。
ReAct通过“思考→行动→验证”的闭环,显著提升了LLM在真实场景中的实用性。