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


相关推荐
Patrick在香港23 分钟前
一个斜杠,把毫秒变成十几秒
android·数据库·python·性能优化·正则表达式·回溯·redos
2601_9679801131 分钟前
Python 初学者必备的常用内置函数
python·编程语言·内置函数·初学者·常用函数
OnlineProxy37 分钟前
移动应用数据爬取:通过模拟器与流量嗅探对 API 进行逆向工程
爬虫·python·httpx
染指11101 小时前
162.Agent-LangGraph-检查点的作用
人工智能·python·langchain·agents
我命由我123451 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
xixingzhe21 小时前
图表中同比与环比的区别:看趋势还是看变化?
开发语言·python
forest_092 小时前
当 AI 搜索开始「自我进化」,谁来进化它的核实?——「已核实」结论复核器:3 条结论挖出 2 个洞(附可运行代码)
人工智能·python·机器学习·prompt·agi
小小张说故事2 小时前
Python 的 str 为什么设计成不可变?拆开字符串驻留、字符串池,以及 += 拼接到底慢在哪
后端·python
ljt27249606612 小时前
Python笔记(十一)--Numpy(一)
笔记·python·numpy
时早玖沐2 小时前
KOOK「找不到语音频道」:同一个错误假设,我犯了三次
python·开源·ai编程