Jean's Blog

一个专注软件测试开发技术的个人博客

0%

DeepAgents介绍

什么是DeepAgents?

它是基于 LangGraph 开发的高级 AI 智能体框架,核心定位不是简单聊天问答机器人,而是一个能处理复杂多步骤任务的 “AI 项目经理”,专门解决普通 AI 处理复杂工作时的短板。

1. 核心定位

  1. 基础架构

    底层依赖两个主流 AI 开发工具:

    • LangGraph:负责任务工作流管理(规划步骤、调度流程)

    • LangChain:负责工具、数据、外部能力集成

  2. 核心目标:解决传统 AI 智能体的 3 个致命问题:处理多步骤、信息量大、需要提前规划的任务时,容易逻辑混乱、遗忘上下文、步骤出错。

  3. 设计哲学

    靠 3 个核心机制实现复杂任务稳定执行:

    • 任务分解:把大难题拆成一步步小任务

    • 上下文隔离:不同阶段信息互不干扰,避免混乱

    • 持久记忆:长期记住任务全程信息,不会中途遗忘

2. 核心价值(最关键的理念)

不强行让 AI 模型本身变得更聪明,而是给模型搭好一套优秀的 “工作机制、流程、环境”,让现有模型的能力充分发挥出来

简单说:不靠升级大模型,靠优化AI 的做事方式,让它更靠谱、更能处理复杂项目。

DeepAgents解决的核心问题

问题 1:上下文长度限制

核心困境

普通大模型都有上下文窗口上限(Token 限制)。任务越复杂、对话轮次越多、输入信息越大,就会超出窗口,早期关键信息直接丢失

举例(图里的代码示例)

用户让 AI「研究量子计算最新进展并写报告」

传统 AI 会多次全网搜索,每次搜索返回大量文本,Token 疯狂堆积:

  • 4 次搜索就堆积20000+ tokens
  • 后果:
    1. 前面的重要信息被淹没,推理逻辑混乱
    2. Token 消耗暴增,成本爆炸

简单说:做长任务,越往后越失忆、越贵、越乱


问题 2:缺乏任务规划能力

核心困境

普通 AI 面对多步骤复杂任务,不会主动拆分步骤、规划执行顺序。

具体表现

  1. 信息太多时,被海量内容淹没,不知道下一步该干什么
  2. 反复调用相同工具,做重复无用功
  3. 没有全局视角,走一步看一步,没有整体计划

简单说:不会做项目规划,只会被动应答,做不了复杂工程类任务


问题 3:短期记忆局限

核心困境

普通 AI 每次对话都是独立事件,对话结束就清空状态,没法跨会话继承信息、保存进度。

直接后果

  1. 没法积累知识和经验,每次都从头开始
  2. 重复学习相同内容,效率极低
  3. 完全做不了需要长期跟进、持续迭代的复杂项目

简单说:没有长期记忆,没法做需要多天、多轮跟进的长期任务

DeepAgents的解决方案

针对于上述的三大痛点,DeepAgents 的三大核心技术机制,提供了更好的解决方案

一、任务委托机制(解决:上下文溢出、信息冗余)

核心逻辑

采用主智能体 + 子智能体的分工模式,主智能体当 “总指挥”,把复杂任务委托给子智能体干活

  1. 子智能体负责大量搜索、收集海量信息(比如多次搜索量子计算,产生大量 Token)
  2. 子智能体把几万字信息精简成几百字摘要,再交给主智能体
  3. 主智能体只接收精简后的总结,不接触冗余原始数据

✅ 效果:上下文始终干净,Token 不爆炸,不会被海量信息淹没。

二、内置规划系统(解决:缺乏任务规划能力)

通过 write_todos 工具,AI 会像项目经理一样列任务清单,拆解复杂项目:

示例(量子计算报告任务):

  1. 查找量子计算基础
  2. 查找最新研究
  3. 综合信息
  4. 写报告

AI 不再盲目调用工具,而是按步骤、按计划执行,有全局视野,不会漏步骤、重复干活。

三、持久化记忆系统(解决:短期记忆局限)

DeepAgents 自带文件读写工具,把记忆永久存在文件里,跨对话、跨会话不会丢失:

  1. 第 1 次对话:把知识写入记忆文件(例:中国首都是北京)
  2. 第 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
2
3
4
5
6
7
8
9
10
11
12
13
def create_deep_agent(
model: str | BaseChatModel | None = None, # AI 模型
tools: Sequence[BaseTool] | None = None, # 工具列表
system_prompt: str | None = None, # 系统提示词
middleware: Sequence[AgentMiddleware] = (), # 中间件列表
subagents: list[SubAgent] | None = None, # 子智能体列表
store: BaseStore | None = None, # 长期记忆存储
backend: BackendProtocol | None = None, # 文件存储后端
interrupt_on: dict[str, bool | InterruptOnConfig] | None = None, # 人机交互配置
checkpointer: Checkpointer | None = None, # 会话检查点
debug: bool = False, # 调试模式
) -> CompiledStateGraph:
"""创建一个深度智能体"""
参数名称 类型 是否必需 功能描述 示例
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 用,和主智能体的工具互相独立

四大核心参数作用

  1. model 参数:基础底座

    绑定大语言模型,提供所有智能体的底层 AI 推理能力,相当于给系统装 “大脑”。

  2. subagents 参数:团队分工

    搭建多个专业子智能体,实现专人专岗,比如天气专家、计算器专家,把复杂任务拆解分工完成。

  3. system_prompt 参数:行为规则

    给主 / 子智能体设定人设、职责、约束,规定它该怎么说话、怎么做事、不能做什么。

  4. 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;精简主 / 子智能体的提示词,去除冗余内容