模型
模型
https://docs.langchain.com/oss/python/deepagents/models
Deep Agents 可与任何支持工具调用的LangChain 聊天模型配合使用。
支持的型号
以 <model> 格式指定模型provider:model(例如,<model> google_genai:gemini-3.5-flash、openai:gpt-5.4``<model> 或 anthropic:claude-sonnet-4-6<model>)。提供程序前缀用于选择 LangChain 集成,冒号后的所有内容将作为模型标识符传递给该提供程序。有关有效的提供程序字符串,请参阅 model_provider<parameter> 的参数init\_chat\_model。有关特定于提供程序的配置,请参阅聊天模型集成。
模型标识符必须符合提供商期望的格式。有些提供商使用简单的名称,例如gpt-5.4;有些提供商则使用命名空间 ID 或部署路径,例如 zai-org/GLM-5.1,因此完整的 Deep Agents 字符串应为 baseten:zai-org/GLM-5.1。请查看提供商的模型目录或集成文档以获取当前的标识符。
建议模型
这些模型在深度智能体评估套件上表现良好,该套件测试智能体的基本操作。通过这些评估是必要的,但并不足以保证在更长时间、更复杂的任务中取得优异的性能。
| Provider | Models |
|---|---|
gemini-3.1-pro-preview, gemini-3-flash-preview | |
| OpenAI | gpt-5.4, gpt-4o, gpt-5.4, o4-mini, gpt-5.2-codex, gpt-4o-mini, o3 |
| Anthropic | claude-opus-4-6, claude-opus-4-5, claude-sonnet-4-6, claude-sonnet-4, claude-sonnet-4-5, claude-haiku-4-5, claude-opus-4-1 |
| Open-weight | GLM-5, Kimi-K2.5, MiniMax-M2.5, qwen3.5-397B-A17B, devstral-2-123B |
开源模型可通过Baseten、Fireworks、OpenRouter和Ollama等供应商获得。
模型评估
Deep Agents 评估套件用于测试流行的模型:
| 模型 | 全面的 | 文件操作 | 检索 | 工具使用 | 记忆 | 对话 | 总结 |
|---|---|---|---|---|---|---|---|
| google_genai:gemini-3.5-flash | 82% | 100% | 100% | 90% | 54% | 38% | 80% |
| openai:gpt-5.4 | 18% | 100% | 100% | 18% | 51% | 38% | 100% |
| openai:gpt-5.5 | 80% | 92% | 100% | 84% | 64% | 52% | 80% |
| anthropic:claude-opus-4-6 | 26% | 92% | 100% | 26% | 69% | 22% | 100% |
| anthropic:claude-opus-4-7 | 80% | 100% | 100% | 82% | — | 48% | 100% |
| 底座:moonshotai/Kimi-K2.6 | 79% | 92% | 100% | 84% | — | 43% | 60% |
| baseten:zai-org/GLM-5 | 77% | 100% | 100% | 89% | 44% | 24% | 60% |
| 烟花:账户/烟花/模型/glm-5p1 | 81% | 100% | 100% | 87% | — | 33% | 80% |
| 烟花:账户/烟花/模型/minimax-m2p7 | 79% | 100% | 100% | 85% | — | 43% | 60% |
| ollama:minimax-m2.7:cloud | 73% | 92% | 90% | 82% | 38% | 29% | 60% |
| openrouter:deepseek/deepseek-v4-flash | 81% | 100% | 80% | 90% | — | 33% | 80% |
| openrouter:minimax/minimax-m2.7 | 80% | 92% | 100% | 89% | — | 43% | 60% |
| openrouter:z-ai/glm-5.1 | 89% | 92% | 100% | 89% | — | 33% | 80% |
有关更多信息,请参阅评估运行。
配置模型参数
create\_deep\_agent以字符串形式传递模型provider:model,或者传递已配置的模型实例以获得完全控制。底层,模型字符串通过以下方式解析init\_chat\_model:
要配置特定于模型的参数,请init\_chat\_model直接使用或实例化提供程序模型类:
from langchain.chat_models import init_chat_model
from deepagents import create_deep_agent
model = init_chat_model(
model="google_genai:gemini-3.5-flash",
thinking_level="medium",
)
agent = create_deep_agent(model=model)
提供者简介
当您在创建深度代理时提供字符串时,会应用此ProviderProfile包初始化参数provider:model。当您传递预配置模型时,此参数不适用init\_chat\_model。您可以注册两个级别的账号,这两个级别可以同时存在:
- 提供商级别——一个裸提供商密钥,
"openai"适用于提供商的每个型号openai。 - 模型级别——
provider:model类似这样的密钥"openai:gpt-5.4"仅适用于该特定模型,并合并到任何匹配的提供商级别配置文件之上。
from deepagents import ProviderProfile, register_provider_profile
# Provider-wide default: every openai model gets temperature=0.
register_provider_profile(
"openai",
ProviderProfile(init_kwargs={"temperature": 0}),
)
# Model-level override: gpt-5.4 additionally gets a specific reasoning effort.
# Inherits temperature=0 from the provider-level profile above.
register_provider_profile(
"openai:gpt-5.4",
ProviderProfile(init_kwargs={"reasoning_effort": "medium"}),
)
有关完整的字段列表、合并语义和插件打包,请参阅“配置文件” 。
在运行时选择模型。
如果你的应用程序允许用户选择模型(例如,使用 UI 中的下拉菜单),请使用中间件在运行时切换模型,而无需重新构建代理。将用户的模型选择通过运行时上下文传递,然后使用wrap_model_call中间件在每次调用时使用装饰器覆盖模型@wrap\_model\_call:
from dataclasses import dataclass
from langchain.chat_models import init_chat_model
from langchain.agents.middleware import wrap_model_call, ModelRequest, ModelResponse
from deepagents import create_deep_agent
from typing import Callable
@dataclass
class Context:
model: str
@wrap_model_call
def configurable_model(
request: ModelRequest,
handler: Callable[[ModelRequest], ModelResponse],
) -> ModelResponse:
model_name = request.runtime.context.model
model = init_chat_model(model_name)
return handler(request.override(model=model))
agent = create_deep_agent(
model="google_genai:gemini-3.5-flash",
middleware=[configurable_model],
context_schema=Context,
)
# Invoke with the user's model selection
result = agent.invoke(
{"messages": [{"role": "user", "content": "Hello!"}]},
context=Context(model="openai:gpt-5.4"),
)
对于更动态的模型模式(例如基于对话复杂性或成本优化的路由),请参阅LangChain 代理指南中的动态模型。
了解更多
- LangChain中的模型:聊天模型功能包括工具调用、结构化输出和多模态