适用场景
OpenCode 支持通过自定义 provider 接入 OpenAI 兼容模型。天池 Token 对外提供 /v1/chat/completions,因此可以按 OpenAI-compatible provider 方式配置。
推荐配置思路:
baseURL使用https://a.skypool.xyz/v1- API Key 使用 Consumer API Key
- 模型 ID 使用平台模型名,例如
gemma4:26b - 通过环境变量保存密钥,避免把 Key 写进项目仓库
准备工作
先确认本机已经能直接调用天池 Token:
curl -X POST "https://a.skypool.xyz/v1/chat/completions" \ -H "Authorization: Bearer <consumer_api_key>" \ -H "Content-Type: application/json" \ --data-raw '{ "model": "gemma4:26b", "messages": [ { "role": "user", "content": "请返回一句简短的接入成功提示。" } ], "max_tokens": 64, "stream": false }'再设置环境变量。
PowerShell 当前窗口:
$env:SKYPOOL_API_KEY="stc-..."Windows 持久化:
setx SKYPOOL_API_KEY "stc-..."macOS / Linux:
export SKYPOOL_API_KEY="stc-..."方式一:通过 /connect 保存凭据
如果你希望让 OpenCode 管理认证信息,可以先运行 OpenCode,然后执行:
/connect在 provider 选择里选择 Other 或自定义 provider,填入:
| 字段 | 填写内容 |
|---|---|
| Provider ID | skypool |
| Provider 名称 | Skypool Token |
| API Key | Consumer API Key |
认证信息保存后,再用下面的 opencode.json 配置 provider 和模型列表。
方式二:使用 opencode.json
在项目根目录创建或更新 opencode.json:
{ "$schema": "https://opencode.ai/config.json", "provider": { "skypool": { "npm": "@ai-sdk/openai-compatible", "name": "Skypool Token", "options": { "baseURL": "https://a.skypool.xyz/v1", "apiKey": "{env:SKYPOOL_API_KEY}" }, "models": { "gemma4:26b": { "name": "gemma4 26B", "limit": { "context": 128000, "output": 8192 } } } } }}说明:
@ai-sdk/openai-compatible适用于 OpenAI 兼容的/v1/chat/completions服务baseURL填到/v1,不要填完整的/v1/chat/completionsapiKey建议引用环境变量,不要提交明文 Keymodels中的键必须和天池 Token 平台模型 ID 一致limit用于告诉 OpenCode 模型上下文和输出上限,请按实际模型能力调整
选择模型并测试
启动 OpenCode 后,在会话里打开模型选择:
/models选择 Skypool Token 下的模型,例如 gemma4:26b。然后发送一个小任务测试:
请阅读当前项目结构,并用三句话总结它的主要模块。如果 OpenCode 能正常返回,并且控制台活动记录里能看到对应请求,说明接入完成。
排查清单
| 现象 | 处理方式 |
|---|---|
| provider 不出现 | 检查 opencode.json 是否在项目根目录,JSON 是否合法 |
| 模型不出现 | 检查 models 的模型 ID 是否和平台返回一致 |
| 认证失败 | 确认 SKYPOOL_API_KEY 已在启动 OpenCode 的同一个终端中设置 |
404 | 检查 baseURL 是否为 https://a.skypool.xyz/v1,不要写成 /chat/completions |
| 输出中断 | 先用非流式 curl 验证,再降低 max_tokens 或换用更稳定模型 |