← 文档
OpenCode 接入指南
1. 适用版本与验证日期
最近一次用版本 2.1.3 于 2026-10-26 实测。
2. 前置条件
需要账号、API key 和正余额。没有余额时请求返回 HTTP 402(insufficient_quota)。
3. 配置
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tokenwave": {
"npm": "@ai-sdk/anthropic",
"name": "TokenWave",
"options": {
"baseURL": "https://api.tokenwave.dev/v1",
"apiKey": "{env:ATR_API_KEY}"
},
"models": {
"claude-sonnet-5-5": {
"name": "claude-sonnet-5-5",
"limit": {
"context": 1000000,
"output": 128000
}
}
}
}
}
}export ATR_API_KEY=sk-atr-YOUR_KEY{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tokenwave": {
"npm": "@ai-sdk/anthropic",
"name": "TokenWave",
"options": {
"baseURL": "https://api.tokenwave.dev/v1",
"apiKey": "{env:ATR_API_KEY}"
},
"models": {
"claude-sonnet-5-5": {
"name": "claude-sonnet-5-5",
"limit": {
"context": 1000000,
"output": 128000
}
}
}
}
}
}export ATR_API_KEY=sk-atr-YOUR_KEY{
"$schema": "https://opencode.ai/config.json",
"provider": {
"tokenwave": {
"npm": "@ai-sdk/anthropic",
"name": "TokenWave",
"options": {
"baseURL": "https://api.tokenwave.dev/v1",
"apiKey": "{env:ATR_API_KEY}"
},
"models": {
"claude-sonnet-5-5": {
"name": "claude-sonnet-5-5",
"limit": {
"context": 1000000,
"output": 128000
}
}
}
}
}
}setx ATR_API_KEY "sk-atr-YOUR_KEY"4. 选模型
这些模型能用于 OpenCode。上面的示例使用你在这里选的模型。
查看能用于 OpenCode 的模型5. 自检
运行 opencode,打开模型选择器(/models),选 TokenWave 提供方下的模型。
6. 发第一条提示
发送这句提示:“Reply with the single word ready.”然后打开请求记录页:一分钟内会看到这条请求,含模型、token 数和费用。
打开请求记录7. 已知限制
带 Messages 接口的模型用 Anthropic 包并保留提示缓存,其余用 OpenAI 兼容包。上下文与输出上限按目录填写。
8. 排错
| 症状 | 原因 | 修复 |
|---|---|---|
| 401 Unauthorized | key 填错、已吊销,或带了多余空格。 | 到 API keys 页重新复制完整的 key,并确认它是有效状态。 |
| 403 Forbidden | 这个 key 不能用该模型,或账户受限。 | 到 API keys 页检查 key 允许的模型,或换一个 key。 |
| 404 Not Found | 基础地址不对:/v1 重复或缺失。 | 原样使用示例里的地址。Claude Code 不带 /v1,其他工具带 /v1。 |
| model not found | 模型 ID 写错,或你的 key 不能用它。 | 从目录复制 ID,或用 GET /v1/models 查看 key 可用的模型。 |
| 400 Extra inputs are not permitted | 工具发了所选线路不接受的字段,多见于经转换的接口。 | 选一个提供该工具原生接口的模型(见模型页的卡片),或升级工具。 |
| 返回 HTML 页面或 “Attention Required”,不是 JSON | 网关前面的网页防火墙拦截了请求体。 | 重试一次。反复出现时,带上时间和请求 ID 联系支持。 |
| 我传的某个参数好像没有生效 | 网关只转发该接口已知支持的字段,其余字段会被丢弃(不会报错)。 | 查看响应头 x-atr-ignored-fields:它列出了没有被转发的顶层字段。去掉这些字段,确实需要时联系支持。 |
9. 还原
从 opencode.json 删除 tokenwave 提供方,并移除 ATR_API_KEY。