LangChain和LangGraph 里面的 `create_react_agent`有什么不同

这两个函数虽然名称相同,但来自不同的库(LangChain 和 LangGraph),它们在实现和使用上有一些关键区别:

主要区别

特性 LangChain 的 create_react_agent LangGraph 的 create_react_agent
所属库 LangChain LangGraph
设计目的 单次执行的简单代理 基于图的、可循环执行的复杂代理
执行模型 线性执行 图结构执行(支持循环和分支)
状态管理 有限状态管理 完整的状态管理和追踪
适用场景 简单任务 复杂、多步骤任务

LangChain 的 create_react_agent

python 复制代码
from langchain.agents import create_react_agent

# 典型用法
agent = create_react_agent(
    llm=llm,
    tools=tools,
    prompt=prompt
)

特点:

  • 基于 ReAct (Reasoning + Acting) 框架
  • 适合单次执行的简单任务
  • 执行是线性的,没有循环或复杂控制流
  • 状态管理相对简单

LangGraph 的 create_react_agent

python 复制代码
from langgraph.prebuilt import create_react_agent

# 典型用法
agent = create_react_agent(
    llm=llm,
    tools=tools,
    prompt=prompt
)

特点:

  • 同样基于 ReAct 框架,但在图结构中实现
  • 支持循环执行和复杂控制流
  • 可以处理多轮对话和复杂任务
  • 提供更强大的状态管理和追踪能力
  • 可以与其他图节点组合创建更复杂的代理

如何选择

  1. 选择 LangChain 版本 当:

    • 你只需要简单的单次任务执行
    • 不想引入额外的 LangGraph 依赖
    • 任务流程是线性的
  2. 选择 LangGraph 版本 当:

    • 你需要处理复杂、多步骤的任务
    • 需要循环执行或条件分支
    • 需要更强大的状态管理
    • 计划将代理集成到更大的工作流中

代码示例对比

LangChain 版本

python 复制代码
from langchain.agents import create_react_agent
from langchain import hub

prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)
result = agent_executor.invoke({"input": "查询北京天气"})

LangGraph 版本

python 复制代码
from langgraph.prebuilt import create_react_agent
from langchain import hub

prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)

# 可以定义更复杂的工作流
workflow = ...
workflow.add_node("agent", agent)
# 添加其他节点和边...

总结

虽然两者都实现了 ReAct 代理模式,但 LangGraph 的版本提供了更强大的工作流控制能力,适合构建复杂的多步骤代理系统。如果你只需要基本的代理功能,LangChain 的版本可能更简单直接。

相关推荐
IT_Octopus2 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
半个落月2 小时前
LangChain Agent 中间件实战(上):生命周期、状态、短路与工具包
javascript·langchain
半个落月2 小时前
LangChain Agent 中间件实战(下):DeepAgents文件权限、长期记忆与对话摘要
javascript·langchain
yuanlaile3 小时前
大模型应用层开发实战:从 Prompt 工程到 Dify、私有 RAG、Agent 完整落地总结
prompt·agent·dify·大模型应用开发·llm 应用·prompt 工程
OnlineProxy4 小时前
为 LangChain 和 CrewAI 构建自定义工具:将代理 IP 轮换封装至智能体函数中
网络协议·tcp/ip·langchain
goehou5 小时前
Prompt 注入实战:直接注入、间接注入和四道防线(附测试样例)
安全·ai·llm·agent·prompt注入
杨杨杨大侠6 小时前
Agent 的上下文和记忆怎么管?从 Harness 到 AgentScope 实现
人工智能·agent
小七-七牛开发者7 小时前
Personal Agent 真能越用越懂你吗?AdaptArena 揭示个性化 Web Agent 的失效链路
ai·agent·web agent·personal agent·adaptarena·个性化智能体
独码侠8 小时前
第04篇·Codex Harness 审批×权限边界:4 档策略怎么选,密钥与仓库永远碰不到
ai·agent·codex
for_ever_love__9 小时前
LangChain 降级、重试与超时:让服务在模型抽风时还能用
python·自然语言处理·langchain·agent·超时·重试·with_retry