快速解决OpenCode配置第三方API

快速解决OpenCode配置第三方API

前言

最近在 Mac 上配置 OpenCode 第三方 API 时踩了一个坑:

明明官方文档写着可以通过 /connect 添加自定义提供商,但实际操作时却发现 "Other" 并不是一个可直接选择的选项,导致整个流程卡住。

我折腾了一圈,最后在 GitHub Issues 里找到了可行方案,并成功完成配置。这里把完整排查和解决过程整理出来,方便遇到同样问题的朋友少走弯路。


环境说明

  • 操作系统:macOS
  • 使用方式:CLI
  • 已安装:opencode

问题现象

我在 CLI 中安装好 opencode 后,按照提示:

  1. 按下 ctrl + p 打开 commands
  2. 输入 /connect
  3. 尝试连接 API 提供商

此时我发现一个问题:
列表中并没有第三方 API 供应商的直接选项。

于是我去查了 OpenCode 官方文档

文档中提到,自定义提供商的方式是:

  1. 执行 /connect
  2. 向下滚动到 Other
  3. 输入 provider id
  4. 后续继续配置

文档示意如下:

bash 复制代码
$ /connect

┌  Add credential
│
◆  Select provider
│  ...
│  ● Other
└

接着输入 provider id:

bash 复制代码
$ /connect

┌  Add credential
│
◇  Enter provider id
│  myprovider
└

看起来似乎很简单,但实际操作并不是这样


实际踩坑点

问题出在这一步:

文档里写的是"选择 Other",但在实际 OpenCode 中,Other 其实是一个类别名,而不是一个可以直接选中的具体选项。

这就导致官方文档里的流程,在当前实际版本里并不能顺利走通。


排查过程

既然官方文档走不通,我继续去搜索相关问题,最后在 OpenCode 的 GitHub Issues 里找到了同样的报错和讨论:

根据该 Issue 中的方法,我最终成功完成了第三方 API 的配置。


最终解决方法

第一步:不要用 /connect,改用登录命令

在 CLI 中执行:

bash 复制代码
opencode auth login

通过这个命令进入认证流程后,弹出的选项中,"Other" 这次是可以真正被选择的


第二步:选择 Other

在弹出的供应商列表中,选择:

text 复制代码
Other

第三步:输入供应商 ID

接下来会要求输入 Provider ID,也就是你给这个第三方 API 取的唯一标识名。

例如:

text 复制代码
myapi

注意几点:

  • 建议自定义命名,方便后续识别
  • 只能使用小写字母和数字
  • 不要有空格或特殊字符

第四步:输入 API Key

输入你所使用的第三方平台提供的 API Key。

这一步完成后,认证信息就会被写入 OpenCode 的配置中。


第五步:手动编辑配置文件

打开配置文件:

bash 复制代码
~/.config/opencode/opencode.json

然后按你的第三方 API 平台信息,补充 provider 和 model 配置。


配置模板

下面是通用模板:

json 复制代码
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "<your-provider-id>": {
      "npm": "@ai-sdk/openai",
      "name": "<Provider Display Name>",
      "options": {
        "baseURL": "<your-api-base-url>/v1",
        "setCacheKey": true
      },
      "models": {
        "<model-id>": {
          "name": "<Model Display Name>",
          "limit": {
            "context": 154840,
            "output": 16384
          }
        }
      }
    }
  },
  "model": "<your-provider-id>/<model-id>"
}

配置示例

比如我使用一个自定义 provider:myapi,模型为 gpt-4o,那么可以这样写:

json 复制代码
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myapi": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My Custom API",
      "options": {
        "baseURL": "https://api.example.com/v1",
        "setCacheKey": true
      },
      "models": {
        "gpt-4o": {
          "name": "GPT-4o",
          "limit": {
            "context": 1048576,
            "output": 65535
          }
        }
      }
    }
  },
  "model": "myapi/gpt-4o"
}

注意事项

1. npm 包名要根据你的 API 类型调整

配置里的这一项:

json 复制代码
"npm": "@ai-sdk/openai"

不适合所有第三方供应商。

常见情况有:

  • 如果你接的是 OpenAI 原生接口,不一定有问题
  • 如果你接的是 Anthropic 相关接口,可能要改成:
json 复制代码
"npm": "@ai-sdk/anthropic"
  • 但大多数第三方平台,实际上提供的是 OpenAI 兼容接口,此时应使用:
json 复制代码
"npm": "@ai-sdk/openai-compatible"

2. model 字段要和上面 provider、models 对应

例如你上面定义的是:

  • provider id:myapi
  • model id:gpt-4o

那么这里就必须写:

json 复制代码
"model": "myapi/gpt-4o"

否则 OpenCode 无法正确找到默认模型。


相关推荐
Dust-Chasing4 小时前
Claude Code源码剖析 - Claude Code 上下文压缩机制
人工智能·python·ai
甲维斯4 小时前
MiMo Code 初体验,免费,易上手,适合新手!
人工智能
2301_764441334 小时前
主流手机pc品牌的端侧模型部署梳理
人工智能·windows·机器学习·智能手机·产品运营
虾壳云智能4 小时前
阿里云百炼 API 配置 OpenClaw 2.7.9 环境搭建
人工智能·阿里云百炼·open claw安装·open claw教程
Xzh04234 小时前
AI Agent 学习路线(Java 后端方向)
java·人工智能·学习
zhangpba4 小时前
IntelliJ IDEA 集成通义灵码
ai·idea
身如柳絮随风扬4 小时前
LangGraph State记忆机制深度解析:短期与长期记忆的实现原理与实战
ai
醒醒该学习了!4 小时前
视觉与声音大模型(理论篇)
人工智能
Cloud_Shy6184 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 33 - 35)
开发语言·人工智能·笔记·python·学习方法
救救孩子把4 小时前
HyperFrames by HeyGen 入门教程
人工智能·视频生成·heygen