Deep Agents Code 支持任何 与 LangChain 兼容的 chat model provider,因此几乎可以使用任何支持 tool calling 的 LLM。任何暴露 OpenAI-compatible 或 Anthropic-compatible API 的服务也可开箱使用,请参阅 Compatible APIs

快速开始

Deep Agents Code 会自动集成以下 model providers:除安装相关 provider package 外,无需额外配置。
  1. 安装 provider packages 每个 model provider 都需要对应的 LangChain integration package。这些 packages 以 optional extras 形式提供,以保持应用轻量。OpenAI、Anthropic 和 Gemini 默认包含。可以在 session 中用 /install 安装任何其他 extra,或在 shell 中用 dcode --install 安装:
    /install groq
    
    不带 argument 运行 /install 可列出有效 extras。若要在初始 CLI install 期间预安装 extras,请设置 DEEPAGENTS_CODE_EXTRAS
    DEEPAGENTS_CODE_EXTRAS="baseten,groq" curl -LsSf https://langch.in/dcode | bash
    
  2. 设置 credentials 使用 /auth credential manager 为 provider 添加 API key:
    /auth
    
    对于 non-interactive runs、CI/CD,或任何无法使用 TUI 的环境,请改为设置 provider 的 environment variable。完整 key resolution order 请参阅 Provider credentials;将 key 作用域限定到 Deep Agents Code 的方法请参阅 DEEPAGENTS_CODE_ prefix;每个 provider 的 environment variable 请参阅 Provider reference 若要配置 model parameters,请参阅 Model parameters

Provider reference

使用此处未列出的 provider?请参阅 Arbitrary providers:通过额外 setup,任何 LangChain-compatible provider 都可用于 Deep Agents Code。
ProviderPackageCredential env varModel profiles
OpenAIlangchain-openaiOPENAI_API_KEY
Azure OpenAIlangchain-openaiAZURE_OPENAI_API_KEY
Anthropiclangchain-anthropicANTHROPIC_API_KEY
Google Gemini APIlangchain-google-genaiGOOGLE_API_KEY
Google Vertex AIlangchain-google-genaiGOOGLE_CLOUD_PROJECT
Basetenlangchain-basetenBASETEN_API_KEY
AWS Bedrocklangchain-awsAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
AWS Bedrock Converselangchain-awsAWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY
Hugging Facelangchain-huggingfaceHUGGINGFACEHUB_API_TOKEN
Ollamalangchain-ollamaOLLAMA_API_KEY (cloud only; optional)
Groqlangchain-groqGROQ_API_KEY
Coherelangchain-cohereCOHERE_API_KEY
Fireworkslangchain-fireworksFIREWORKS_API_KEY
Togetherlangchain-togetherTOGETHER_API_KEY
Mistral AIlangchain-mistralaiMISTRAL_API_KEY
DeepSeeklangchain-deepseekDEEPSEEK_API_KEY
IBM (watsonx.ai)langchain-ibmWATSONX_APIKEY
Nvidialangchain-nvidia-ai-endpointsNVIDIA_API_KEY
xAIlangchain-xaiXAI_API_KEY
Perplexitylangchain-perplexityPERPLEXITY_API_KEY (or PPLX_API_KEY)
OpenRouterlangchain-openrouterOPENROUTER_API_KEY
LiteLLMlangchain-litellmPer-provider (see docs)
你可以通过添加 DEEPAGENTS_CODE_ prefix,将任何 credential 的作用域限定到 Deep Agents Code。例如,DEEPAGENTS_CODE_OPENAI_API_KEY 在 Deep Agents Code 内优先于 OPENAI_API_KEY,且不影响其他 tools。详情请参阅 DEEPAGENTS_CODE_ prefix
Model profile 是随 provider package 提供的一组 metadata(model name、default parameters、capabilities 等),主要由 models.dev project 提供支持。包含 model profiles 的 providers 会自动在 interactive /model switcher 中列出其 models,但会受 filtering criteria 约束(尤其是必须启用 tool_calling)。不包含 model profiles 的 providers 需要你直接指定 model name,或通过 config.toml 添加 models。

Model routers 和 proxies

