什么是 Deep Agents

在 AI Agent 的发展历程中,我们正在经历一次重要的架构转变。传统的"浅层 Agent"(Shallow Agents)只是简单的 LLM 工具调用循环,而"深度 Agent"(Deep Agents)则代表了一种全新的设计范式——通过战略性规划、记忆管理和智能委派来解决真正复杂的问题。

简单来说,Deep Agents = 浅层 Agent + 更好的脚手架。这些脚手架包括规划工具、文件系统、子 Agent 委派和详细的上下文工程。

Shallow Agents vs Deep Agents

浅层 Agent 的典型模式是:接收提示 → 调用工具 → 重复。这种简单循环在处理复杂任务时会遇到明显瓶颈:

  • 上下文爆炸:第 20 次工具调用返回 5000 行日志,后续每次 LLM 调用成本飙升且性能下降

  • 任务失控:缺乏明确分解,Agent 容易在多步骤任务中迷失方向

  • 记忆丢失:在第 3 步找到的关键信息,到第 8 步就被中间输出淹没

  • 重试混乱:子任务失败后带着完整历史重试,无法聚焦问题

深度 Agent 通过四个核心架构选择解决这些问题,使系统能够执行 100+ 步骤的工作流并具备自主恢复能力。

Deep Agents 的核心架构模式

1. 任务规划与进度追踪

Deep Agents 不是在单一上下文窗口中临时推理,而是维护可更新、可重试、可恢复的结构化任务计划。这就像一个"活的待办清单",引导 Agent 朝着长期目标前进。

实现方式:提供 track_planwrite_todos 工具,强制 Agent 在执行前进行规划阶段。

为什么有效:这个工具本身可能只是验证结构并回显(接近 no-op),但调用它的行为将分散的推理转化为结构化执行。这是通过 API 设计实现的元认知。

实际效果

  • 无规划:Agent 立即开始编辑文件,第三次修改后就迷失方向

  • 有规划:Agent 先调用 track_plan(["复现 bug", "定位认证逻辑", "识别失败点", "实现修复", "验证"]),然后按清单执行

2. 外部记忆与文件系统

通过文件工具(read_filewrite_fileedit_file)给 Agent 提供"草稿本":

  • 当 Agent 从 API 拉取 10,000 行数据时,写入 analysis_data.json 而不是保留在上下文中

  • 三步之后需要引用数据时,读取特定部分而不是滚动聊天历史

关键类比:上下文窗口是 RAM(快速、昂贵、有限),文件系统是存储(便宜、持久、无限)。

实际案例:Agent 调试测试失败时,不是将每次测试输出保留在上下文中,而是写入 failures.log,总结问题,然后逐个读取条目进行修复。

这不是替代向量数据库或语义搜索,而是给 Agent 一个倾倒中间状态的地方。

3. 编排器与子 Agent 架构

单一大型 Agent(即使有超长上下文)已经不够。编排器-子 Agent 架构是当今最强大的 LLM Agent 架构模式之一:

  • 编排器(Orchestrator):管理专门的子 Agent(搜索、编码、知识检索、分析、验证、写作等)

  • 子 Agent(Sub-agents):各自拥有干净的上下文和领域焦点,高效执行

  • 集成(Integration):编排器将子 Agent 的输出整合为连贯结果

工作流示例

主 Agent 收到任务:"构建新的 API 端点"
  ↓
调用 spawn_agent(task="编写实现", context="规格文档", tools=[文件工具])
  ↓
子 Agent 在隔离上下文中编写代码,返回结果
  ↓
调用 spawn_agent(task="编写测试", context="实现代码", tools=[文件+测试工具])
  ↓
测试 Agent 独立工作

核心优势

  • 每个子 Agent 在干净的上下文中工作,不继承父级的完整历史

  • 编排器专注于协调,而非实现细节

  • 支持并行化:同时生成多个子 Agent 处理独立工作,稍后收集结果

4. 上下文工程与验证

上下文工程:Deep Agents 需要明确、详细、有意图的指令——何时规划、何时使用子 Agent、如何命名文件、如何与人类协作。这包括结构化输出、系统提示优化、上下文压缩和工具定义优化。

验证机制:通过自动化(LLM-as-a-Judge)或人工验证输出。尽管现代 LLM 在生成文本方面很有效,但仍存在幻觉、迎合性、提示注入等问题。验证使 Agent 更可靠、更适合生产环境。

实际应用案例

Deep Agents 架构已在多个生产级应用中得到验证:

