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 的 stream、invoke 等 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 的图执行引擎之上。


相关推荐
2601_9628857242 分钟前
如何用 Python 计算 BBI 多空指标?
开发语言·python
必须得开心呀44 分钟前
为什么 python-docx 打不开加密的 .docx,Word COM 却能打开
python·word
VidDown1 小时前
上传 2GB 文件别让 Django 接:分片上传、对象存储直传与秒传
python·django·音视频·状态模式·实时音视频·视频编解码·视频
打工仔折腾 AI1 小时前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
yi0111 小时前
DAY24: LeetCode 167:两数之和 II|从暴力枚举到左右双指针
笔记·python·算法·leetcode·二分查找·双指针
kimnoic1 小时前
Python常用命令提示符使用方法详解
开发语言·python
用户7624117567051 小时前
第五章 字符串及正则表达式
python
天天被压力2 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #25】北交所财务技术指标难搞?12个接口,报表+MACD全拿
java·人工智能·python
Είναι η κοπέλα2 小时前
模型量化完全指南:GGUF、GPTQ、AWQ 怎么选
人工智能·pytorch·python
yi0112 小时前
LeetCode 15:三数之和|排序 + 双指针,如何避免重复答案?
笔记·python·算法·leetcode·双指针