2025-04-09    2025-04-09    673 字  2 分钟

ReAct(Reasoning + Acting) 是大型语言模型(LLM)中一种结合**推理(Reasoning)行动(Acting)**的交互式框架,旨在通过动态规划任务步骤、调用工具(如搜索、计算器等)并整合结果,提升模型解决复杂问题的能力。


核心思想

  1. 推理(Reasoning)
    • 模型通过**链式思考(Chain-of-Thought)**分解问题,生成分步推理(如:“第一步需要查天气,第二步计算温差”)。
  2. 行动(Acting)
    • 在需要外部信息时,模型主动调用工具(如调用搜索引擎、API、代码解释器等),获取实时数据。
  3. 循环迭代
    • 根据工具返回的结果调整后续步骤,直到问题解决。

关键流程示例

问题
“旧金山今天的温度比北京高多少?”

ReAct步骤

  1. 推理
    • “需要获取旧金山和北京的当前温度。”
  2. 行动
    • 调用天气API查询旧金山温度 → 得到15°C。
    • 调用天气API查询北京温度 → 得到5°C。
  3. 推理+输出
    • “温差 = 15°C - 5°C = 10°C,旧金山比北京高10°C。”

优势

  • 动态性:结合实时工具弥补LLM的静态知识局限(如最新天气、数学计算)。
  • 可解释性:通过显式推理步骤展示决策过程。
  • 通用性:适用于问答、数学推理、编程等复杂任务。

与纯CoT的区别

纯Chain-of-Thought (CoT) ReAct
仅依赖模型内部知识推理 结合外部工具获取实时数据
可能因知识过时/缺失出错 结果更准确可靠

典型应用场景

  • 需要实时数据的问答(如股票、天气)。
  • 复杂数学/逻辑问题(调用计算器或代码)。
  • 交互式任务(如控制智能家居API)。

ReAct通过“思考→行动→验证”的闭环,显著提升了LLM在真实场景中的实用性。