OpenRouterLiteLLM 等 model routers 通过单一 endpoint 提供对多个 providers 的 models 的访问。 请使用这些服务的专用 integration packages:
RouterPackageConfig
OpenRouterlangchain-openrouteropenrouter:<model> (built-in, see Provider reference)
LiteLLMlangchain-litellmlitellm:<model> (built-in, see Provider reference)
OpenRouter 是 built-in provider,安装 extra 后即可直接使用:
/install openrouter
LiteLLM 也是 built-in provider:
/install litellm

切换 models

若要在 Deep Agents Code 中切换 models,可以:
  1. 使用 /model command 打开 interactive model switcher。这会显示来自每个已安装 LangChain provider package 的 model profiles 的 available models。
    并非所有 models 都会出现在这里。如果你的 model 缺失,请直接传入 model name(例如 /model gpt-5.5)。详情请参阅 Which models appear in the switcher
  2. model name 直接指定为 argument,例如 /model gpt-5.5。无论该 model 是否出现在选项 1 的列表中,你都可以使用所选 provider 支持的任何 model。Model name 会传递给 API request。
  3. 通过 --model 在启动时指定 model,例如:
    dcode --model openai:gpt-5.5
    
Deep Agents Code 启动时会按以下顺序解析要使用的 model:
  1. 如果提供,--model flag 始终胜出。
  2. ~/.deepagents/config.toml 中的 [models].default,即 user 有意设置的 long-term preference。
  3. ~/.deepagents/config.toml 中的 [models].recent,即上次通过 /model 切换到的 model。它会自动写入,但绝不会覆盖 [models].default
  4. Environment auto-detection:回退到第一个可用 startup credential,检查顺序为:OPENAI_API_KEYANTHROPIC_API_KEYGOOGLE_API_KEYGOOGLE_CLOUD_PROJECT(Vertex AI)。
此 startup fallback 有意只检查这四个 credentials。其他 supported providers(例如 Groq)仍可通过 --model/model 和 saved defaults([models].default / [models].recent)使用。

哪些 models 会出现在 switcher 中

/model selector 会从已安装 provider packages 动态构建列表。展开下方内容可查看完整 criteria 和 troubleshooting。
Interactive /model selector 会动态构建列表,它不是写死在 Deep Agents Code 中的 hardcoded list。当以下条件全部为真时,model 会出现在 switcher 中:
  1. Provider package 已安装。 每个 provider(例如 langchain-anthropiclangchain-openai)都必须与 deepagents-code 一起安装,可以作为 install extra 预安装,也可以稍后用 /install <extra> 添加(例如 /install ollama)。如果 package 缺失,switcher 中会缺少整个 provider section。
  2. Model 有启用 tool_calling 的 profile。 Deep Agents Code 需要 tool-calling support,因此 profile 中没有 tool_calling: true 的 models 会被排除。这是 model 缺失于列表的最常见原因。对于不内置 profiles 的 providers(请参阅 Provider reference table),你可以在 config.toml 中定义一个:
    [models.providers.ollama.profile."qwen3:4b"]
    tool_calling = true
    max_input_tokens = 32768
    max_output_tokens = 8192
    
    严格来说,这不是让 model 出现在 switcher 中的必要条件,将它添加到 models list 也可以,而且更简单。当你希望 Deep Agents Code 知道 model context window 和 capabilities,以支持 auto-summarization 等 features 时,profile 很有用。所有可覆盖 fields 请参阅 Profile overrides
  3. Model 接受并生成文本。 Profile 中显式将 text_inputstext_outputs 设置为 false 的 models(例如 embedding 或 image-generation models)会被排除。
config.toml[models.providers.<name>].models 下定义的 models 会绕过 profile filter,无论 profile metadata 如何,它们始终出现在 switcher 中。这是添加列表中缺失 models 的推荐方式。
Credential status 影响 model 是否列出。Switcher 会显示所有符合条件的 models,并在每个 provider header 旁显示 credential indicator:确认 credentials 时显示 checkmark,缺少 credentials 时显示 warning,credential status unknown 时显示 question mark。即使 credentials 缺失,你仍然可以选择 model,provider 会在 request time 报告 authentication error。

