文档

文档

Dyad

Dyad 可通过 Add Custom Provider 接入任何 OpenAI 兼容端点:填写三个字段,在提供商页面添加密钥,然后为模型选择器中需要的每个模型 ID 添加一行。

Dyad 可通过 Settings → AI Providers → Add Custom Provider 接入任何 OpenAI 兼容端点:API Base URL 填写 https://api.kunavo.com/v1,密钥填写在提供商自己的页面中,然后每个模型 ID 添加一行 Add Custom Model。

Settings → AI Providers → Add Custom Provider
Settings → AI Providers → Add Custom Provider
  ID                  kunavo
  Display Name        Kunavo
  API Base URL        https://api.kunavo.com/v1

Then on the new provider's own page
  Set Kunavo API Key  sk-kn-...            → Save Key

Provider page → bottom → Add Custom Model
  Model ID            claude-sonnet-5
  Name                Claude Sonnet 5 (Kunavo)
  Description         Kunavo, OpenAI-compatible
  Max Output Tokens   128000
  Context Window      1000000
基础 URL 应保留 /v1——不过这并不是因为文档这么说。 自定义模型页面只写着“通常可以在服务商文档中找到 API Base URL”,并未提供示例,所以无法据此确定。实际发布的应用中有两处信息可以确定这一点:对话框自己的占位文字是 E.g., https://api.example.com/v1,并且自定义服务商会被构造为 OpenAI 兼容客户端,你填写的值会原样用作 baseURL——Dyad 只会追加路由,不会追加 /v1。Dyad 为自己硬编码的所有 OpenAI 兼容端点都以相同内容结尾。若基础 URL 缺少该内容,错误会是 404,而不是密钥被拒绝。
文档页面上没有提到两个字段。已发布的对话框将第一个字段称为 Provider ID,而不是 ID;还新增了 Environment Variable (Optional),可以填写类似 KUNAVO_API_KEY 的变量名;仅在设置中未保存密钥时才会读取该变量。该对话框中没有密钥输入框:先创建提供商,打开其页面,然后在页面上的 Set Kunavo API Key 框中填写密钥。
请填写 Context Window,不要留空。 Dyad 唯一给出的提醒是,空字段会回退到“可能低于最佳水平的默认值”。发布版本的默认值为 128,000 个令牌;Dyad 会在每服务商上限与上下文窗口减去 25,000 之间取较低值来压缩对话。自定义服务商存储在 custom:: ID 下,因此它既不使用 Google 上限,也不使用 OpenAI 上限,而是使用 250,000 的上限。若留空,一个百万令牌的模型会在 103,000 个令牌时开始摘要,而不是 250,000——同样的工作会被反复压缩,却毫无必要。
本配置根据下方日期的 Dyad 自有文档和已发布源码整理。Kunavo 尚未使用 Dyad 调用其端点:没有构建、流式编辑或 Agent 模式下的工具往返调用;该系列中的其他客户端也同样如此。发布设置页面不等于兼容性测试。尝试此配置时,请保留当前可用的路由,并先运行一项范围有限的功能。
Kunavo 不提供 embedding、文本转语音或语音转文本模型,因此以此方式添加的自定义提供商只能提供聊天补全。Dyad 的构建循环不会调用其他三种模型,所以在这里不会影响任何功能;但这意味着刚添加的提供商无法直接替代同时需要这些模型的技术栈。
还没有密钥?创建 Kunavo 账户,创建一个密钥(以 sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 Dyad 设置页面。

分步操作

  1. 在 /app/keys 创建密钥并复制——它只会显示一次。
  2. 在 Dyad 中,前往 Settings,找到 AI Providers 部分,然后点击 Add Custom Provider。按上文填写 ID、Display Name 和 API Base URL。ID“供内部使用,之后无法更改”,因此请选择一个你愿意长期使用的值;Display Name 会显示在选择器中,仅用于显示。
  3. 打开刚创建的提供商,在 Set Kunavo API Key 中粘贴密钥,然后点击 Save Key。如果基础 URL 为空,Dyad 会直接拒绝请求并显示 missing the API Base URL 错误,而不是发生网络故障。
  4. 在同一页面向下滚动到底部,然后点击 Add Custom Model。Model ID 必须与目录中的 slug 完全一致——Dyad 文档指出,它“必须与服务商 API 文档中的指定内容完全一致。这是发送给 API 的标识符”——所以应填写 claude-sonnet-5,而不是显示名称。
  5. 根据 /models 填写 Max Output Tokens 和 Context Window,不要留空;然后为你想在选择器中使用的每个 ID 重复点击 Add Custom Model。这里不支持批量导入,也不会获取模型列表。
  6. 在模型选择器中选中刚添加的模型,然后交给它一项实际任务,例如添加一个组件,而不是打招呼。Build 模式采用智能体循环,每一步都会重新发送当前工作集,因此首次运行应测试流式传输和反复编辑。

已于 2026年9月21日 对照 Dyad 的 Custom Models 页面 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。

这是简要版本。完整教程——包括模型选择、真实会话成本和失败模式——见 Dyad 定价与 API 成本指南。

调试客户端前先验证

一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 Dyad 中使用。

# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
  -H "Authorization: Bearer sk-kn-..."

字段中应填写哪个模型 ID

每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。

模型 IDKunavo 输入 / 输出它在 Dyad 中的位置
claude-sonnet-5$1.40 / $7.00默认的 Build 模式模型——衡量全天运行的循环中每美元能获得的代码质量
claude-opus-5$3.50 / $17.50在重构任务中使用 Plan 模式;计划出错会耗费整个会话
claude-haiku-4-5$0.70 / $3.50Ask 模式和代码库相关的快速提问,调用量是主要因素
gpt-5-6-sol$2.00 / $12.00来自另一个系列的第二种意见——在同一提供商下添加为第二个自定义模型
gpt-5-6-terra$0.70 / $4.20工作集较大时使用;请正确填写 Context Window 字段
计费方式是从预付余额中按 token 扣费,无月费——参见 计费。对于重复上下文——这正是编辑器或聊天客户端发送内容的大部分——提示缓存对账单的影响大于模型选择。

切换前需要了解的三个边界

这些是 Dyad 自身的规则,不属于 Kunavo;每条规则都会影响客户密钥可访问的内容。这就是本页介绍如何连接到模型,而不是连接到 Dyad 全部功能的原因。

  1. Pro 模式按设计无法通过你自己的密钥访问。Dyad 的定价常见问题对此有明确说明:Smart Context 等 Pro 模式只能使用 Dyad Pro 的 AI 额度,不能使用你自己的 API 密钥,因为这些功能需要在服务器端跨多个模型处理。Turbo Edits 也属于此类。自定义提供商可以让你使用模型和普通模式,但不能使用这些机制。
  2. 免费方案中的 Agent 模式有使用限额。每 23 小时最多发送 20 条 Agent 消息,无论配置的是谁的密钥,此限额都适用;Build、Ask 和 Plan 不受限。因此,会话中途意外停止,原因可能是 Dyad 的配额,而不是你的余额或端点问题。
  3. Dyad 无法访问 Anthropic Messages 协议。自定义提供商始终会构建为 OpenAI chat-completions 客户端,而内置 Anthropic 提供商不接受基础 URL 覆盖。因此,Claude 模型通过 OpenAI 兼容接口接入,这正是上方配置的做法,也因此本页的验证请求采用 OpenAI 格式。

常见问题

如何向 Dyad 添加自定义 API 提供商?

进入 Settings,找到 AI Providers 区域,然后点击 Add Custom Provider。填写一个 ID(用于内部标识,之后无法更改)、显示在选择器中的 Display Name,以及端点的 API Base URL。保存后,打开刚创建的提供商,在其页面的 "Set <name> API Key" 框中粘贴密钥;创建对话框中不包含密钥输入框。最后滚动到页面底部,对每个想要使用的模型 ID 点击一次 Add Custom Model。Dyad 文档用一句话说明了端点方面的要求:只要提供 OpenAI 兼容 API,任何提供商都可以使用。

Dyad 的 API Base URL 末尾需要加 /v1 吗?

对于 OpenAI 兼容端点,需要,例如 https://api.kunavo.com/v1。Dyad 的 Custom Models 文档对此没有定论:它只说通常可以在提供商的文档中找到 API Base URL,没有提供示例。对话框本身的占位提示写着 "E.g., https://api.example.com/v1",而 Dyad 构建客户端的方式也能说明这一点:你填写的值会原样作为 OpenAI 兼容客户端的 baseURL,Dyad 只会追加路由。缺少 /v1 的基础 URL 会导致 404,而不是身份验证错误;已包含 /chat/completions 的 URL 也会出现同样问题。

没有 Anthropic 账户,可以在 Dyad 中使用 Claude 模型吗?

可以,通过自定义提供商接入,而不是使用 Dyad 内置的 Anthropic 条目。Dyad 会将每个自定义提供商构建为 OpenAI chat-completions 客户端,因此你填写的模型 ID 会在所配置的端点解析,而不是由应用解析;Claude ID 也可以作为模型 ID 发送。内置 Anthropic 提供商无法满足此需求:构建时没有基础 URL 参数,因此不支持 ANTHROPIC_BASE_URL 形式的覆盖,只会连接 Anthropic 自己的端点。

Dyad 的自定义提供商与使用 OpenRouter 有什么不同?

区别只在设置方式,而不在类型。OpenRouter 是 Dyad 提供商列表中唯一内置预设的独立多供应商网关,因此只需要密钥。其他所有网关都通过 Add Custom Provider 接入,还需要手动填写每个模型的 ID、Max Output Tokens 和 Context Window。Dyad 的维护者曾在某网关请求添加预设时,明确指出了这条接入方式。比较两者时,应考虑价格、充值条款以及你实际需要的模型,而不是列表中哪个有自己的标志。

为什么我的 Dyad 自定义模型这么早就开始总结对话?

可能是因为 Context Window 字段留空了。字段为空时,Dyad 会回退到 128,000 tokens,并在每个提供商上限和上下文窗口减去 25,000 两者中较低的值处压缩对话。自定义提供商采用 250,000 的上限,而不是 Google 或 OpenAI 的上限。因此,即使模型的窗口大得多,留空也意味着约在 103,000 tokens 时就会开始压缩。请从提供商的目录中查出真实数值,填写 Max Output Tokens 和 Context Window,这样压缩阈值就会移至上限。