create_react_agent(model, tools) 和 graph_builder.add_conditional_edges 的联系和区别

create_react_agent(model, tools)graph_builder.add_conditional_edges 的联系和区别

这两者都是在LangGraph 框架下用于构建智能代理(Agent)工作流的,但它们的作用完全不同:

create_react_agent(model, tools) graph_builder.add_conditional_edges
作用 创建一个可以调用工具的智能代理(Agent) 在 LangGraph 中定义工作流中的条件分支
本质 让 AI 通过ReAct 机制 决定如何调用 tools 处理任务 让任务执行时,根据不同的条件决定下一步执行哪个节点
适用场景 需要让 AI 代理根据用户输入选择并执行合适的工具 需要在一个有条件分支的工作流里决定下一个执行的步骤
是否依赖 AI 解析 是,AI 决定何时调用工具 否,条件逻辑通常由代码或数据判断

联系

通常,你会先用 create_react_agent(model, tools) 创建一个可以调用工具的 AI 代理 ,然后在 LangGraph 的工作流 里用 graph_builder.add_conditional_edges 控制代理的执行流程

换句话说:

  • create_react_agent(model, tools) 让 AI 代理能使用工具来处理任务。
  • graph_builder.add_conditional_edges 则决定 AI 代理完成任务后,下一个应该执行的步骤

它们经常配合使用,比如:

  1. 先用 create_react_agent(model, tools) 让 AI 代理能查询数据库、调用 API 等。
  2. 再用 add_conditional_edges 让 AI 代理在不同情况下执行不同的逻辑。

举例说明

场景:智能宠物助手

我们想创建一个智能宠物助手,它能够:

  • 查询用户的宠物喜好(如果用户有存过宠物,就告诉他喜欢什么)
  • 推荐宠物(如果用户没有存过宠物,就推荐一些宠物给他)

1. 使用 create_react_agent(model, tools)

python 复制代码
graph = create_react_agent(model, tools)

这行代码创建了一个AI 代理 ,它可以调用 tools(比如 list_favorite_pets 查询宠物、update_favorite_pets 存储宠物)。

  • 如果用户问"我喜欢什么宠物?"
    • 代理会调用 list_favorite_pets 工具来查询数据
  • 如果用户说"我喜欢猫和狗。"
    • 代理会调用 update_favorite_pets 工具来存储信息

➡️ 这一步只是让 AI 具备调用工具的能力 ,但它并不决定下一步要执行哪个任务


2. 使用 graph_builder.add_conditional_edges

python 复制代码
graph_builder.add_conditional_edges(
    "check_pets",  # 当前步骤
    lambda data: "recommend_pets" if not data["pets"] else "show_pets",  # 条件判断
)

这行代码的作用是:

  • 如果 data["pets"] 为空 (用户没有存过宠物),执行 "recommend_pets"(推荐宠物)。
  • 否则,执行 "show_pets"(告诉用户他喜欢的宠物)。

完整的流程

  1. 用户输入:"我喜欢什么宠物?"
  2. AI 代理调用 list_favorite_pets 查询宠物
  3. 工作流分支
    • 如果有宠物信息 ,执行 show_pets,回复"你喜欢猫和狗"。
    • 如果没有宠物信息 ,执行 recommend_pets,回复"你可以试试养猫或狗"。

总结

功能 create_react_agent(model, tools) graph_builder.add_conditional_edges
作用 让 AI 代理能够调用工具处理任务 让 AI 代理在任务完成后决定执行哪个步骤
是否涉及 AI 解析 是,AI 自己决定是否调用工具 否,执行路径由代码逻辑决定
使用场景 让 AI 代理能查询数据库、调用 API、处理用户请求 在一个工作流中,定义执行路径的分支逻辑
举例 AI 代理查询用户喜欢的宠物 AI 代理根据查询结果决定是显示宠物还是推荐宠物

一句话总结

  • create_react_agent(model, tools) 让 AI 代理能调用工具,但不管执行顺序。
  • graph_builder.add_conditional_edges 决定执行顺序,但不涉及 AI 解析。

它们经常搭配使用,create_react_agent 负责执行任务add_conditional_edges 负责控制任务流

相关推荐
QBoson20 分钟前
量子计算+AI:特征选择与神经网络优化创新应用
人工智能·神经网络·量子计算·图像分类·特征选择·“五岳杯”量子计算挑战赛·相干光量子计算机
Juicedata1 小时前
JuiceFS v1.3-Beta2:集成 Apache Ranger,实现更精细化的权限控制
运维·人工智能·ai
ZHOU_WUYI2 小时前
Dify源码教程:账户和密码传递分析
agent·dify
Work(沉淀版)3 小时前
DAY 40
人工智能·深度学习·机器学习
蓦然回首却已人去楼空4 小时前
Build a Large Language Model (From Scratch) 序章
人工智能·语言模型·自然语言处理
CM莫问4 小时前
<论文>(微软)WINA:用于加速大语言模型推理的权重感知神经元激活
人工智能·算法·语言模型·自然语言处理·大模型·推理加速
拾忆-eleven4 小时前
NLP学习路线图(二十六):自注意力机制
人工智能·深度学习
MYH5165 小时前
在NLP文本处理中,将字符映射到阿拉伯数字(构建词汇表vocab)的核心目的和意义
人工智能·深度学习·自然语言处理
要努力啊啊啊5 小时前
KV Cache:大语言模型推理加速的核心机制详解
人工智能·语言模型·自然语言处理
mzlogin7 小时前
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
人工智能