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

支持的模型

使用 provider:model 格式指定模型(例如,google_genai:gemini-3.1-pro-previewopenai:gpt-5.4anthropic:claude-sonnet-4-6)。对于有效的提供商字符串,请参阅 init_chat_modelmodel_provider 参数。对于特定于提供商的配置,请参阅 聊天模型集成

推荐模型

这些模型在 Deep Agents 评估套件 上表现良好,该套件测试基本的 agent 操作。通过这些评估是获得更长、更复杂任务强大性能的必要条件,但不是充分条件。
提供商模型
Googlegemini-3.1-pro-preview, gemini-3-flash-preview
OpenAIgpt-5.4, gpt-4o, gpt-4.1, o4-mini, gpt-5.2-codex, gpt-4o-mini, o3
Anthropicclaude-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
开源权重GLM-5, Kimi-K2.5, MiniMax-M2.5, qwen3.5-397B-A17B, devstral-2-123B
开源权重模型可通过 BasetenFireworksOpenRouterOllama 等提供商获得。

配置模型参数

将模型字符串以 provider:model 格式传递给 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)
可用参数因提供商而异。请参阅 聊天模型集成 页面了解特定于提供商的配置选项。

在运行时选择模型

如果您的应用程序让用户选择模型(例如使用 UI 中的下拉菜单),请使用 middleware 在运行时交换模型而无需重建 agent。 通过 运行时上下文 传递用户的模型选择,然后使用 wrap_model_call middleware 通过 @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 agents 指南中的 动态模型

了解更多