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

LangGraph中预构件,creat_react_agent的实现流程

LangGraph Prebuilt Agent 流程图

本文档展示了LangGraph的prebuilt模块中Agent的实现流程,重点是create_react_agent函数构建的代理系统流程和结构。

ReAct Agent构建流程

字典模式
Pydantic模式
调用
调用
创建
定义
定义
开发者调用
create_react_agent
确定状态模式
创建AgentState
创建AgentStatePydantic
检查是否需要
结构化响应
使用带结构化响应的状态类型
使用标准状态类型
初始化StateGraph
配置模型节点
配置工具节点
配置条件边
编译图
返回CompiledGraph
_get_prompt_runnable
_should_bind_tools
ToolNode
should_continue
route_tool_responses

Agent执行流程

有工具调用
无工具调用
最终答案
继续对话
对话结束
如有错误
注入提示
开始执行
用户消息
代理模型节点
call_model
should_continue
检查工具调用
工具节点
ToolNode._func
最终响应
执行工具调用
ToolNode._run_one
route_tool_responses
决定下一步
结束
需要结构化响应?
generate_structured_response
handle_tool_errors
_get_prompt_runnable

工具节点执行流程

无效工具
有效工具
成功
失败且处理错误
接收输入
_parse_input
解析输入类型和工具调用
_validate_tool_call
验证工具名称
返回错误ToolMessage
inject_tool_args
注入状态和存储参数
执行工具
BaseTool.invoke
msg_content_output
格式化输出
_handle_tool_error
处理工具错误
创建ToolMessage
_combine_tool_outputs
合并输出
返回结果

ValidationNode验证流程

找到schema
未找到schema
验证成功
验证失败
接收输入
_get_message
提取消息和工具调用
处理每个工具调用
查找对应schema
验证工具参数
返回schema错误
创建成功ToolMessage
format_error
格式化错误消息
创建错误ToolMessage
返回结果

中断处理流程

接受
忽略
回复
编辑
创建中断请求
配置HumanInterruptConfig
创建ActionRequest
构建HumanInterrupt
发送中断请求到用户
等待用户响应
HumanResponse:accept
HumanResponse:ignore
HumanResponse:response
HumanResponse:edit
恢复执行

组件间关系图

创建
定义状态
配置工具
可选添加
添加节点
可配置中断
AgentState
+messages: List[BaseMessage]
+is_last_step: IsLastStep
+remaining_steps: RemainingSteps
ToolNode
+tools: Dict[str, BaseTool]
+name: str
+handle_tool_errors: Any
+_func(input, config, store)
+_run_one(call, input_type, config)
+inject_tool_args(tool_call, input, store)
ValidationNode
+schemas_by_name: Dict[str, Type[BaseModel]]
+format_error: Callable
+_func(input, config)
+_validate_schema(call)
HumanInterrupt
+action_request: ActionRequest
+config: HumanInterruptConfig
+description: str
StateGraph
+add_node(key, node)
+add_edge(start, end)
+add_conditional_edges(key, condition)
+compile()
create_react_agent
+model: LanguageModelLike
+tools: List[BaseTool]
+prompt: Optional[Prompt]
+return: CompiledGraph
+configure_graph()

关键方法和功能说明

代理创建相关

方法/类文件功能描述
create_react_agent()chat_agent_executor.py创建ReAct风格代理的主函数
AgentStatechat_agent_executor.py定义代理状态的字典类型
AgentStatePydanticchat_agent_executor.py定义代理状态的Pydantic模型
_get_prompt_runnable()chat_agent_executor.py处理不同格式的提示输入
_should_bind_tools()chat_agent_executor.py检查是否需要绑定工具到模型

模型节点相关

方法/类文件功能描述
call_model()chat_agent_executor.py调用语言模型生成响应
acall_model()chat_agent_executor.py异步调用语言模型
generate_structured_response()chat_agent_executor.py生成结构化响应

工具节点相关

方法/类文件功能描述
ToolNodetool_node.py执行工具调用的节点
_func()tool_node.py处理工具调用的主函数
_run_one()tool_node.py执行单个工具调用
_parse_input()tool_node.py解析输入状态和工具调用
inject_tool_args()tool_node.py注入状态和存储到工具参数
_handle_tool_error()tool_node.py处理工具执行错误

验证节点相关

方法/类文件功能描述
ValidationNodetool_validator.py验证工具调用参数的节点
_func()tool_validator.py验证节点的主函数
_default_format_error()tool_validator.py默认错误格式化函数

条件和路由相关

方法/类文件功能描述
should_continue()chat_agent_executor.py决定是执行工具还是结束
route_tool_responses()chat_agent_executor.py路由工具响应到下一步
tools_condition()tool_node.py检查是否需要执行工具

中断相关

方法/类文件功能描述
HumanInterruptinterrupt.py定义人类干预的中断
HumanInterruptConfiginterrupt.py配置中断选项
ActionRequestinterrupt.py表示对人类操作的请求
HumanResponseinterrupt.py人类对中断的响应

相关文章:

  • 解决 Kubernetes 调度器启动报错:缺少 Bind 插件
  • PFDF-SPWM(并联续流-倍频正弦脉宽调制)
  • 尚硅谷-react[1-6集]
  • Vue 3 中 ref和reactive的详细使用场景
  • 使用阿里云创建公司官网(使用wordpress)
  • 菊厂20250416软件机考T2解答(200分)
  • GR00T N1:面向通用类人机器人的开放基础模型
  • Google Cloud最新报告:全球领先企业AI应用案例与智能体落地方向探索
  • 利用Global.asax在ASP.NET Web应用中实现功能
  • 绿盟二面面试题
  • 概念实践极速入门 - 常用的设计模式 - 简单生活例子
  • 在 Redis Lua 脚本中,keyCount 参数的作用是明确区分脚本参数中的 KEYS 和 ARGV,具体关系如下:
  • JNI的使用
  • 华为OD机试真题——硬件产品销售方案(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现
  • 设计模式(责任链模式)
  • SyntaxError: Unexpected end of JSON input 内容被截断报错
  • ios接入穿山甲【Swift】
  • 自动驾驶创建场景(just soso)
  • 用 Iris数据做决策树分析
  • 充电宝项目:规则引擎Drools学习
  • 网站建设人员招聘/鄞州seo服务
  • 新疆免费网站建设/最近三天的新闻大事简短
  • 啥网站都能看的浏览器/产品推广方案范例
  • 最新设计网站大全/代写
  • 成都专门做公司网站的公司/爱站网是什么
  • 二维码网站建设/中文搜索引擎排名