📚 什么是 DeepAgents?

DeepAgents 是 Anthropic 提供的高级 AI Agent 框架, 专为构建具有高级推理能力的智能代理设计。 它在 LangChain 1.0 的基础上,提供了更强大的规划、执行和委派能力。

💡 DeepAgents 核心特性
特性 说明 应用场景
自动规划 内置 write_todos 工具分解任务 研究报告、复杂分析
工具集成 自动访问网络搜索和文件系统 数据收集、文件管理
上下文管理 文件系统工具卸载大数据 处理超长内容
子代理委派 动态创建专门化子代理 多步骤任务分解
信息综合 编译和整合多源信息 报告生成、总结
graph TB User["用户请求"] --> DeepAgent["DeepAgent
create_deep_agent()"] DeepAgent --> Planning["自动规划
write_todos"] DeepAgent --> Tools["工具集成
internet_search"] DeepAgent --> Context["上下文管理
文件系统工具"] DeepAgent --> Subagents["子代理委派
专门化 Agent"] Planning --> Execution["执行层"] Tools --> Execution Context --> Execution Subagents --> Execution Execution --> Synthesis["信息综合"] Synthesis --> Result["最终输出"] style DeepAgent fill:#3b82f6,color:#fff style Planning fill:#10b981,color:#fff style Tools fill:#f59e0b,color:#fff style Context fill:#8b5cf6,color:#fff style Subagents fill:#ec4899,color:#fff style Result fill:#10b981,color:#fff

⚙️ 安装和配置

步骤 1: 安装依赖包

Bash 🟢 基础
# 安装 DeepAgents 和 Tavily 搜索工具
pip install deepagents tavily-python

# 如果需要 LangChain 集成
pip install langchain langchain-anthropic

步骤 2: 配置 API 密钥

Bash 🟢 基础
# 设置 Anthropic API 密钥(必需)
export ANTHROPIC_API_KEY="your-anthropic-api-key"

# 设置 Tavily API 密钥(用于网络搜索)
export TAVILY_API_KEY="your-tavily-api-key"

# 可选:启用 LangSmith 追踪
export LANGCHAIN_TRACING_V2="true"
export LANGCHAIN_API_KEY="your-langsmith-api-key"
📌 获取 API 密钥

🎯 创建第一个 DeepAgent

步骤 1: 定义搜索工具

Python 🟢 基础
"""
创建第一个 DeepAgent - 研究助手
"""
import os
from typing import Literal
from tavily import TavilyClient
from deepagents import create_deep_agent

# 初始化 Tavily 搜索客户端
tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])

def internet_search(
    query: str,
    max_results: int = 5,
    topic: Literal["general", "news", "finance"] = "general",
    include_raw_content: bool = False,
) -> dict:
    """
    执行网络搜索

    Args:
        query: 搜索查询字符串
        max_results: 返回的最大结果数
        topic: 搜索主题(general, news, finance)
        include_raw_content: 是否包含原始内容

    Returns:
        搜索结果字典
    """
    return tavily_client.search(
        query,
        max_results=max_results,
        include_raw_content=include_raw_content,
        topic=topic,
    )

步骤 2: 创建 DeepAgent

Python 🟡 中级
"""
初始化 DeepAgent 研究助手
"""
# 定义系统提示词
research_instructions = """你是一位专业的研究专家。你的任务是进行深入研究,然后撰写精炼的报告。

你可以使用网络搜索工具作为主要的信息收集手段。

## 可用工具

### `internet_search`
使用此工具对给定的查询进行网络搜索。你可以指定:
- 返回结果的最大数量
- 搜索主题(general, news, finance)
- 是否包含原始内容

## 工作流程

1. **理解需求**: 仔细分析用户的研究请求
2. **制定计划**: 使用内置的 write_todos 工具分解研究任务
3. **执行搜索**: 进行多次有针对性的搜索
4. **整合信息**: 将搜索结果综合成连贯的报告
5. **撰写报告**: 提供清晰、有见地的最终输出

注意:对于大量搜索结果,可以使用文件系统工具(write_file, read_file)来管理数据。
"""

# 创建 DeepAgent
agent = create_deep_agent(
    tools=[internet_search],
    system_prompt=research_instructions
)

print("✅ DeepAgent 研究助手已创建!")

步骤 3: 执行 Agent

Python 🟡 中级
"""
使用 DeepAgent 进行研究
"""
# 提交研究请求
result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": "什么是 LangGraph?请提供详细的介绍和主要特性。"
    }]
})

