什么是DeepAgents?
它是基于 LangGraph 开发的高级 AI 智能体框架,核心定位不是简单聊天问答机器人,而是一个能处理复杂多步骤任务的 “AI 项目经理”,专门解决普通 AI 处理复杂工作时的短板。
1. 核心定位
基础架构
底层依赖两个主流 AI 开发工具:
LangGraph:负责任务工作流管理(规划步骤、调度流程)
LangChain:负责工具、数据、外部能力集成
核心目标:解决传统 AI 智能体的 3 个致命问题:处理多步骤、信息量大、需要提前规划的任务时,容易逻辑混乱、遗忘上下文、步骤出错。
设计哲学
靠 3 个核心机制实现复杂任务稳定执行:
任务分解:把大难题拆成一步步小任务
上下文隔离:不同阶段信息互不干扰,避免混乱
持久记忆:长期记住任务全程信息,不会中途遗忘
2. 核心价值(最关键的理念)
不强行让 AI 模型本身变得更聪明,而是给模型搭好一套优秀的 “工作机制、流程、环境”,让现有模型的能力充分发挥出来。
简单说:不靠升级大模型,靠优化AI 的做事方式,让它更靠谱、更能处理复杂项目。
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 TB
User[用户] --> Agent[Deep Agent]
Agent --> MW1[TodoListMiddleware
任务管理]
Agent --> MW2[FilesystemMiddleware
文件操作]
Agent --> MW3[SubAgentMiddleware
子智能体]
Agent --> MW4[SummarizationMiddleware
对话摘要]
Agent --> MW5[HumanInTheLoopMiddleware
人机交互]
MW2 --> Backend[Backend 存储层]
Backend --> StateB[StateBackend
临时存储]
Backend --> StoreB[StoreBackend
持久存储]
Backend --> SandboxB[SandboxBackend
沙箱执行]
Backend --> CompositeB[CompositeBackend
混合存储]
MW3 --> SubAgent1[通用子智能体]
MW3 --> SubAgent2[自定义子智能体]
Agent --> Store[Store 长期记忆]
Agent --> Checkpointer[Checkpointer 会话状态]
style Agent fill:#4CAF50,color:#fff
style Backend fill:#2196F3,color:#fff
style Store fill:#FF9800,color:#fff
多智能体开发常见问题与解决方案
| 问题序号 | 问题现象 | 根本原因 | 解决方案 |
|---|---|---|---|
| Q1 | 子智能体不被调用 | description(子智能体岗位描述)不够具体,或关键词和用户提问不匹配,主智能体识别不到该派给谁 |
优化子智能体的description,加入精准关键词,让主智能体快速识别任务归属 |
| Q2 | 响应质量不稳定、时好时坏 | LLM 的temperature(随机性参数)设置不当:值太高会天马行空,太低会死板 |
根据任务类型调整:・严谨任务(计算、查询)→调低 temperature・创意任务(文案、构思)→调高 temperature |
| Q3 | 工具调用失败(搜索 / 计算等工具用不了) | 工具函数代码异常、第三方接口变更、网络问题 | 给工具调用逻辑增加异常捕获、重试、报错提示,完善错误处理 |
| Q4 | token 消耗过大、成本高、易超限 | 单次输出max_tokens上限设置过高;system_prompt / 提示词冗余过长 |
合理调低max_tokens;精简主 / 子智能体的提示词,去除冗余内容 |