模型与提供商
支持的模型概览
DeepAgents 与任何支持工具调用(Tool Calling)能力的 LLM 模型兼容。这意味着模型必须能够:
- 理解工具定义和参数
- 决定何时以及如何调用工具
- 以结构化的方式响应工具调用
主流模型提供商
Anthropic Claude 系列
推荐模型:
- Claude 3.5 Sonnet(生产环境推荐)
- Claude 3.5 Haiku(轻量级、快速)
- Claude 3 Opus(高级推理)
特点:
- 强大的推理能力和上下文理解
- 原生支持工具使用
- 支持扩展思考(Extended Thinking)
配置方式:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="anthropic:claude-3-5-sonnet-20241022",
tools=[your_tools],
)
OpenAI GPT 系列
推荐模型:
- GPT-4o(多模态能力强)
- GPT-4 Turbo
- GPT-4 Mini(成本优化)
特点:
- 稳定的工具调用能力
- 支持多模态输入
- API 非常稳定成熟
配置方式:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="openai:gpt-4o",
tools=[your_tools],
)
Google Gemini
推荐模型:
- Gemini 2.0 Flash
- Gemini 1.5 Pro
- Gemini 1.5 Flash(轻量级)
特点:
- 先进的推理能力
- 支持大量上下文
- 性能与成本具有竞争力
配置方式:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="google:gemini-2.0-flash",
tools=[your_tools],
)
其他提供商
Cohere、Mistral、Groq 等也提供具有工具调用能力的模型。完整列表和配置详见 LangChain 官方文档。
模型选择指南
性能维度对比
| 模型 | 推理能力 | 速度 | 成本 | 上下文 | 最佳用途 |
|---|---|---|---|---|---|
| GPT-4o | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 128K | 复杂推理、多模态 |
| Claude 3.5 Sonnet | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | 200K | 一般用途、长文本 |
| Gemini 2.0 Flash | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐ | 1M | 快速响应、大量数据 |
| GPT-4 Mini | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 128K | 简单任务、成本控制 |
| Claude 3.5 Haiku | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | 200K | 快速反应、开发测试 |
选型建议
生产环境:
- 如果需要最佳性能 → Claude 3.5 Sonnet
- 如果需要多模态支持 → GPT-4o
- 如果需要处理大量数据 → Gemini 2.0 Flash
开发测试:
- 快速迭代 → Claude 3.5 Haiku 或 GPT-4 Mini
- 降低成本 → 任何 Mini/Flash 系列
特殊场景:
- 需要长期记忆 → 任何支持大上下文的模型
- 需要代码生成 → GPT-4o 或 Claude 系列
- 需要实时响应 → Gemini 2.0 Flash
模型配置
基本配置
最简单的方式是使用模型字符串标识符:
from deepagents import create_deep_agent
agent = create_deep_agent(
model="openai:gpt-4o",
tools=[search_tool, read_file_tool],
)
高级配置
对于需要自定义参数的场景,使用 init_chat_model() 函数:
from langchain.chat_models import init_chat_model
from deepagents import create_deep_agent
model = init_chat_model(
model="anthropic:claude-3-5-sonnet-20241022",
temperature=0.7, # 控制创意程度(0.0-1.0)
max_tokens=2000, # 单次响应最大字数
top_p=0.9, # 核采样参数
)
agent = create_deep_agent(
model=model,
tools=[your_tools],
)