Skip to main content
使用本指南运行 OpenCode 并搭配 CometAPI 使用。 该配置通过独立的自定义提供商提供四种 API 格式。 此配置已通过 OpenCode 1.18.16 测试。 官方参考:
将每个 your-model-id 值替换为来自以下页面的模型 ID: CometAPI 模型页面。请选择接受周围提供商条目所用 API 格式的模型。

前提条件

  • Node.js 和 npm,或 OpenCode 指南中的其他安装方法
  • 拥有来自以下位置的有效 API 密钥的 CometAPI 账户: 控制台
  • 来自以下页面的一个或多个模型 ID: CometAPI 模型页面

了解 API 格式

每个提供商 ID 都选择一个 SDK 适配器和一种 API 格式。 本指南验证正常 OpenCode 代理轮次中使用的 Gemini 流式操作。Google 适配器会将 :streamGenerateContent?alt=sse 追加到模型路径。 请勿添加 /chat/completions/responses/messages 或 Gemini 模型 路径到 baseURL。每个适配器都会追加其所需的操作路径。

了解运行时权限

OpenCode 使用启动它的进程所具有的权限运行。请在目标项目目录中启动 OpenCode,并保留 git 等回滚途径。在需要更严格的文件系统、进程、 网络或 API 密钥边界时,请使用容器或沙箱。

配置 OpenCode

1

安装 OpenCode

使用官方 npm 包安装 OpenCode:
确认 CLI 可用:
请参阅 OpenCode 安装指南 ,了解 Homebrew、Windows、Docker 及其他安装方法。
2

设置 CometAPI API 密钥

将 CometAPI API 密钥存储在 COMETAPI_KEY 环境变量中。
读取 API 密钥而不在终端中显示:
在每个启动 OpenCode 的 shell 会话中设置该变量。请勿 将 API 密钥提交到版本控制系统。
3

选择配置位置

使用以下任一受支持的位置:
  • 全局配置:~/.config/opencode/opencode.json
  • 项目配置:项目根目录中的 opencode.json
OpenCode 会合并配置文件。项目配置会覆盖全局配置中 冲突的值。如果希望在每个项目中使用这些提供商,请使用全局文件。如果某个 仓库需要自己的模型条目,请使用项目文件。
4

添加 CometAPI 提供商

创建选定的配置文件。如果该文件已包含一个 provider 对象,请将以下四个条目合并到该对象中:
分别替换每个 your-model-id 键。四个条目可以使用 不同的模型 ID。该配置未设置顶层 model。这样您便可通过 /models 选择所需的 API 格式和模型。
请勿在此配置中使用 /connectapiKey 字段会读取 COMETAPI_KEY 环境变量。未设置的变量会解析为空 值,而非已存储的 /connect API 密钥。
5

选择并验证各个提供商

在您希望 OpenCode 访问的项目中启动它:
运行 /models,然后选择一个 provider/model 条目。在本指南的四次验证运行中, 每个模型轮次都使用了所选条目对应的 API 格式;未观察到跨格式请求扇出或自动 协商 API 格式。要从命令行验证聊天补全,请运行:
要从命令行验证响应,请运行:
要从命令行验证 Anthropic 消息,请运行:
要从命令行验证 Gemini generateContent,请运行:

故障排除

确认配置为有效的 JSON。每个自定义条目必须位于 顶层 provider 对象内,且每个模型 ID 必须位于 对应的 models 对象内。重启 OpenCode,然后再次打开 /models
确认在启动 OpenCode 的 shell 中已设置 COMETAPI_KEY。 未设置的 {env:COMETAPI_KEY} 引用会变为空值。更改 shell 配置文件后,请打开新的 shell。
查看 CometAPI 模型页面,然后替换所选提供商条目中的模型 ID。确认该模型接受该提供商的 API 格式。
对于聊天补全、响应和消息,请将 baseURL 保持为 /v1。对于 Gemini,请使用 /v1beta 。请勿在 baseURL 中包含操作路径。
请使用接受所选提供商 API 格式的模型 ID。不要 假设同一个模型 ID 接受全部四种格式。
OpenCode 会合并全局配置和项目配置。当希望全局 提供商条目保持不变时,请重命名项目提供商 ID 或移除其冲突的值。
OpenCode 使用启动它的进程所具有的权限。在需要更严格访问边界时,请在 容器或沙箱中运行 OpenCode。

相关资源

最后修改于 2026年8月13日