学agent还的了解ReAct

328 阅读4分钟

ReAct 的核心原理:推理 (Reasoning) + 行动 (Acting)

ReAct 全称是  "Reasoning and Acting" 。它结合了两种关键的 Prompting 技术:

  1. 思维链 (Chain-of-Thought, CoT) 推理:  让大模型在生成最终答案之前,先进行一系列的中间推理步骤。这就像要求大模型“思考一下,然后告诉我你的思考过程”。
  2. 行动 (Action):  允许大模型通过调用外部工具(Tools)来与环境互动,获取信息或执行操作。

ReAct 的核心就是让大模型在一个循环中交替进行  “思考 (Thought)”“行动 (Action)”  和  “观察 (Observation)” ,直到达到目标。

具体组件和机制:

  1. 大语言模型 (LLM) - 大脑核心:

    • LLM 是 ReAct Agent 的“大脑”,负责所有的推理、规划、理解用户意图以及生成响应。
    • 它的能力在于理解自然语言指令,并在其参数知识范围内进行推理。
  2. 工具 (Tools / Action Tools) - 外部能力:

    • 这是 LLM 自身不具备的能力的补充。LLM 自身无法:

      • 访问实时网络信息。
      • 执行精确的数学计算。
      • 查询结构化数据库。
      • 调用外部 API(如发送邮件、预订机票)。
      • 运行代码进行复杂逻辑处理。
    • 工具就是这些外部能力的封装。  每个工具通常有一个描述,告诉 LLM 它能做什么以及如何使用它(例如,输入参数是什么)。

    • LLM 在“思考”后,可以决定调用哪个工具,并生成调用所需的参数。

  3. 记忆 (Memory) - 上下文与持久化:

    • 短期记忆(上下文窗口):  ReAct 流程中的“思考”、“行动”、“观察”步骤会被不断添加到 LLM 的输入上下文中。LLM 在每一步都能“记住”之前的所有步骤和结果,从而进行连贯的推理。这就像一个人在解决问题时,会记住之前尝试过什么、得到了什么结果。
    • 长期记忆(可选但常用):  对于更复杂的、跨会话或需要大量历史知识的 Agent,会结合外部数据库(如向量数据库)作为长期记忆。例如,存储用户偏好、历史交互记录、知识库内容等。当需要时,LLM 可以通过查询工具(如 RAG 工具)来“回忆”这些长期信息。

ReAct 的工作流程(Thought-Action-Observation Loop):

以下是一个简化但典型的 ReAct 流程:

  1. 用户输入 (Input):  用户提出一个问题或任务。

    • 例子:  "苹果公司最新的季度财报营收是多少?"
  2. LLM 思考 (Thought):  LLM 接收用户输入和当前上下文(包括历史 Thought-Action-Observation 记录),然后生成一个“思考”。这个思考通常是模型对自己下一步行动的内在推理。

    • LLM Thinking:  "我需要查询苹果公司最新的季度财报。我应该使用一个搜索工具来查找这个信息。"
  3. LLM 行动 (Action):  基于“思考”,LLM 选择一个合适的工具,并生成调用该工具所需的参数。

    • LLM Action:  search_tool(query="苹果公司最新季度财报营收")
  4. 环境观察 (Observation):  执行工具,并将工具返回的结果作为“观察”反馈给 LLM。

    • Observation (from search_tool):  "根据[来源],苹果公司2024财年第二季度营收为907.5亿美元。"
  5. LLM 再次思考 (Thought):  LLM 接收新的“观察”,并根据它进行下一步的思考,决定是继续行动还是给出最终答案。

    • LLM Thinking:  "我已经找到了营收数据。现在我可以组织语言,生成最终答案了。"
  6. LLM 最终行动 (Action) 或再次行动:  如果任务完成,生成最终答案;如果还需要更多信息,则继续选择工具并执行。

    • LLM Action:  final_answer("苹果公司最新的季度财报(2024财年第二季度)营收为907.5亿美元。")

这个循环会一直持续,直到 LLM 认为任务完成并输出最终答案,或者达到预设的步数限制。

总结:

所以,ReAct Agent 不仅仅是给大模型加上了 Action Tool 和记忆。更准确地说,它是:

  • 一种高级的 Prompting 策略:  明确地指导 LLM 如何在“思考”和“行动”之间进行切换。
  • 一种迭代的决策框架:  LLM 在每一步都根据当前状态和观察来决定下一步怎么做。
  • 将 LLM 的推理能力与外部工具的执行能力结合起来的范式:  弥补了 LLM 的固有缺陷,使其能够完成更复杂、更现实世界的任务。

它赋予了 LLM 更强的规划能力问题分解能力与动态环境交互的能力,使其从简单的文本生成器,升级为能够自主解决问题的“Agent”。