商业产品

  • Claude Code:代码生成、重构和调试,通过规划和子 Agent 处理多文件任务

  • Deep Research:深度研究和信息综合,利用编排器协调搜索、分析和写作子 Agent

  • Manus:复杂工作流自动化

  • DAIR.AI Academy:客户支持系统,使用 Agentic RAG 架构

Kiro:IDE 中的 Deep Agent

Kiro 是一个 AI 驱动的 IDE 助手,完整实现了 Deep Agents 的架构模式。虽然不是基于 LangChain DeepAgents 库,但它体现了 Deep Agents 的核心设计思想。

架构特点:

  1. 任务规划与分解

    • 分析复杂开发任务并制定执行计划

    • 将大型重构分解为多个可管理的步骤

    • 在执行过程中动态调整策略

  2. 文件系统作为外部记忆

    • 直接读写项目文件管理上下文

    • 将分析结果、中间状态保存到文件

    • 突破对话上下文窗口限制

  3. 子 Agent 委派系统

    • context-gatherer:专门探索代码库、识别相关文件和依赖关系

    • general-task-execution:处理独立的开发子任务

    • 每个子 Agent 拥有隔离的上下文和专门的工具集

  4. 丰富的上下文工程

    • 详细的系统提示和角色定义

    • Steering files:项目特定的规范和最佳实践

    • MCP(Model Context Protocol)集成:扩展工具能力

    • Powers 系统:模块化的功能包

典型工作流示例:

开发者:"修复用户登录模块的认证 bug"
  ↓
Kiro 分析任务复杂度
  ↓
调用 context-gatherer 子 Agent
  ↓ (子 Agent 在隔离上下文中)
  - 搜索认证相关文件
  - 分析依赖关系
  - 识别测试文件
  ↓
子 Agent 返回:
  - src/auth/login.ts
  - src/middleware/auth.ts
  - tests/auth.test.ts
  ↓
Kiro 读取相关文件
  ↓
制定修复计划:
  1. 复现 bug
  2. 定位问题代码
  3. 实现修复
  4. 更新测试
  5. 验证修复
  ↓
执行修改(必要时将日志写入文件)
  ↓
运行测试验证
  ↓
向开发者报告结果

实际场景:

  • 代码库探索:在不熟悉的项目中快速定位相关代码

  • 多文件重构:协调跨多个文件的代码修改

  • Bug 调查:追踪问题根源,分析调用链

  • 测试生成:理解实现后生成对应测试

  • 文档更新:根据代码变更同步更新文档

为什么 Kiro 是 Deep Agent 的好例子:

Kiro 证明了 Deep Agents 不是特定框架的专利,而是一种可以在不同系统中实现的架构模式。它展示了如何将规划、记忆管理、子 Agent 委派和上下文工程整合到实际的开发工具中,为开发者提供真正的生产力提升。

何时使用 Deep Agents

根据任务复杂度选择合适的架构:

场景

推荐方案

简单工具调用

基础 ReAct 循环

上下文溢出

添加文件工具

多步骤任务失控

添加规划工具

需要专业化处理

引入子 Agent

生产级复杂系统

完整 Deep Agent 架构

不要为简单任务构建复杂系统。但当你需要可靠执行研究、编码或分析工作流时,这些模式能将浅层 Agent 转变为深度 Agent。

LangChain DeepAgents:概念的工程实现

理解了 Deep Agents 的概念后,我们来看 LangChain 团队如何将其工程化。

什么是 LangChain DeepAgents

LangChain DeepAgents 是一个独立的 Python 库,将 Deep Agents 的架构模式封装为开箱即用的工具。它基于 LangGraph 构建,提供了实现上述四大核心模式的标准化方案。

LangChain DeepAgents 的核心特性

1. 内置规划工具

  • write_todos:结构化任务分解和进度追踪

  • 动态计划调整能力

2. 文件系统工具集

  • lsread_filewrite_fileedit_file

  • 自动上下文管理,突破 token 限制

3. 子 Agent 生成

  • task 工具:一键生成专门子 Agent

  • 自动上下文隔离和结果集成

4. 持久化记忆

  • 集成 LangGraph Store

  • 跨会话信息保存和检索

技术架构

LangChain DeepAgents 构建在成熟的生态之上:

┌─────────────────────────────────────┐
│      LangChain DeepAgents           │
│  (Planning + Memory + Subagents)    │
├─────────────────────────────────────┤
│         LangGraph                   │
│  (Graph Execution + State Mgmt)     │
├─────────────────────────────────────┤
│         LangChain                   │
│  (Tools + Model Integrations)       │
└─────────────────────────────────────┘
  • LangGraph:提供底层图执行和状态管理

  • LangChain:工具和模型集成

  • LangSmith:可观测性、评估和部署

