~/.deepagents/config.toml 让您可以自定义模型提供者、设置默认值,并向模型构造函数传递额外参数。有关环境变量和检查命令,请参阅配置。本页涵盖内容:
- 默认设置:固定一个默认模型或代理。
- 提供者设置:
[models.providers.<name>]表、构造函数参数、重试、配置文件覆盖以及将模型添加到/model切换器。 - 自定义端点和提供者:自定义基础 URL、兼容 OpenAI 或 Anthropic 的 API以及任意提供者。
- 端点和网关:API 密钥和基础 URL 如何共同解析,包括通过托管网关的情况。
默认和最近使用的模型
[models].default 始终优先于 [models].recent。/model 命令仅写入 [models].recent,因此您配置的默认值不会被会话中途的切换覆盖。要移除默认值,请使用 /model --default --clear 或从配置文件中删除 default 键。
默认和最近使用的代理
[agents].default 始终优先于 [agents].recent。在 /agents 选择器中按 Enter 选择代理会写入 recent;在高亮行上按 Ctrl+S 会将其固定为 default。在同一行再次按 Ctrl+S 会清除默认设置。
显式的 -a/--agent 标志总是覆盖两者,而 -r/--resume 会绕过两者,从而恢复该对话线程的原始代理。有关相关标志,请参阅命令参考。
隐藏 LangSmith 追踪密钥
启用 LangSmith 追踪后,Deep Agents Code 默认会在不进行客户端密钥隐藏的情况下发送代理追踪的输入和输出。 要在上传前隐藏检测到的密钥:- 配置文件
- 环境变量
~/.deepagents/config.toml
提供者配置
每个提供者都是[models.providers] 下的一个 TOML 表:
string[]
可选
string
可选
string
可选
在认证 UI 中显示的可读提供者名称。对于配置键为机器优化(例如
my_gateway)但 UI 标签应包含空格或品牌大写的任意提供者,请使用此项。string
可选
用户创建或管理 API 密钥的提供者页面 URL。
/auth 模态框在 API 密钥输入框之前会链接到此页面。此值是 URL,不是凭据。string
可选
string
可选
object
可选
转发给模型构造函数的额外关键字参数。扁平键(例如
temperature = 0)适用于此提供者的每个模型。基于模型名称的子表(例如 [params."gpt-5.5"])仅覆盖该模型的对应值;合并是浅层的(模型级值在冲突时优先)。请勿将凭据(例如 api_key)放在 params 中。请使用 api_key_env 指向一个环境变量。object
可选
string
可选
用于任意模型提供者。格式为
module.path:ClassName 的完全限定 Python 类名。设置后,Deep Agents Code 会直接导入并实例化此类以用于提供者 <name>。该类必须是 BaseChatModel 的子类。boolean
default:"true"
可选
此提供者是否出现在
/model 选择器中。设为 false 可隐藏从已安装软件包(例如您不想出现在模型切换器中的传递依赖项)自动发现的提供者。您仍然可以通过 /model provider:model 或 --model 直接使用已禁用的提供者。模型构造函数参数
params 字段将额外参数转发给模型构造函数。要为单个模型设置不同值,请添加一个基于模型名称的子表,这样您就不必重复整个提供者配置:
ollama:qwen3:4b得到{temperature: 0.5, num_ctx: 4000}— 模型级覆盖优先。ollama:llama3得到{temperature: 0, num_ctx: 8192}— 无覆盖,仅使用提供者级参数。
重试
使用顶层的[retries] 部分配置瞬态模型提供者错误的重试次数。Deep Agents Code 会将这些值传递给接受重试次数构造函数关键字参数的提供者集成。如果省略此部分,则使用提供者 SDK 的默认值。
[retries].max_retries 值适用于所有支持的提供者。提供者特定的表,如 [retries.fireworks],会覆盖该提供者的全局值。值必须是大于或等于 0 的整数。
大多数支持的提供者接收重试次数参数为 max_retries。某些集成使用不同的构造函数关键字参数。对于任意提供者,或要覆盖已知提供者注册的关键字参数,请在提供者特定的重试表中设置 param:
param 必须是有效的 Python 标识符字符串,例如 "max_retries" 或 "retries"。Deep Agents Code 会忽略未设置 param 的未知提供者,因为传递错误的重试关键字参数可能会破坏模型创建。
[retries] 的优先级低于构造函数参数。完整的优先级顺序是:
--max-retries N,应用于提供者解析后的重试关键字参数--model-params中包含提供者的重试关键字参数,例如'{"max_retries": N}'或'{"retries": N}'[models.providers.<provider>.params]中包含提供者的重试关键字参数[retries.<provider>].max_retries[retries].max_retries- 提供者 SDK 默认值
启动审批模式
使用顶层的[startup].mode 键为交互式会话设置默认的审批模式:
manual(失败关闭的默认值)、auto(基于分类器;需要 DEEPAGENTS_CODE_EXPERIMENTAL=1)和 yolo(不受限制;需要一次性确认)。显式的 --yolo 或 -y/--auto-approve 标志会覆盖该会话的此值。
配置文件覆盖(高级)
覆盖模型运行时配置文件中的字段,以更改 Deep Agents Code 解释模型能力的方式。有关可覆盖字段的完整列表,请参见ModelProfile。最常见的用例是降低 max_input_tokens 以更早触发自动摘要——对于测试或限制上下文使用很有用:
params 相同——模型级值在冲突时优先:
CLI 使用 --profile-override 覆盖配置文件
CLI 使用 --profile-override 覆盖配置文件
要在运行时覆盖模型配置文件字段而无需编辑配置文件,请通过 这些会覆盖在配置文件配置文件覆盖之上(CLI 优先)。优先级链为:模型默认值 < config.toml 配置文件 < CLI
--profile-override 传递一个 JSON 对象:--profile-override。--profile-override 的值在会话中途 /model 热切换时持续存在——切换模型会将覆盖重新应用于新模型。将模型添加到交互式切换器
某些提供者(例如langchain-ollama)不捆绑模型配置文件数据(完整列表请参见提供者参考)。如果是这种情况,交互式 /model 切换器不会列出该提供者的模型。您可以通过在配置文件中为该提供者定义 models 列表来填补空白:
/model 切换器现在将包含一个 Ollama 部分,并列出这些模型。
这完全是可选的。您始终可以通过直接指定其完整名称来切换到任何模型:
当安装了
langchain-ollama 且守护进程可达时,Deep Agents Code 会自动发现本地拉取的模型并将其合并到切换器中——无需 models 列表。拉取新模型后运行 /reload 进行刷新,或设置 DEEPAGENTS_CODE_OLLAMA_DISCOVERY=0 以选择退出。自定义基础 URL
某些提供者包接受base_url 来覆盖默认端点。例如,langchain-ollama 通过底层的 ollama 客户端默认使用 http://localhost:11434。要将其指向其他位置,请在配置中设置 base_url:
兼容 API
对于公开与 OpenAI 或 Anthropic 线协议兼容的 API 的提供者,您可以通过将base_url 指向提供者的端点来使用现有的 langchain-openai 或 langchain-anthropic 包:
提供者在官方规范之上添加的任何功能都不会被捕获。如果提供者提供专用的 LangChain 集成包,请优先使用该包。
任意提供者
Deep Agents Code 可与任何作为 LangChainBaseChatModel 提供的、支持工具调用的 LLM 协同工作。内置提供者开箱即用;不太常见或内部模型则需要更多设置。将 class_path 指向其 BaseChatModel 子类,Deep Agents Code 将直接导入并实例化该类。
api_key_env 和 base_url 是可选的。display_name 和 api_key_url 用于自定义 /auth 显示的提供者名称和密钥获取链接;省略它们将回退到提供者配置键和提供者设置文档。要从环境变量而不是硬编码的 base_url 读取端点,请使用 base_url_env;然后它将以与内置提供者相同的方式进行解析和与密钥配对(参见端点、密钥和网关)。
class_path 提供者应自行在内部处理身份验证——当您的模型使用自定义身份验证(JWT 令牌、专有头、mTLS 等)而非标准 API 密钥时,这很有用:
/model xyz:abc-xyz-1 或 --model xyz:abc-xyz-1 切换到该模型。
Deep Agents Code 要求工具调用支持。如果您的自定义模型支持工具调用但 Deep Agents Code 不知道,请在提供者配置文件中声明它:虽然可选,但强烈建议将
max_input_tokens 设置为您的模型上下文窗口大小。没有它,Deep Agents Code 无法显示上下文的使用程度,并且自动摘要将回退到固定的触发值(大约 170,000 个标记),而不是您模型窗口的一部分。对于窗口较小的模型,在您达到模型硬限制之前可能不会运行摘要,因此一旦对话增长,请求就会开始失败。class_path 类,因此定义它的包必须可以从运行 dcode 的同一环境中导入。内置提供者作为安装附加项提供,但自定义或内部包不是。使用 --package 标志将其安装到 dcode 环境中:
/install my_package --package --force。两者都会将包与 dcode 一起安装。如果包缺失或无法导入,Deep Agents Code 将跳过该提供者,其模型不会出现在 /model 中。
当您切换到 my_custom:my-model-v1(通过 /model 或 --model)时,模型名称 (my-model-v1) 会作为 model 关键字参数传递:
<package>.data._profiles 中的 _PROFILES 字典中提供模型配置文件,以代替在 models 键下定义它们。有关更多信息,请参阅 LangChain 模型配置文件。
端点、密钥和网关
API 密钥及其发送的端点必须匹配:端点必须接受该密钥,否则请求很可能会失败。Deep Agents Code 会将密钥和端点一起解析,因此覆盖其中一个会更新另一个以进行匹配。例如,如果您用自己的密钥替换网关提供的密钥,Deep Agents Code 也会删除网关端点,因此您的密钥将直接发送到提供者,而不是发送到会拒绝它的网关。base_url 如何解析
Deep Agents Code 按以下顺序解析提供者的端点(第一个匹配项优先):
config.toml中该提供者的base_url。- 带
DEEPAGENTS_CODE_前缀的端点变量。 - 环境中的纯端点变量(例如,
OPENAI_BASE_URL)。 - 与
/auth凭据一起保存的端点。 此步骤适用于没有端点变量的提供者——例如您添加的未声明base_url_env的提供者。步骤 2-3 没有可读取的变量,因此这里直接使用保存的端点。对于确实有端点变量的提供者,保存的端点已经在步骤 2 或 3 生效(它被写入该变量),因此此步骤没有改变。无论哪种方式,在/auth中输入的端点都会应用。 - 提供者 SDK 自身的默认端点,当以上所有条件都未设置时。
解析后的端点作为
base_url 构造函数参数传递给模型。DEEPAGENTS_CODE_ 前缀将端点限定于 Deep Agents Code,而不会影响其他工具。对于任何其他提供者,使用 base_url_env 声明名称,端点将以相同方式解析和配对:
base_url 优先于 base_url_env,因此只设置您需要的一个:
覆盖保持配对一致
当您使用/auth 存储密钥时,您输入的端点(如果留空,则为提供者的默认端点)会与密钥一起应用。存储密钥时留空基础 URL 也会清除您环境中已设置的任何端点(例如,您的 shell 导出的网关 OPENAI_BASE_URL),因此您的密钥将发送到提供者的默认端点,而不是该网关。
Scope both the key and the endpoint to Deep Agents Code
托管网关
在配置了模型网关(例如 LangSmith 网关)的机器上,网关通常会一起导出网关密钥和匹配的端点变量(OPENAI_BASE_URL、ANTHROPIC_BASE_URL 或 GOOGLE_GEMINI_BASE_URL)。Deep Agents Code 默认使用该配对,因此无需配置。
要改用您自己的密钥,请使用 /auth 存储它(对于提供者默认值,将基础 URL 留空,或显式设置),或设置带 DEEPAGENTS_CODE_ 前缀的密钥和端点。两者都会覆盖网关配对,而不会留下不匹配的端点。
代理运行时限制
LangGraph 图步骤预算是dcode 代理图在单轮中可执行的最大节点调用次数。使用 [runtime] 部分配置此递归限制:
~/.deepagents/config.toml
2000。有效值为从 25 到 100000(含)的整数。超出此范围的值或非整数值会记录警告并回退到默认值。
优先级(从高到低):
--recursion-limitCLI 标志DEEPAGENTS_CODE_RECURSION_LIMIT环境变量config.toml中的[runtime].recursion_limit- 内置默认值(
2000)
dcode config get runtime.recursion_limit 查看有效值及其来源。
- CLI 标志
- 环境变量
- 配置文件
goal_rubric 递归限制是独立的,不受此设置影响。另请参阅
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

