ReAct 框架: Combining reasoning and action

黎 浩然/ 30 11 月, 2023/ 大语言模型/LARGELANGUAGEMODEL/LLM, 机器学习/MACHINELEARNING, 研究生/POSTGRADUATE, 计算机/COMPUTER/ 0 comments

一、为什么需要 PAL 与 ReAct

  1. PAL(Program-Aided Language models)
    • 通过结构化提示让 LLM 产出可执行的 Python 代码,再由解释器运行获取精确结果。
  2. 现实场景的复杂性
    • 真正的应用往往要 串联多个外部数据源 / API / 业务逻辑
    • 仅靠 PAL 的“写脚本→执行”已无法覆盖。
  3. ReAct = Reasoning + Action
    • 兼顾 链式思考(Chain-of-Thought)行动规划(Action Planning)
    • 先“想”(推理),再“做”(调用预定义工具),循环直到完成任务。

二、ReAct 核心要素

要素作用
Thought(思考)模型的推理过程,决定下一步行动
Action(行动)只能选定 有限动作 列表中的一个
Observation(观察)执行 Action 后得到的新信息,反馈给模型继续推理
  • 循环:Thought → Action → Observation,直到模型认为得到最终答案并执行 finish 动作。

三、示例:杂志创刊年份比较

  1. 任务:判断 Arthur’s MagazineFirst for Women 谁创刊更早。
  2. 动作集(示例 API,仅 3 个)
    • search[实体] 在 Wikipedia 搜索词条
    • lookup[关键字] 在当前词条内检索包含关键字的下一句
    • finish[答案] 输出最终答案,结束

流程概览


① Thought: “分别搜索两本杂志并比较年份”


② Action: search[Arthur's Magazine]


③ Observation: 返回“创刊于1844年”


④ Thought: “知道了第一本,再找第二本”
⑤ Action: search[First for Women]
⑥ Observation: 返回“创刊于1989年”


⑦ Thought: “1844 < 1989,因此 Arthur’s 更早”
⑧ Action: finish[Arthur's Magazine]


四、设计 ReAct 提示(Prompt)

  1. Instructions(前导说明)
    • 描述任务、解释 Thought/Action/Observation 的含义。
    • 明确列出可用动作(search、lookup、finish)。
  2. Few-shot 示例
    • 1 个或多个完整的 Thought-Action-Observation-…-finish 样例。
    • 帮助模型学会格式。
  3. 待回答的用户问题
    • 置于末尾,触发模型推理。

完整 Prompt = Instructions + 示例 + 问题


五、为什么要限定 Action

  • LLM 创造力过剩,可能产出系统无法执行的指令。
  • 固定动作集合使应用侧 可解析、可控、可安全执行
  • 通过方括号等统一格式,后端脚本可正则检索并调用对应 API。

六、LangChain 框架

  1. 组件(Building Blocks)
    • Prompt Template、Memory、Tool 等模块化封装。
  2. Chain
    • 将多个组件 顺序 连接,形成固定流程。
  3. Agent
    • 决策能力:接收用户输入→决定调用哪些 Tool / Chain。
    • 内置 PAL Agent、ReAct Agent 等,直接复用。
  4. 价值
    • 快速原型 & 部署;
    • 持续扩展:评估 LLM 中间步骤、加入新 Tool。

七、模型规模的影响

  • 大模型 → 对复杂结构化提示(PAL、ReAct)理解能力强,零样本 / 少样本即可工作。
  • 小模型 → 可能需要额外微调才能稳定推理与行动规划,增加开发周期。
  • 实践策略:
    1. 先用大模型上线,收集真实交互数据;
    2. 再蒸馏 / 微调小模型,用于成本更低的推理。

八、实践要点小结

  1. 先定义动作列表,再写示例 —— 保证可执行、可监控。
  2. Thought 与 Action 交替 —— 让模型显式展现推理路径,便于调试。
  3. LangChain 组合 —— Chain 处理线性流程,Agent 处理分支决策。
  4. 选择合适模型规模 —— 关注推理质量与服务成本的平衡。

通过 ReAct + LangChain,可以让 LLM 不仅“回答问题”,还能 规划并执行多步工作流,为真实应用场景奠定基础。

Share this Post

Leave a Comment

您的邮箱地址不会被公开。 必填项已用 * 标注

*
*