快速开始

from deepagents import create_deep_agent

# 创建 deep agent
agent = create_deep_agent(
    model=your_llm_model,
    tools=[your_tools],
    # 可选:配置规划、文件系统、子 agent 等
)

# 使用所有 LangGraph 特性
# - 流式输出
# - 检查点
# - 人机协作
# - LangGraph Studio 可视化

核心是 create_deep_agent 函数,返回编译好的 LangGraph StateGraph,支持流式、检查点、人机协作等所有 LangGraph 特性。

为什么选择 LangChain DeepAgents

开箱即用:无需从零实现 Deep Agents 模式

生态集成:与 LangChain/LangGraph/LangSmith 无缝协作

生产验证:架构灵感来自 Claude Code 等成功应用

标准化:统一的 API 和最佳实践

Deep Agents 生态系统

Deep Agents 不是 LangChain 独有的概念。多个框架和团队都在实现类似模式:

  • LangChain DeepAgents:本文重点介绍的标准化实现

  • Pydantic AI:将 Deep Agent 模式引入 Pydantic 生态

  • Claude Code:Anthropic 的代码助手,Deep Agents 概念的灵感来源之一

  • 自定义实现:基于 OpenAI、Anthropic API 的定制方案

  • 研究项目:ReasoningBank、Agentic Context Engineering 等学术探索

关键洞察:理解架构模式比绑定特定工具更重要。Deep Agents 的核心是设计思想,而非具体实现。

构建 Deep Agents 的实践建议

渐进式复杂度

从最简单的可行方案开始,只在遇到限制时添加层次:

简单任务 → 基础 ReAct 循环
上下文溢出 → 添加文件工具
任务失控 → 添加规划工具
需要专业化 → 引入子 Agent
生产级系统 → 完整架构 + 验证

详细的系统提示

不要用一句话提示,而是提供完整的指令手册:

# ❌ 糟糕的提示
"You are a helpful coding assistant."

# ✅ 优秀的提示
"""You are a coding assistant that follows this workflow:

1. Planning Phase:
   - Use track_plan to break down the task into steps
   - Identify which steps need sub-agents

2. Execution Phase:
   - Write intermediate results to files (not context)
   - Use read_file to reference previous work
   - Keep context clean and focused

3. Delegation:
   - When encountering a distinct subtask, call spawn_agent
   - Provide specific context and tools to sub-agent
   - Wait for result before continuing

4. Edge Cases:
   - If a file is >1000 lines, summarize before reading
   - If a test fails, write failure to debug.log
   - If stuck after 3 attempts, ask for human input

5. Tool Usage Patterns:
   - write_file: For new content or complete rewrites
   - edit_file: For targeted modifications
   - read_file: Only read sections you need
   ...
"""

为什么有效:LLM 是下一个 token 预测器。详细的提示和示例为它们提供了更好的完成模式,每个 few-shot 示例都能减少失败模式。

工具设计原则

  • 文件工具:给 Agent 提供持久化能力,而不是依赖上下文

  • 规划工具:强制结构化思考,即使工具本身是 no-op

  • 委派工具:清晰定义子 Agent 的边界和职责

  • 验证工具:自动或人工检查输出质量

总结

Deep Agents 代表了 AI Agent 架构的演进方向——从简单的工具调用循环,到具备规划、记忆、协作和验证能力的智能系统。这不是模型大小或新算法的突破,而是架构设计的进化。

核心要点:

  1. Deep Agents 是架构概念,不是特定工具或框架

  2. 四大核心模式:规划、外部记忆、子 Agent、上下文工程与验证

  3. LangChain DeepAgents 提供了这些模式的标准化工程实现

  4. 渐进式采用:根据实际需求逐步增加复杂度,避免过度设计

  5. 生态开放:多个框架都在实现类似模式,概念比工具更重要

最重要的认知:那些让你印象深刻的复杂推理 Agent,并不是使用了秘密模型或奇特架构。它们只是在相同的基础循环(LLM + 工具调用)周围添加了更好的脚手架:规划工具、文件系统、子 Agent 和详细提示。

对于需要构建能够处理复杂、长时任务的 AI 应用的开发者来说,理解并应用 Deep Agents 的架构模式,将是通往生产级 Agent 系统的关键一步。从简单开始,在遇到瓶颈时逐步添加复杂度,这才是正确的工程实践。


参考资源: