Deep Agents 适用于任何支持 tool callingLangChain chat model

Supported models

使用 provider:model 格式指定 models(例如 google_genai:gemini-3.5-flashopenai:gpt-5.4anthropic:claude-sonnet-4-6)。Provider prefix 会选择 LangChain integration,colon 后的所有内容都会作为 model identifier 透传给该 provider。有效 provider strings 请参阅 init_chat_modelmodel_provider parameter。Provider-specific configuration 请参阅 chat model integrations Model identifier 必须匹配 provider 预期的格式。有些 providers 使用类似 gpt-5.4 的 simple names;其他 providers 使用 namespaced IDs 或 deployment paths,例如 zai-org/GLM-5.1,因此完整的 Deep Agents string 是 baseten:zai-org/GLM-5.1。请查看 provider 的 model catalog 或 integration docs,确认当前 identifiers。

Suggested models

这些 models 在 Deep Agents eval suite 中表现良好,该 suite 测试 basic agent operations。通过这些 evals 是在更长、更复杂 tasks 中获得强表现的必要条件,但并不充分。
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
Open-weight models 可通过 BasetenFireworksOpenRouterOllama 等 providers 使用。

Model evaluations

Deep Agents eval suite 会测试 popular models:
ModelOverallFile OpsRetrievalTool UseMemoryConversationSummarization
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%
baseten:moonshotai/Kimi-K2.679%92%100%84%43%60%
baseten:zai-org/GLM-577%100%100%89%44%24%60%
fireworks:accounts/fireworks/models/glm-5p181%100%100%87%33%80%
fireworks:accounts/fireworks/models/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%
更多信息请参阅 Eval runs

Configure model parameters

provider:model 格式的 model string 传给 create_deep_agent,或传入 configured model instance 以获得完整控制。底层会通过 init_chat_model 解析 model strings。 若要配置 model-specific parameters,请使用 init_chat_model,或直接实例化 provider model class:
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)
Available parameters 因 provider 而异。Provider-specific configuration options 请参阅 chat model integrations 页面。

Provider profiles

当你在创建 deep agent 时提供 provider:model string, ProviderProfile 会打包适用的 initialization parameters。传入通过 init_chat_model 预先配置的 model 时,它不会生效。 你可以在两个 levels 注册,并且二者可以共存:
  • Provider level,像 "openai" 这样的 bare provider key 适用于 openai provider 的每个 model。
  • Model level,像 "openai:gpt-5.4" 这样的 provider:model key 只适用于该 specific model,并会合并到任何 matching provider-level profile 之上。
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"}),
)
完整 field list、merge semantics 和 plugin packaging 请参阅 Profiles
若要塑造 model 构建后 agent 的 behavior,请使用 harness profile

Select a model at runtime

如果你的 application 允许 users 选择 model(例如在 UI 中使用 dropdown),请使用 middleware 在 runtime swap model,而无需 rebuild agent。 通过 runtime context 传入 user 的 model selection,然后使用 wrap_model_call middleware 通过 @wrap_model_call decorator 覆盖每次 invocation 的 model:
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"),
)
更多 dynamic model patterns(例如基于 conversation complexity 或 cost optimization 路由)请参阅 LangChain agents guide 中的 Dynamic model

Learn more

  • Models in LangChain:Chat model features,包括 tool calling、structured output 和 multimodality