Skip to main content
Deep Agents 可与任何支持工具调用LangChain 聊天模型配合使用。

支持的模型

提供商:模型 格式指定模型(例如 google_genai:gemini-3.1-pro-previewopenai:gpt-5.4anthropic:claude-sonnet-4-6)。提供商前缀选择 LangChain 集成,冒号后的所有内容将作为模型标识符传递给该提供商。有关有效的提供商字符串,请参阅 init_chat_modelmodel_provider 参数。有关提供商特定配置,请参阅聊天模型集成 模型标识符必须符合提供商预期的格式。某些提供商使用简单名称(如 gpt-5.4);其他提供商使用带命名空间的 ID 或部署路径(如 zai-org/GLM-5.1),因此完整的 Deep Agents 字符串将是 baseten:zai-org/GLM-5.1。请查阅提供商的模型目录或集成文档以获取当前标识符。

推荐模型

这些模型在 Deep Agents 评估套件中表现良好,该套件测试基本代理操作。通过这些评估是必要条件,但不足以确保在更长、更复杂的任务中表现出色。
提供商模型
Googlegemini-3.1-pro-previewgemini-3-flash-preview
OpenAIgpt-5.4gpt-4ogpt-5.4o4-minigpt-5.2-codexgpt-4o-minio3
Anthropicclaude-opus-4-6claude-opus-4-5claude-sonnet-4-6claude-sonnet-4claude-sonnet-4-5claude-haiku-4-5claude-opus-4-1
开放权重GLM-5Kimi-K2.5MiniMax-M2.5qwen3.5-397B-A17Bdevstral-2-123B
开放权重模型可通过 BasetenFireworksOpenRouterOllama 等提供商使用。

配置模型参数

将模型字符串以 提供商:模型 格式传递给 create_deep_agent,或传递已配置的模型实例以进行完全控制。在底层,模型字符串通过 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.1-pro-preview",
    thinking_level="medium",
)
agent = create_deep_agent(model=model)
可用参数因提供商而异。有关提供商特定的配置选项,请参阅聊天模型集成页面。

提供商配置文件

ProviderProfile 封装了在创建深度代理时提供 提供商:模型 字符串时应用的初始化参数。当您传递使用 init_chat_model 预配置的模型时,它不适用。 您可以在两个级别注册,两者可以共存:
  • 提供商级别 — 裸提供商键(如 "openai")适用于来自 openai 提供商的每个模型。
  • 模型级别提供商:模型 键(如 "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.1-pro-preview",
    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 代理指南中的动态模型

了解更多