ReAct 框架实现(基于langgraph)
一、ReAct 自治循环代理的背景:从代理架构演进说起
- Router Agent:仅能在路由分支中选择单一路径,当分支涉及多个工具时,无法灵活选择工具。
- Tool Calling Agent:可自主选择工具,但每次仅能执行一次函数调用,无法支持多工具依次执行的复杂任务。
- Full Autonomous(自治循环代理):为解决上述局限而引入,核心是基于 ReAct 思想的自治循环架构,支持:
- 多步骤决策:Agent 可控制一系列决策流程,而非单一决策。
- 多工具访问:Agent 可自主选择并使用多种工具完成任务。
二、LangGraph 中 ReAct 的构建原理
LangGraph 框架通过预构建的ReAct 组件实现自治循环代理,其核心机制是:
- 大模型在
while循环中重复调用工具:每一步自主决定调用哪些工具及输入,执行工具后将输出作为观察结果反馈给大模型,直到无需调用工具时终止循环,输出最终结果。 - 架构本质:由大模型、Tool Calling Agent、Router Agent 共同构建的图结构,类似 LangChain 的 ReAct Agent(底层基于 LangChain 的 LCEL 语言),但适配 LangGraph 的图结构而非
AgentExecutor,核心基于 ** 规划(Pla
