疑难排查 · opencode

opencode Model Not Found——声明自定义提供商模型的方法

opencode 只提供它认识的模型,而自定义提供商的模型不在 models.dev 目录里。如何在 opencode.json 中声明模型,让它出现并可用。

你看到的报错

opencode model not found

为什么会发生

  • 模型没有在 provider 的 models 映射中声明,而自定义提供商的模型不在 opencode 查询的 models.dev 目录里——所以这个模型压根不会被提供。
  • 声明的模型 id 与端点实际提供的不一致——打错字或已下线的 id 会让提供商返回 404。
  • 模型已加进 opencode.json 但 opencode 没有重启,旧配置仍然生效。

如何解决

  • 在 opencode.json 的 provider models 映射中显式声明每个模型,id 与端点提供的完全一致。
  • 用 GET /v1/models 列出端点的在线模型,而不是靠猜 id。
  • 改完之后重启 opencode。

显式声明模型

{
  "provider": {
    "apitoken": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "apiToken.sale",
      "options": {
        "baseURL": "https://openai.api.apitoken.sale/v1",
        "apiKey": "{env:APITOKEN_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": { "name": "GPT-5.6 Sol" }
      }
    }
  }
}

相关搜索

  • ModelNotFoundError
  • opencode custom provider model missing

常见问题

为什么我自定义提供商的模型不出现在 opencode 里?+
不在 models.dev 目录里的模型必须在 provider 的 models 映射中手动声明。未声明的模型完全不会被提供。
如何找到要声明的确切模型 id?+
用你的密钥请求提供商的 GET /v1/models,逐字复制 id。
模型声明了但请求 404——还能是什么?+
opencode.json 里的 id 必须与端点的 id 逐字符一致,baseURL 也必须是文档给出的那个。两者都检查,然后重启 opencode。

跳过折腾坏掉的配置

apiToken.sale 提供标准的 Anthropic API——同样的模型、同样的 SDK、一个预付余额。把你工具的 base URL 指向它,本页的配置即可原样生效。