# 打印 Agent 的响应
response = result["messages"][-1].content
print("=" * 60)
print("研究报告:")
print("=" * 60)
print(response)
print("=" * 60)

# 示例输出:
# ============================================================
# 研究报告:
# ============================================================
#
# # LangGraph 深度解析
#
# ## 概述
# LangGraph 是 LangChain 生态系统的核心组件,用于构建
# 复杂的、有状态的 AI 应用...
#
# ## 主要特性
# 1. **状态管理**: 使用 StateGraph 管理对话状态
# 2. **持久化**: 支持 Checkpointer 长期存储
# 3. **人工介入**: Human-in-the-Loop 工作流
# ...
# ============================================================

🤖 DeepAgent 自动化能力演示

DeepAgent 的强大之处在于其自动规划和执行能力。 让我们看看它如何自动完成一个复杂的研究任务:

Python 🔴 高级 - 完整示例
"""
DeepAgent 自动化工作流演示
"""
import os
from typing import Literal
from tavily import TavilyClient
from deepagents import create_deep_agent

# 初始化
tavily_client = TavilyClient(api_key=os.environ["TAVILY_API_KEY"])

def internet_search(
    query: str,
    max_results: int = 5,
    topic: Literal["general", "news", "finance"] = "general",
    include_raw_content: bool = False,
):
    """网络搜索工具"""
    return tavily_client.search(
        query,
        max_results=max_results,
        include_raw_content=include_raw_content,
        topic=topic,
    )

# 创建高级研究 Agent
research_instructions = """你是顶级研究分析师。你的任务是:

1. **深度研究**: 对给定主题进行全面调查
2. **多角度分析**: 从技术、商业、应用等多个维度分析
3. **数据综合**: 整合多个来源的信息
4. **结构化输出**: 生成清晰、专业的研究报告

## 工作方法

- 使用 `write_todos` 工具制定研究计划
- 使用 `internet_search` 收集信息
- 使用 `write_file` 保存大量数据(避免上下文溢出)
- 使用 `read_file` 读取已保存的数据
- 如需深入分析特定方面,可以委派子代理

## 输出格式

# [主题]研究报告

## 1. 执行摘要
...

## 2. 技术分析
...

## 3. 应用场景
...

## 4. 优势与挑战
...

## 5. 未来趋势
...

## 6. 参考来源
...
"""

agent = create_deep_agent(
    tools=[internet_search],
    system_prompt=research_instructions
)

# 执行复杂研究任务
result = agent.invoke({
    "messages": [{
        "role": "user",
        "content": """请深入研究"LangChain 1.0 的中间件系统"。

我需要了解:
1. 中间件系统的技术架构
2. 主要应用场景和最佳实践
3. 与 LangGraph 的集成方式
4. 生产环境部署建议

请提供详尽的研究报告。"""
    }]
})

# DeepAgent 自动执行的步骤:
#
# 1️⃣ **自动规划** (write_todos):
#    - 任务 1: 搜索 LangChain 1.0 中间件架构
#    - 任务 2: 查找应用场景和最佳实践
#    - 任务 3: 研究 LangGraph 集成方式
#    - 任务 4: 收集部署建议
#
# 2️⃣ **执行搜索** (internet_search):
#    - 搜索 "LangChain 1.0 middleware architecture"
#    - 搜索 "LangChain middleware use cases"
#    - 搜索 "LangGraph middleware integration"
#    - 搜索 "LangChain production deployment"
#
# 3️⃣ **上下文管理** (write_file/read_file):
#    - 将大量搜索结果写入文件
#    - 逐步读取和分析数据
#
# 4️⃣ **信息综合**:
#    - 整合所有收集到的信息
#    - 生成结构化报告
#
# 5️⃣ **最终输出**:
#    - 返回完整的研究报告

# 打印最终报告
print(result["messages"][-1].content)
🔍 DeepAgent 自动化流程

在上面的示例中,DeepAgent 会自动:

  1. 制定计划:使用内置 write_todos 工具分解研究任务
  2. 执行搜索:对每个子任务进行有针对性的网络搜索
  3. 管理数据:使用文件系统工具保存和读取大量搜索结果
  4. 委派子任务:如需深度分析,创建专门的子代理
  5. 综合信息:将所有信息整合成连贯的报告

💡 核心概念

1. Agent Harness(代理框架)

DeepAgent 使用 Harness 框架来编排代理行为,管理:

  • 工具调用:自动处理工具的执行和响应
  • 状态管理:维护对话和任务状态
  • 执行流程:控制任务的执行顺序和逻辑
  • 错误处理:处理工具调用失败和重试逻辑