Troubleshooting missing models

症状可能原因修复方式
Switcher 中缺少整个 providerProvider package 未安装安装 extra(例如 /install groq
显示 provider 但缺少特定 modelModel profile 中 tool_calling: false,或不存在 profileconfig.toml 中将 model 添加到 [models.providers.<name>].models,或直接使用 /model <provider>:<model>
Provider 显示 ⚠ “missing credentials”API key env var 未设置Provider reference table 设置 credential env var
Provider 显示 ? “credentials unknown”Provider 使用 Deep Agents Code 无法验证的 non-standard authCredentials 可能仍然可用,请尝试切换到该 model。如果 auth 失败,请检查 provider docs

设置 default model

你可以设置一个 persistent default model,供后续所有 CLI launches 使用:
  • 通过 model selector: 打开 /model,导航到想要的 model,并按 Ctrl+S 将其 pin 为 default。在当前 default 上再次按 Ctrl+S 会清除它。
  • 通过 command: /model --default provider:model(例如 /model --default anthropic:claude-opus-4-7
  • 通过 config file:~/.deepagents/config.toml 中设置 [models].default(请参阅 Configuration)。
  • 从 shell:
    dcode --default-model anthropic:claude-opus-4-7
    
查看当前 default:
dcode --default-model
清除 default:
  • 从 shell:
    dcode --clear-default-model
    
  • 通过 command: /model --default --clear
  • 通过 model selector: 在当前 pinned default model 上按 Ctrl+S
没有 default 时,Deep Agents Code 会默认使用最近使用过的 model。

Model parameters

向 model 传递额外 constructor kwargs,包括 sampling controls、reasoning/thinking budgets、context window sizes、request timeouts,以及底层 chat-model class 接受的任何其他参数。可在三个位置设置,按优先级从高到低:
  1. 启动时用 --model-params 一次性设置。 JSON string,仅限 session:
    # OpenAI reasoning effort
    dcode --model openai:gpt-5.5 --model-params '{"reasoning": {"effort": "high"}}'
    
    # Anthropic extended thinking
    dcode --model anthropic:claude-opus-4-7 --model-params '{"thinking": {"type": "enabled", "budget_tokens": 10000}, "max_tokens": 16000}'
    
  2. Session 中通过 /model --model-params 设置。 使用相同 JSON syntax,无需重启即可替换 params(并可选择替换 model):
    /model --model-params '{"temperature": 0.7}' anthropic:claude-opus-4-7
    /model --model-params '{"num_ctx": 16384}'           # opens selector, applies params to choice
    
  3. 持久保存在 config.toml 中。 每次启动都应用的 provider-level defaults(可带 optional per-model sub-tables):
    [models.providers.anthropic.params]
    thinking = { type = "enabled", budget_tokens = 10000 }
    max_tokens = 16000
    
    [models.providers.openai.params]
    reasoning = { effort = "high", summary = "auto" }
    output_version = "responses/v1"
    
    [models.providers.ollama.params]
    num_ctx = 16384
    temperature = 0
    
    # Per-model override—wins over provider-level keys
    [models.providers.ollama.params."qwen3:4b"]
    temperature = 0.5
    
CLI flags 会覆盖 config-file params,且仅限当前 session(session 中途的更改不会持久化)。config.toml 中的 per-model sub-tables 会覆盖 provider-level keys(浅层 merge,完整语义请参阅 Model constructor params)。--model-params 不能与 --default 组合使用。
底层 chat-model constructor 接受的任何 kwarg 都有效。完整列表请参阅 provider reference docs,例如 ChatAnthropicChatOpenAIChatOllama。Unknown kwargs 会转发给 upstream API request,因此新发布的 parameters 无需 CLI update 即可使用。
不要将 credentials(api_key)放入 params,请改用 api_key_env 指向 environment variable。
若要覆盖 model runtime profile 上的 fields(max_input_tokenstool_calling、capability flags),这不同于 constructor params,请参阅 Profile overrides

Advanced configuration

有关 provider params、profile overrides、custom base URLs、compatible APIs、arbitrary providers 和 lifecycle hooks 的详细配置,请参阅 Configuration