跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

自定义提供商

接入 OpenAI 兼容服务,并配置协议、模型 ID、认证和上下文限制。

服务未出现在 /connect 列表中时,可以通过 Other 添加自定义提供商。保存凭据和定义提供商是两步,不能只输入 Key 就期待模型自动出现。

保存身份并配置服务

运行 /connect,选择 Other,输入唯一 provider ID 和 Key。记下 ID,它必须与配置中的键一致。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myprovider": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My model service",
      "options": {
        "baseURL": "https://api.example.com/v1"
      },
      "models": {
        "served-model-id": {
          "name": "My model"
        }
      }
    }
  }
}

这是需要替换 ID、域名与模型键的结构示例,不是一个现成服务。完成后在 /models 检查目录,再验证真实请求。

选择正确协议

npm 指定 AI SDK 包:@ai-sdk/openai-compatible 用于 /v1/chat/completions 兼容接口,@ai-sdk/openai 用于 /v1/responses。name 只是 UI 显示名,实际请求使用模型键与端点。

如果提供商只是表面兼容,仍需确认工具调用、流式响应和所需模型选项能正常工作;配置文件能解析不是接口兼容的充分证明。

凭据与自定义 Headers

如果不使用已保存认证,可以通过 options.apiKey 设置值,推荐结合 {env:...} 或 {file:...},见变量替换。options.headers 可配置每次请求发送的额外 headers。

不要把示例 Authorization 值写成真实共享配置;也不要同时填入互相矛盾的 Key 和自定义认证 header 后假定优先级。本页只描述官方支持字段,具体认证方式按服务要求配置。

模型容量

models.<id>.limit.context 和 limit.output 用于告知 OpenCode 上下文与输出容量,常规提供商从 Models.dev 获取这些信息。

自定义时使用服务真实支持的数值。增大配置不会扩大模型本身的能力;官方示例中的 200000 和 65536 不是所有兼容服务的默认限制。

模型不出现或调用失败

依次检查保存凭据时的 provider ID、配置 ID、SDK 包、baseURL、模型 ID 与权限。先修正协议和身份,再检查模型能力;不能用显示名替代服务实际返回的标识。