第 9 章 · Deep Agents 入门:create_deep_agent
本章目标:
- 理解 Deep Agents 的定位:LangGraph 上层的 Agent Harness
- 掌握 create_deep_agent() 的基本用法
- 学会配置多 Provider(OpenAI、Anthropic、Google)
- 理解 Skills 与 Memory 的基础概念
9.1 Deep Agents 是什么
Deep Agents 是 LangChain 提供的 Agent Harness,在 LangGraph 之上提供:
- 简化的 API(一行代码创建 Agent)
- 内置的上下文管理
- 文件系统工具
- 子代理支持
- 记忆系统
对比:LangGraph 是 Runtime(运行时),Deep Agents 是 Harness(Harness 层)
9.2 快速开始
python
from deepagents import create_deep_agent
# 基本用法
agent = create_deep_agent(
model="openai:gpt-4o", # provider:model 格式
tools=[],
system_prompt="你是一个有帮助的助手"
)
# 执行
result = agent.invoke({
"messages": [{"role": "user", "content": "你好"}]
})9.3 多 Provider 配置
python
# OpenAI
agent_openai = create_deep_agent(
model="openai:gpt-4o",
tools=[get_weather]
)
# Anthropic
agent_anthropic = create_deep_agent(
model="anthropic:claude-sonnet-4-6",
tools=[get_weather]
)
# Google Gemini
agent_google = create_deep_agent(
model="google_genai:gemini-2.0-flash",
tools=[get_weather]
)
# OpenRouter(多模型聚合)
agent_openrouter = create_deep_agent(
model="openrouter:anthropic/claude-3.5-sonnet",
tools=[get_weather]
)9.4 工具定义
python
from deepagents import tool
@tool
def get_weather(city: str) -> str:
"""获取指定城市的天气
Args:
city: 城市名称(中文或英文)
Returns:
天气信息字符串
"""
# 实际项目应调用真实 API
return f"{city}今天晴朗,25°C"
@tool
def calculate(expression: str) -> float:
"""计算数学表达式
Args:
expression: 数学表达式字符串
Returns:
计算结果
"""
return eval(expression) # 生产环境请用安全计算器
agent = create_deep_agent(
model="openai:gpt-4o",
tools=[get_weather, calculate]
)9.5 与 LangGraph 的关系
python
# Deep Agents 底层使用 LangGraph
from deepagents import create_deep_agent
from langgraph.graph import StateGraph
# 方式一:使用 Deep Agents(高层抽象)
agent = create_deep_agent(
model="openai:gpt-4o",
tools=[get_weather]
)
# 方式二:使用 LangGraph(底层控制)
# 详见第 4-8 章
graph = StateGraph(...)
graph.add_node(...)
...💡 建议:快速原型用 Deep Agents,生产级控制用 LangGraph。
本章小结
- Deep Agents 是 LangGraph 上层的简化 Harness
- 支持多种 Provider:openai、anthropic、google_genai、openrouter
@tool装饰器定义工具,docstring 自动生成描述- 快速开发选 Deep Agents,精细控制选 LangGraph
🛠️ 动手实践
- 创建带天气工具的 Deep Agent,测试多种 Provider
- 实现自定义工具(搜索、计算),组合使用
- 对比 Deep Agents 与 LangGraph 的执行结果差异
🧪 随堂测验
点击你认为正确的选项。答错时会展示正确答案与原因解析。
1. Deep Agents 与 LangGraph 的关系是?
2. create_deep_agent 的 model 参数格式是?
3. @tool 装饰器的 docstring 作用是什么?
4. 生产环境中推荐使用哪个框架?