Deep Agents 可与任何 LangChain 聊天模型 配合使用,只要该模型支持 工具调用.
支持的模型
以 provider:model 格式指定模型(例如, google_genai:gemini-3.5-flash, openai:gpt-5.4, or anthropic:claude-sonnet-4-6)格式指定模型。提供者前缀用于选择 LangChain 集成,冒号后的所有内容将作为模型标识符传递给该提供者。如需有效的提供者字符串,请参阅 model_provider 参数init_chat_model。如需特定于提供者的配置,请参阅 聊天模型集成.
模型标识符必须与提供者期望的格式匹配。某些提供者使用简单的名称,如 gpt-5.5;其他提供者使用命名空间 ID 或部署路径,如 zai-org/GLM-5.2,因此完整的 Deep Agents 字符串应为 baseten:zai-org/GLM-5.2。请查看提供者的模型目录或集成文档以获取当前的标识符。
建议的模型
这些模型在 Deep Agents 评估套件上表现良好,该评估套件用于测试基本代理操作。通过这些评估对于在更长、更复杂的任务上获得良好性能是必要但不充分的条件。
| 提供者 | 模型 |
|---|---|
gemini-3.1-pro-preview, gemini-3.5-flash | |
| OpenAI | gpt-5.5, gpt-5.4 |
| Anthropic | claude-opus-4-8, claude-opus-4-7, claude-opus-4-6 |
| 开源模型 | GLM-5.2, Kimi-K2.7 Code, MiniMax-M3 |
开放权重模型可通过以下提供商获取 Baseten, Fireworks, OpenRouter和 Ollama.
模型评估
Deep Agents 评估套件 测试热门模型:
更多信息,请参阅 评估运行.
配置模型参数
传递模型字符串至 create_deep_agent in 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", # [!code highlight]
)
agent = create_deep_agent(model=model)
from langchain_google_genai import ChatGoogleGenerativeAI
from deepagents import create_deep_agent
model = ChatGoogleGenerativeAI(
model="gemini-3.1-pro-preview",
thinking_level="medium", # [!code highlight]
)
agent = create_deep_agent(model=model)
提供商配置
A ProviderProfile 包初始化参数,当您提供 provider:model 字符串时适用。在创建深度代理时。当您使用 init_chat_model.
您可以在两个级别注册,两者可以共存:
- 提供商级别 — 一个裸提供商密钥,例如
"openai"适用于来自该openaiprovider. - 模型级别 — a
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.5",
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.5"),
)
了解更多
- - LangChain 中的模型:聊天模型功能,包括工具调用、结构化输出和多模态