以编程方式使用文档

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 评估套件上表现良好,该评估套件用于测试基本代理操作。通过这些评估对于在更长、更复杂的任务上获得良好性能是必要但不充分的条件。

提供者模型
Googlegemini-3.1-pro-preview, gemini-3.5-flash
OpenAIgpt-5.5, gpt-5.4
Anthropicclaude-opus-4-8, claude-opus-4-7, claude-opus-4-6
开源模型GLM-5.2, Kimi-K2.7 Code, MiniMax-M3

开放权重模型可通过以下提供商获取 Baseten, Fireworks, OpenRouterOllama.

模型评估

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" 适用于来自该 openai provider.
  • 模型级别 — 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"),
)

了解更多