DeepAgents 主-子 Agent 的底层实现逻辑完全基于 LangGraph 的图机制

DeepAgents 主-子 Agent 的底层实现逻辑完全基于 LangGraph 的图机制。 它本质上是 LangGraph 的高层封装,主子 Agent 的协作完全建立在 LangGraph 的 StateGraph、CompiledGraph 和工具路由之上。

三层架构关系

DeepAgents、LangGraph、LangChain 三者的关系是逐层构建的:

复制代码
DeepAgents(Agent Harness / 加速器)
  └── LangGraph(Agent Runtime / 执行引擎)
        └── LangChain Core(基础抽象)

DeepAgents 的 create_agent() 返回的就是一个编译好的 LangGraph CompiledGraph,可以直接使用 LangGraph 的 streaminvoke 等 API。

主子 Agent 的图实现细节

实际工程中,主子 Agent 的协作通常呈现为三层 LangGraph 嵌套结构

  • 外层 StateGraph(硬拓扑) :用 langgraph.graph.StateGraph 构建,边是硬编码的,拓扑不依赖 LLM 决策,保证关键节点(如回调)一定触发。
  • 中层 DeepAgent(主 Agent) :底层基于 LangGraph 的 create_react_agent 构建,本身就是一个 ReAct 循环------LLM 决策是否调工具、调哪个,直到模型主动停止。
  • 内层 CompiledSubAgent(子 Agent) :每个子 Agent 都是独立编译好的 LangGraph 图,拥有自己的 ReAct 循环 + 工具链 + 中间件栈。

task 工具的图机制本质

主 Agent 调用子 Agent 的 task 工具,本质上就是 LangGraph 的工具路由机制

  1. create_task_tool 把各子 Agent 按 name 注册到字典,创建一个 task(description, subagent_type) 工具,并加入主 Agent 的工具列表。
  2. 主 Agent 的 LLM 看到的是多态工具,天然用"调工具"的心智模型去编排子 Agent。
  3. 当 LLM 决策调用 task 时,LangGraph 把调用路由到 handle_langgraph_sub_agent,它完成上下文隔离(新 thread_id + 全新 messages)、单一返回值(只返回一条 ToolMessage)以及 files 合并(通过 Command.update 合并回主 Agent 的 state)。

一句话总结

DeepAgents 并没有另起炉灶,而是把 LangGraph 的图构建、状态管理、工具路由、子图(Subgraph)等机制封装成了"开箱即用"的抽象。主 Agent 是一个 ReAct 循环图,子 Agent 是独立编译的子图,task 工具是连接它们的边------整个协作完全运行在 LangGraph 的图执行引擎之上。


相关推荐
码云骑士2 小时前
97-Milvus从零到生产-Standalone-vs-Cluster-索引选择-分片监控扩容
python·milvus
accept 99%2 小时前
python版提取 PDF 的常用第三方库与工具
开发语言·python·pdf
小猴子爱上树2 小时前
跨境图片翻译工具,批量处理商品图视频字幕
python·音视频
用户298698530142 小时前
HTML 转 Word 指南:新手入门教程
人工智能·后端·python
Livia要学习2 小时前
Python面向对象三大特性:封装、继承、多态
开发语言·python
Csvn2 小时前
🐍 Day1 : Python 环境搭建 — 现代 Python 工作流
后端·python
杨_晨2 小时前
LLM输出康熙部首冲突
数据库·python·mysql·ai
渣男教父2 小时前
Python-lxml 与 XPath 实战
python·编程语言
42tr_k2 小时前
用 OpenDataLoader PDF 搭一个兼容 MinerU 的解析服务
后端·python