当前位置: 首页 > news >正文

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

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

主要区别

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

LangChain 的 create_react_agent

from langchain.agents import create_react_agent# 典型用法
agent = create_react_agent(llm=llm,tools=tools,prompt=prompt
)

特点:

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

LangGraph 的 create_react_agent

from langgraph.prebuilt import create_react_agent# 典型用法
agent = create_react_agent(llm=llm,tools=tools,prompt=prompt
)

特点:

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

如何选择

  1. 选择 LangChain 版本 当:

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

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

代码示例对比

LangChain 版本

from langchain.agents import create_react_agent
from langchain import hubprompt = 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 版本

from langgraph.prebuilt import create_react_agent
from langchain import hubprompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)# 可以定义更复杂的工作流
workflow = ...
workflow.add_node("agent", agent)
# 添加其他节点和边...

总结

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

http://www.lryc.cn/news/603918.html

相关文章:

  • 从0到1理解大语言模型:读《大语言模型:从理论到实践(第2版)》笔记
  • Marin说PCB之POC电路layout设计仿真案例---10
  • AI 对话玩具的语音芯片模块方案设计与应用场景​
  • 如何解决人工智能在社会治理中面临的技术和伦理挑战?
  • 【tips】小程序css ➕号样式
  • 项目质量如何把控?核心要点分析
  • 信号上升时间与带宽的关系
  • 技术QA | GNSS模拟器如何赋能自动驾驶?聚焦HIL、多实例与精准轨迹仿真的技术优势
  • leetcode 74. 搜索二维矩阵
  • 从传统到智能:Midscene.js 如何用 AI 颠覆自动化测试!
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现各种食物的类型检测识别(C#代码UI界面版)
  • 【三桥君】企业级AI应用需要系统工程支撑,如何通过MCP大模型架构实现全链路实战解构?
  • 2.4G和5G分别指什么,什么是带宽(频谱带宽和网络带宽)
  • Solar月赛(应急响应)——攻击者使用什么漏洞获取了服务器的配置文件?
  • 数据结构 排序(1)---插入排序
  • 广泛分布于内侧内嗅皮层全层的速度细胞(speed cells)对NLP中的深层语义分析的积极影响和启示
  • 自动化测试实战篇
  • win10更新异常,导致Microsoft Store 无法正常启用,无法正常安装exe应用程序。
  • 银行交易欺诈检测模型分析
  • 微服务 01
  • 【C++算法】76.优先级队列_前 K 个高频单词
  • 【车联网kafka】Kafka核心架构与实战经验(第一篇)
  • 13、select_points_object_model_3d解析
  • 【2025年7月29日】TrollStore巨魔商店恢复在线安装
  • 通缩漩涡中的测量突围:新启航如何以国产 3D 白光干涉仪劈开半导体成本困局?
  • 磁悬浮转子同频振动:自适应陷波器设计与稳定性深度解析(附MATLAB代码)
  • 开源数据库PostgreSQL专家技术
  • AI药师助手 + 药品图谱系统完整操作分析(python版)
  • 基于AI代码疫苗技术的开源软件供应链安全治理
  • 出现错误,Microsoft store初始化失败。请尝试刷新或稍后返回。