2. 内置工具

DeepAgent 自动提供以下内置工具:

工具 功能 用途
write_todos 创建任务列表 自动规划和分解复杂任务
write_file 写入文件 保存大量数据,减少上下文压力
read_file 读取文件 加载已保存的数据进行分析
list_files 列出文件 查看已保存的文件列表

3. 中间件架构

DeepAgent 支持中间件系统,允许在请求和响应之间插入自定义逻辑:

  • 日志记录:追踪所有工具调用和响应
  • 安全检查:验证工具调用的权限和安全性
  • 性能监控:测量工具执行时间
  • 内容过滤:过滤敏感信息

4. 子代理委派

DeepAgent 可以动态创建专门化子代理来处理特定任务:

Python
# DeepAgent 自动创建子代理的场景:
#
# 主 Agent: 研究 LangChain 1.0
#   ├─ 子 Agent 1: 专门研究 Agent 架构
#   ├─ 子 Agent 2: 专门研究 RAG 实现
#   └─ 子 Agent 3: 专门研究最佳实践
#
# 每个子 Agent 独立执行,然后将结果汇总给主 Agent

🎯 常见用例

用例 1: 自动化研究报告

DeepAgent 特别适合需要收集、分析和综合大量信息的任务:

  • 技术调研报告
  • 市场分析
  • 竞品对比
  • 文献综述

用例 2: 复杂问题求解

通过自动规划和委派解决多步骤问题:

  • 软件架构设计
  • 故障排查和诊断
  • 数据分析流程
  • 业务流程优化

用例 3: 知识库查询

结合 RAG 技术,DeepAgent 可以深度探索知识库:

  • 多轮深度问答
  • 跨文档信息提取
  • 关联分析
  • 知识图谱构建

✨ 最佳实践

1. 编写清晰的系统提示词

好的系统提示词应该:

  • 明确定义 Agent 的角色和职责
  • 描述可用工具及其使用方法
  • 提供工作流程指导
  • 说明输出格式要求

2. 合理使用文件系统工具

当处理大量数据时:

  • 使用 write_file 保存搜索结果,避免上下文溢出
  • 使用 read_file 分批读取和处理数据
  • 使用 list_files 管理已保存的文件

3. 启用追踪和监控

Python
import os

# 启用 LangSmith 追踪
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"

# 所有 DeepAgent 调用会自动追踪

4. 优化工具设计

设计工具时应:

  • 单一职责:每个工具只做一件事
  • 清晰文档:提供详细的 docstring
  • 类型提示:使用 Python 类型注解
  • 错误处理:处理异常并返回有意义的错误信息

🚀 下一步

掌握了 DeepAgent 的基础后,继续探索:

📖 推荐学习路径
主题 内容 难度
定制化 自定义 Agent 行为和配置 🟡 中级
Harness 系统 深入理解 Agent 框架 🔴 高级
后端配置 多后端支持和切换 🟡 中级
子代理 创建和管理子代理 🔴 高级
人工介入 Human-in-the-Loop 工作流 🟡 中级
长期记忆 持久化和记忆管理 🔴 高级
中间件 中间件集成和生产配置 🔴 高级

❓ 常见问题

Q1: DeepAgent 和普通 Agent 有什么区别?

特性 普通 Agent DeepAgent
规划能力 需要手动规划 内置 write_todos 自动规划
上下文管理 受限于上下文窗口 自动文件系统卸载
子任务委派 不支持 动态创建子代理
复杂任务 需要人工干预 自动分解和执行

Q2: 如何调试 DeepAgent?

使用 LangSmith 追踪查看详细的执行轨迹:

Python
import os

# 启用追踪
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"

# 执行 Agent
result = agent.invoke({...})

# 在 LangSmith UI 中查看:
# - 所有工具调用
# - 中间结果
# - 子代理执行
# - 错误和重试

Q3: DeepAgent 支持哪些模型?

DeepAgent 主要支持 Anthropic Claude 系列模型:

  • Claude Opus 4.5(最强大)
  • Claude Sonnet 4.5(推荐)
  • Claude Haiku 4.0(最快)

Q4: 如何限制 Agent 的执行时间?

DeepAgent 会自动管理执行,但你可以通过中间件添加超时控制:

Python
# 在后续的定制化章节会详细介绍
# 如何通过中间件控制执行时间

Q5: 文件系统工具保存在哪里?

默认情况下,文件保存在临时目录中。 你可以在定制化配置中指定存储位置。

📖 参考资源