🚀 DeepAgents 快速开始
Anthropic 的高级 AI Agent 框架,支持规划、工具执行、上下文管理和子代理委派, 轻松构建复杂的智能应用。
📚 什么是 DeepAgents?
DeepAgents 是 Anthropic 提供的高级 AI Agent 框架, 专为构建具有高级推理能力的智能代理设计。 它在 LangChain 1.0 的基础上,提供了更强大的规划、执行和委派能力。
| 特性 | 说明 | 应用场景 |
|---|---|---|
| 自动规划 | 内置 write_todos 工具分解任务 | 研究报告、复杂分析 |
| 工具集成 | 自动访问网络搜索和文件系统 | 数据收集、文件管理 |
| 上下文管理 | 文件系统工具卸载大数据 | 处理超长内容 |
| 子代理委派 | 动态创建专门化子代理 | 多步骤任务分解 |
| 信息综合 | 编译和整合多源信息 | 报告生成、总结 |
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: 安装依赖包
# 安装 DeepAgents 和 Tavily 搜索工具
pip install deepagents tavily-python
# 如果需要 LangChain 集成
pip install langchain langchain-anthropic
步骤 2: 配置 API 密钥
# 设置 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"
- Anthropic API: https://console.anthropic.com/
- Tavily Search: https://tavily.com/
🎯 创建第一个 DeepAgent
步骤 1: 定义搜索工具
"""
创建第一个 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
"""
初始化 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
"""
使用 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 的强大之处在于其自动规划和执行能力。 让我们看看它如何自动完成一个复杂的研究任务:
"""
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 会自动:
- 制定计划:使用内置 write_todos 工具分解研究任务
- 执行搜索:对每个子任务进行有针对性的网络搜索
- 管理数据:使用文件系统工具保存和读取大量搜索结果
- 委派子任务:如需深度分析,创建专门的子代理
- 综合信息:将所有信息整合成连贯的报告
💡 核心概念
1. Agent Harness(代理框架)
DeepAgent 使用 Harness 框架来编排代理行为,管理:
- 工具调用:自动处理工具的执行和响应
- 状态管理:维护对话和任务状态
- 执行流程:控制任务的执行顺序和逻辑
- 错误处理:处理工具调用失败和重试逻辑
2. 内置工具
DeepAgent 自动提供以下内置工具:
| 工具 | 功能 | 用途 |
|---|---|---|
write_todos |
创建任务列表 | 自动规划和分解复杂任务 |
write_file |
写入文件 | 保存大量数据,减少上下文压力 |
read_file |
读取文件 | 加载已保存的数据进行分析 |
list_files |
列出文件 | 查看已保存的文件列表 |
3. 中间件架构
DeepAgent 支持中间件系统,允许在请求和响应之间插入自定义逻辑:
- 日志记录:追踪所有工具调用和响应
- 安全检查:验证工具调用的权限和安全性
- 性能监控:测量工具执行时间
- 内容过滤:过滤敏感信息
4. 子代理委派
DeepAgent 可以动态创建专门化子代理来处理特定任务:
# 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. 启用追踪和监控
import os
# 启用 LangSmith 追踪
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-api-key"
# 所有 DeepAgent 调用会自动追踪
4. 优化工具设计
设计工具时应:
- 单一职责:每个工具只做一件事
- 清晰文档:提供详细的 docstring
- 类型提示:使用 Python 类型注解
- 错误处理:处理异常并返回有意义的错误信息
🚀 下一步
掌握了 DeepAgent 的基础后,继续探索:
❓ 常见问题
Q1: DeepAgent 和普通 Agent 有什么区别?
| 特性 | 普通 Agent | DeepAgent |
|---|---|---|
| 规划能力 | 需要手动规划 | 内置 write_todos 自动规划 |
| 上下文管理 | 受限于上下文窗口 | 自动文件系统卸载 |
| 子任务委派 | 不支持 | 动态创建子代理 |
| 复杂任务 | 需要人工干预 | 自动分解和执行 |
Q2: 如何调试 DeepAgent?
使用 LangSmith 追踪查看详细的执行轨迹:
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 会自动管理执行,但你可以通过中间件添加超时控制:
# 在后续的定制化章节会详细介绍
# 如何通过中间件控制执行时间
Q5: 文件系统工具保存在哪里?
默认情况下,文件保存在临时目录中。 你可以在定制化配置中指定存储位置。