什么是DeepAgents?
它是基于 LangGraph构建的高级智能体框架,专门设计用于解决传统智能体在处理复杂任务时的核心痛点,定位不是简单聊天问答机器人,而是一个能处理复杂多步骤任务的 “AI 项目经理”,专门解决普通 AI 处理复杂工作时的短板。
1. 核心定位
基础架构
底层依赖两个主流 AI 开发工具:
基于 LangGraph:负责工作流管理,让任务可以按步骤、有状态地推进(比如规划→执行→反思→修正)。
基于 LangChain:负责工具集成,让智能体能调用各种外部工具(数据库、API、代码解释器等)。
核心目标:解决传统 AI 智能体的 3 个致命问题:处理多步骤、信息量大、需要提前规划的任务时,容易逻辑混乱、遗忘上下文、步骤出错。
设计哲学
靠 3 个核心机制实现复杂任务稳定执行:
任务分解:把大难题拆成一步步小任务
上下文隔离:不同阶段信息互不干扰,避免混乱
持久记忆:长期记住任务全程信息,不会中途遗忘
2. 核心价值(最关键的理念)
不是让模型变得更聪明,而是为模型创造了更好的工作条件,使其潜能得到充分发挥。
- 普通思路:“换个更大的模型、更强的参数,让它自己搞定复杂任务”。
- DeepAgents 思路:“模型本身不变,但给它一套完善的流程、分工、记忆和工具,让它能像人类团队一样协作,把任务做稳、做对、做完整”。
DeepAgents解决的核心问题
问题 1:上下文长度限制
核心困境
普通大模型都有上下文窗口上限(Token 限制)。任务越复杂、对话轮次越多、输入信息越大,就会超出窗口,早期关键信息直接丢失。
举例
用户让 AI「研究量子计算最新进展并写报告」
传统 AI 会多次全网搜索,每次搜索返回大量文本,Token 疯狂堆积:
- 4 次搜索就堆积20000+ tokens
- 后果:
- 前面的重要信息被淹没,推理逻辑混乱
- Token 消耗暴增,成本爆炸
简单说:做长任务,越往后越失忆、越贵、越乱。
问题 2:缺乏任务规划能力
核心困境
普通 AI 面对多步骤复杂任务,不会主动拆分步骤、规划执行顺序。
具体表现
- 信息太多时,被海量内容淹没,不知道下一步该干什么
- 反复调用相同工具,做重复无用功
- 没有全局视角,走一步看一步,没有整体计划
简单说:不会做项目规划,只会被动应答,做不了复杂工程类任务。
问题 3:短期记忆局限
核心困境
普通 AI 每次对话都是独立事件,对话结束就清空状态,没法跨会话继承信息、保存进度。
直接后果
- 没法积累知识和经验,每次都从头开始
- 重复学习相同内容,效率极低
- 完全做不了需要长期跟进、持续迭代的复杂项目
简单说:没有长期记忆,没法做需要多天、多轮跟进的长期任务。
DeepAgents的解决方案
针对于上述的三大痛点,DeepAgents 的三大核心技术机制,提供了更好的解决方案
一、任务委托机制(解决:上下文溢出、信息冗余)
核心逻辑
采用主智能体 + 子智能体的分工模式,主智能体当 “总指挥”,把复杂任务委托给子智能体干活。
- 子智能体负责大量搜索、收集海量信息(比如多次搜索量子计算,产生大量 Token)
- 子智能体把几万字信息精简成几百字摘要,再交给主智能体
- 主智能体只接收精简后的总结,不接触冗余原始数据
✅ 效果:上下文始终干净,Token 不爆炸,不会被海量信息淹没。
二、内置规划系统(解决:缺乏任务规划能力)
通过 write_todos 工具,AI 会像项目经理一样列任务清单,拆解复杂项目:
示例(量子计算报告任务):
- 查找量子计算基础
- 查找最新研究
- 综合信息
- 写报告
AI 不再盲目调用工具,而是按步骤、按计划执行,有全局视野,不会漏步骤、重复干活。
三、持久化记忆系统(解决:短期记忆局限)
DeepAgents 自带文件读写工具,把记忆永久存在文件里,跨对话、跨会话不会丢失:
- 第 1 次对话:把知识写入记忆文件(例:中国首都是北京)
- 第 2 次及以后:直接读取文件调取记忆
✅ 实现长期知识积累、进度保存,能做长期跟进的复杂项目。
技术层面根本差异(表格对比,核心亮点)
| 对比维度 | 传统智能体 | DeepAgents |
|---|---|---|
| 系统提示 | 只是一个调用工具的执行者 | 任务协调者,会制定计划、分配任务 |
| 最新状态 | 所有搜索、中间数据全部堆积 | 只保留计划 + 精简总结 |
| 决策方式 | 只会想:下一步调用哪个工具 | 会想:根据计划,该委托给谁干活 |
| 上下文大小 | 越用越大,可达 15k+ tokens | 稳定维持在 3-5k tokens,永远不溢出 |
传统智能体 vs DeepAgents
形象对比
| 对比维度 | 传统智能体(单人多面手) | DeepAgents(高效协作团队) |
|---|---|---|
| 核心定位 | 简单问答机器人,单模型独立执行 | AI 项目经理,基于 LangGraph+LangChain 的多智能体协作框架 |
| 核心痛点 / 问题 | 1. 上下文长度有限,长任务信息丢失2. 无任务规划能力,步骤混乱重复3. 短期记忆,跨会话无法继承信息 | 针对性解决以上三大核心问题 |
| 底层技术机制 | 无分工、无规划、无持久记忆 | 1. 任务委托机制:主 Agent 派活,子 Agent 执行并精简信息2. 内置规划系统:拆解任务、制定待办计划3. 持久化记忆系统:文件存储,长期保存知识 |
| 角色比喻 | 一人包揽全部:既是 CEO,又是研究员、分析师、执行者 | 分工明确:CEO 协调员(主 Agent)+ 多个专业子智能体 |
| 信息处理方式 | 直接接收所有原始信息,无过滤筛选,Token 堆积爆炸 | 子 Agent 处理海量信息,仅向主 Agent 返回精简总结,上下文稳定干净 |
| 决策模式 | 被动执行:思考 “下一步调用什么工具” | 主动统筹:思考 “根据计划,该委托给谁执行” |
| 上下文规模 | 持续增大(可达 15k+ tokens),易溢出 | 稳定可控(3-5k tokens),无信息冗余 |
| 记忆能力 | 短时记忆,任务结束即清空,无法积累经验 | 持久化长期记忆,跨会话保存知识、项目进度 |
| 工作效率 | 频繁切换角色,精力分散,效率低下 | 专业分工、可并行处理,实现1+1>2 |
| 核心价值 | 依赖模型自身能力,上限有限 | 不靠提升模型智商,靠优化协作架构,突破单模型能力上限 |
能力对比
| 能力维度 | 传统智能体 | DeepAgents | 通俗解读 |
|---|---|---|---|
| 上下文管理 | 线性累积,容易溢出 | 智能分割,保持精简 | 传统 AI 信息越堆越多,超出窗口就失忆;DeepAgents 用任务委托、信息精简,拆分上下文,始终干净可控 |
| 计划制定 | 缺乏全局观,随机尝试 | 主动规划,步骤清晰 | 传统 AI 走一步看一步;DeepAgents 自带write_todos,先拆解任务、列计划,全局统筹 |
| 工具使用 | 被动调用,易重复 | 策略性委托,高效整合 | 传统 AI 盲目重复搜索、调用工具;DeepAgents 把工具任务委托给子智能体,分工高效不重复 |
| 记忆保持 | 会话结束即遗忘 | 持久化存储,随时调用 | 传统 AI 没有长期记忆,每次对话从头开始;DeepAgents 把知识、进度存入文件,跨会话永久保存 |
| 错误恢复 | 容易卡死,难以回退 | 节点重启,灵活调整 | 传统 AI 出错后很难回溯补救;DeepAgents 基于 LangGraph 工作流,单个步骤出错可重启回滚,容错性强 |
| 复杂任务处理 | 力不从心,容易崩溃 | 模块化处理,游刃有余 | 传统 AI 处理长周期、多步骤任务直接逻辑崩盘;DeepAgents 模块化拆分,AI 团队协作处理大型项目 |
| 协作能力 | 单打独斗 | 团队协作,各司其职 | 传统 AI 单模型一人全包;DeepAgents 主 Agent 统筹 + 子 Agent 执行,模拟人类团队分工 |
| 适应性 | 僵化执行 | 动态调整策略 | 传统 AI 按固定逻辑死板执行;DeepAgents 可根据任务进展实时调整计划、分配任务 |
| 可解释性 | 黑盒操作 | 过程透明,易于追踪 | 传统 AI 不知道每一步怎么思考的;DeepAgents 的计划、任务委托、执行步骤全程可追溯,清晰可控 |
flowchart LR
classDef leftBox fill:#f8d7da,stroke:#dc3545
classDef rightBox fill:#d1ecf1,stroke:#0c5460
classDef badBadge fill:#dc3545,color:#fff
classDef goodBadge fill:#28a745,color:#fff
%% ========== 左侧:传统智能体 ==========
subgraph LEFT [传统智能体 - 单人作战]
direction TB
T0[用户指令:财务分析+投资建议]:::leftBox
T1[搜索财报 5000 tokens]
T2[搜索行业 5000 tokens]
T3[搜索竞品 5000 tokens]
T4[分析数据 3000 tokens]
T5[搜索投资理论 5000 tokens]
T6[❌ 上下文超限 → 任务失败]:::badBadge
T0 --> T1 --> T2 --> T3 --> T4 --> T5 --> T6
end
%% ========== 右侧:DeepAgents ==========
subgraph RIGHT [DeepAgents - 团队协作]
direction TB
D0[主协调员]:::rightBox
D1[制定任务计划]
D2[财务Agent]
D3[行业Agent]
D4[策略师Agent]
D5[汇总精简结果]
D6[✅ 任务完成]:::goodBadge
D0 --> D1
D1 --> D2 & D3 & D4
D2 & D3 & D4 --> D5 --> D6
end
%% 强制左右布局
LEFT --> RIGHT
DeepAgents使用场景
| 模块 | 具体内容 |
|---|---|
| 何时使用 DeepAgents(适用条件) | 1. 处理超过 10 个步骤的复杂任务 2. 需要长期记忆、持续数天跟进的项目 3. 涉及多个领域的综合性工作 4. 要求高可靠性、可追溯性的场景 5. 需要生成大量中间产物的任务 |
| 适用场景示例(落地案例) | 1. 企业级软件开发和维护 2. 复杂数据分析和报告生成 3. 跨平台自动化部署 4. 大型项目管理和协调 5. 科研实验设计和执行 |
DeepAgents深入理解
create_deep_agent核心参数详解
1 | def create_deep_agent( |
| 参数名称 | 类型 | 是否必需 | 功能描述 | 示例 |
|---|---|---|---|---|
| model | ChatModel | 是 | 指定使用的 LLM 模型,通过init_chat_model初始化 |
model = init_chat_model("deepseek-chat", model_provider="openai") |
| subagents | List[dict] | 否 | 定义子智能体团队 (SubAgent 对象列表),每个子智能体包含 name、description、system_prompt 和 tools 字段 | subagents=[{"name": "weather_agent", "description": "天气查询专家"}] |
| system_prompt | str | 否 | 定义主智能体的角色和行为准则 | system_prompt="你是智能助理总监,负责协调团队" |
| tools | List[Tool] | 否 | 主智能体可直接使用的通用工具集 | tools=[general_search, calculate] |
SubAgent参数
| 字段名称 | 类型 | 是否必需 | 功能描述 |
|---|---|---|---|
| name | str(字符串) | 是 | 子智能体的唯一名称 / ID,主智能体靠这个名字识别、调用它 |
| description | str(字符串) | 是 | 给主智能体看的岗位简介,用来让主智能体判断什么任务派给它,要写清专业领域 |
| system_prompt | str(字符串) | 是 | 子智能体自己的人设 + 工作规则,定义它怎么思考、怎么回答、执行什么任务 |
| tools | List [Tool](工具列表) | 可选 | 子智能体专属的工具,只给这个子 Agent 用,和主智能体的工具互相独立 |
四大核心参数作用
model 参数:基础底座
绑定大语言模型,提供所有智能体的底层 AI 推理能力,相当于给系统装 “大脑”。
subagents 参数:团队分工
搭建多个专业子智能体,实现专人专岗,比如天气专家、计算器专家,把复杂任务拆解分工完成。
system_prompt 参数:行为规则
给主 / 子智能体设定人设、职责、约束,规定它该怎么说话、怎么做事、不能做什么。
tools 参数:功能扩展
给智能体配置搜索、计算、代码等工具,让 AI 拥有联网、运算等外部实操能力。
最终落地逻辑
只要合理搭配、精细化调整这 4 个参数,就能搭建可以处理复杂任务的智能助理系统;核心是理解每个参数的用途,根据你的业务需求针对性配置。
架构图
graph TD
%% 样式定义(基础配色,兼容性强)
classDef user fill:#e6f7ff,stroke:#1890ff,stroke-width:1px
classDef runtime fill:#f0fff4,stroke:#23c78c,stroke-width:1px
classDef ability fill:#fffbe6,stroke:#f5a623,stroke-width:1px
classDef middleware fill:#fef0f8,stroke:#eb74b8,stroke-width:1px
classDef backend fill:#f4f0ff,stroke:#8562d8,stroke-width:1px
classDef infra fill:#f5f5f5,stroke:#666,stroke-width:1px
classDef platform fill:#e8f4f8,stroke:#44a8c2,stroke-width:1px
classDef entry fill:#fff,stroke:#333,stroke-width:1px
%% 用户层
subgraph 用户层
A[终端用户]
B[开发者]
C[企业应用]
end
class A,B,C user
%% 入口层
D[create_agent 入口]
class D entry
%% 运行时
subgraph 运行时
E[LangGraph Runtime]
F[Tool Calling Loop]
G[State Management]
end
class E,F,G runtime
%% 能力层
subgraph 能力层
H[Planning
write_todos]
I[Filesystem
read/write/ls]
J[Execution
execute/sandbox]
K[Delegation
task/subagents]
end
class H,I,J,K ability
%% 中间件栈
subgraph 中间件栈
M1[TodoListMiddleware]
M2[FilesystemMiddleware]
M3[SubAgentMiddleware]
M4[SummarizationMiddleware]
M5[MemoryMiddleware]
M6[SkillsMiddleware]
M7[HTMLMiddleware]
end
class M1,M2,M3,M4,M5,M6,M7 middleware
%% 后端层
subgraph 后端层
B1[StateBackend]
B2[FilesystemBackend]
B3[StoreBackend]
B4[SandboxBackends]
end
class B1,B2,B3,B4 backend
%% 基础设施层
subgraph 基础设施层
LLM[LLM APIs
OpenAI/Anthropic/Google]
end
class LLM infra
%% 平台服务
LS[LangSmith 可观测性]
LGC[LangGraph Cloud 部署托管]
class LS,LGC platform
%% 连线关系
A & B & C --> D
D --> E
E --> F
F --> H & I & J & K & G
H & I & J & K --> M1 & M2 & M3 & M4 & M5 & M6 & M7
M1 & M2 & M3 & M4 & M5 & M6 & M7 --> B1 & B2 & B3 & B4
B1 & B2 & B3 & B4 --> LLM
D --> LS & LGC
多智能体开发常见问题与解决方案
| 问题序号 | 问题现象 | 根本原因 | 解决方案 |
|---|---|---|---|
| Q1 | 子智能体不被调用 | description(子智能体岗位描述)不够具体,或关键词和用户提问不匹配,主智能体识别不到该派给谁 |
优化子智能体的description,加入精准关键词,让主智能体快速识别任务归属 |
| Q2 | 响应质量不稳定、时好时坏 | LLM 的temperature(随机性参数)设置不当:值太高会天马行空,太低会死板 |
根据任务类型调整:・严谨任务(计算、查询)→调低 temperature・创意任务(文案、构思)→调高 temperature |
| Q3 | 工具调用失败(搜索 / 计算等工具用不了) | 工具函数代码异常、第三方接口变更、网络问题 | 给工具调用逻辑增加异常捕获、重试、报错提示,完善错误处理 |
| Q4 | token 消耗过大、成本高、易超限 | 单次输出max_tokens上限设置过高;system_prompt / 提示词冗余过长 |
合理调低max_tokens;精简主 / 子智能体的提示词,去除冗余内容 |