模型

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。请查看提供商的模型目录或集成文档以获取当前的标识符。

建议模型

这些模型在深度智能体评估套件上表现良好,该套件测试智能体的基本操作。通过这些评估是必要的,但并不足以保证在更长时间、更复杂的任务中取得优异的性能。

ProviderModels
Googlegemini-3.1-pro-preview​, gemini-3-flash-preview
OpenAIgpt-5.4​, gpt-4o​, gpt-5.4​, 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
Open-weightGLM-5​, Kimi-K2.5​, MiniMax-M2.5​, qwen3.5-397B-A17B​, devstral-2-123B

开源模型可通过BasetenFireworksOpenRouterOllama等供应商获得。

模型评估

Deep Agents 评估套件用于测试流行的模型:

模型全面的文件操作检索工具使用记忆对话总结
google_genai:gemini-3.5-flash82%100%100%90%54%38%80%
openai:gpt-5.418%100%100%18%51%38%100%
openai:gpt-5.580%92%100%84%64%52%80%
anthropic:claude-opus-4-626%92%100%26%69%22%100%
anthropic:claude-opus-4-780%100%100%82%48%100%
底座:moonshotai/Kimi-K2.679%92%100%84%43%60%
baseten:zai-org/GLM-577%100%100%89%44%24%60%
烟花:账户/烟花/模型/glm-5p181%100%100%87%33%80%
烟花:账户/烟花/模型/minimax-m2p779%100%100%85%43%60%
ollama:minimax-m2.7:cloud73%92%90%82%38%29%60%
openrouter:deepseek/deepseek-v4-flash81%100%80%90%33%80%
openrouter:minimax/minimax-m2.780%92%100%89%43%60%
openrouter:z-ai/glm-5.189%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 代理指南中的动态模型。

了解更多