OpenCode
用同一个密钥让 OpenCode 的 Anthropic 服务商指向 OneProvider,也可以选择把 gpt-* 模型一并路由过来。含配置示例和默认模型选择。
OpenCode 通过可插拔的服务商调用 Anthropic 和 OpenAI 模型。把 anthropic 块指向 OneProvider 就完成了。
全部模型、功能与价格 面向 AI 智能体的文档索引:https://oneprovider.dev/docs/llms.txt 开始之前:从个人中心获取密钥 打开您的个人中心:Telegram 机器人 @oneprovider_robot (“个人中心”)或 app.oneprovider.dev 。点击“签发密钥”,为它命名(例如此客户端的名称)并设置消费限额,然后复制密钥。充值也在同一个地方进行。详细了解个人中心与密钥 。 配置
配置路径:~/.config/opencode/opencode.json(或 opencode.jsonc)。如果文件不存在,请先创建。
{
"provider": {
"anthropic": {
"options": {
"baseURL": "https://api.oneprovider.dev/v1",
"apiKey": "sk-your-key-here"
},
"npm": "@ai-sdk/anthropic"
}
},
"$schema": "https://opencode.ai/config.json"
} API 密钥可以直接写在配置里(如上),也可以不放进文件:在 OpenCode 中使用 /connect 命令(或在终端运行 opencode auth login)会把它单独保存(1.x 中位于 ~/.local/share/opencode/auth.json),配置里只保留 baseURL。
更简单的做法
- 按项目配置。 把同样的 JSON 放进项目根目录的
opencode.json:它只在该项目内生效,并会合并到全局文件之上。 - 密钥取自环境变量。 写成
"apiKey": "{env:ONEPROVIDER_KEY}",再运行export ONEPROVIDER_KEY=sk-your-key-here。文件里不含任何机密,可以放心提交。如果变量未设置,会被替换为空字符串。
远程机器、CI、容器
无需通过 SSH 复制 ~/.config。把带有 {env:ONEPROVIDER_KEY} 的 opencode.json 放在仓库里,并在那台机器上设置 ONEPROVIDER_KEY(CI 机密、docker run -e、export)。在 OpenCode 1.x 中,也可以用一个变量传入整份配置:OPENCODE_CONFIG_CONTENT,内容为内联 JSON,在所有配置文件之后应用,不会写入磁盘。OPENCODE_CONFIG=/path/to/config.json 用于指向其他位置的配置文件。
export OPENCODE_CONFIG_CONTENT='{"provider":{"anthropic":{"npm":"@ai-sdk/anthropic","options":{"baseURL":"https://api.oneprovider.dev/v1","apiKey":"sk-your-key-here"}}}}'
opencode OpenCode 1.x 与 OpenCode 2
用 opencode --version 查看版本:版本号以 1 开头( OpenCode 1.x ,安装程序默认安装的版本)或以 2 开头( OpenCode 2 )。本页的配置是 1.x 格式(provider、npm、options),OpenCode 2 会从相同位置原样读取。2 的原生格式是可选的,用 providers、package、settings 写出同样的设置:
{
"providers": {
"anthropic": {
"package": "aisdk:@ai-sdk/anthropic",
"settings": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }
},
"openai": {
"package": "aisdk:@ai-sdk/openai",
"settings": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }
}
}
} 不要让 OpenCode 1.x 读取已改写为 2 格式的文件:两个版本读取的是同样的文件。OPENCODE_CONFIG 和 OPENCODE_CONFIG_CONTENT 只有 1.x 的文档提到;在 OpenCode 2 上,请使用项目中的 opencode.json,远程机器则使用 ONEPROVIDER_KEY 变量。
同时接入 gpt-* 模型
同一个密钥也适用于 GPT 模型——再添加第二个服务商块。两者都放在同一个文件里;选择模型时写成 provider/model-id。
{
"provider": {
"anthropic": { "options": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }, "npm": "@ai-sdk/anthropic" },
"openai": { "options": { "baseURL": "https://api.oneprovider.dev/v1", "apiKey": "sk-your-key-here" }, "npm": "@ai-sdk/openai" }
}
} 默认模型 保存后,在 OpenCode 中运行 /models 设置默认模型——Anthropic 用 claude-sonnet-5-5,OpenAI 用 gpt-6.1-terra。 如何选择模型
日常模型使用 anthropic/claude-sonnet-5-5:价格与质量均衡。架构设计和大型重构请切换到 anthropic/claude-opus-5-5,更看重速度而非深度时使用 anthropic/claude-haiku-5-5。GPT 模型请使用 openai 块:openai/gpt-6.1-terra 是均衡的默认选择,openai/gpt-6.1-sol 是旗舰档。打开 /models 即可选择;低成本模型也适合 OpenCode 的 small_model 设置,用于生成标题和处理简短任务。ID 见模型页面 ,费率见价格页面 。
常见错误与解决办法
404 “The requested API endpoint does not exist”
在 OpenCode 中,@ai-sdk/anthropic 服务商要求 baseURL 带 /v1:https://api.oneprovider.dev/v1。不要自己再加 /messages,也不要在这里使用不带路径的主机地址。
401 Invalid API key
配置中的密钥被截断,或者两端带有引号。您也可以运行 /connect 并在那里粘贴密钥(OpenCode 1.x 把它保存在 ~/.local/share/opencode/auth.json);然后从配置中删除 apiKey。
配置无法加载
从即时通讯软件或 Notion 复制来的智能引号会破坏 JSON。请用 jq . ~/.config/opencode/opencode.json 检查文件,或者想加注释的话改用 opencode.jsonc。
列表中没有这个模型
请严格按 provider/model-id 的格式选择,例如 anthropic/claude-sonnet-5-5,并确认文件里有对应的服务商块。
429 “Insufficient balance”
余额或密钥的消费限额已用完。请为个人中心充值余额;重试没有用。
数据流被截断
请关闭 VPN 或 VLESS 代理:它们会缓冲 SSE 并破坏 HTTP/2。
常见问题
配置文件在哪里?
~/.config/opencode/opencode.json(或 opencode.jsonc)。项目里也可以有自己的 opencode.json。
怎样让密钥不出现在文件里?
OpenCode 会替换环境变量:写成 "apiKey": "{env:ONEPROVIDER_KEY}",并在 shell 中 export 这个变量。
怎样在远程机器或 CI 中使用?
无需通过 SSH 复制文件:把带有 {env:ONEPROVIDER_KEY} 的 opencode.json 放在仓库里,并在那台机器上设置 ONEPROVIDER_KEY;或者(OpenCode 1.x)通过 OPENCODE_CONFIG_CONTENT 变量传入整份配置。见上面的“远程机器、CI、容器”。
能同时使用 Claude 和 GPT 吗?
可以。在 anthropic 块旁边加上本页的 openai 块;一个密钥两边都能用。
需要 Claude 或 OpenAI 账号吗?
不需要,OneProvider 密钥是唯一的凭据。
快速解答
该使用哪个 base URL?
Claude Code 和 Anthropic SDK 使用 https://api.oneprovider.dev。OpenAI SDK 和兼容 OpenAI 的客户端使用 https://api.oneprovider.dev/v1。同一个密钥可用于这两个地址;模型列表见模型页面 ,费率见价格页面 。
如何进行身份验证?
将完整的 sk-… 密钥放在 x-api-key 或 Authorization: Bearer 中,二选一,不要同时使用。请把密钥存放在环境变量中,不要写进会被提交的文件。了解更多身份验证说明 。
在哪里获取密钥?
在 Telegram 机器人 @oneprovider_robot 或 app.oneprovider.dev 打开您的个人中心,为余额充值,然后点击“签发密钥”。每个密钥都可以设置各自的消费限额。个人中心与 API 密钥 。
401、404 和 429 是什么意思?
401:密钥缺失、拼写有误或放错了请求头;请粘贴完整的密钥,不要带引号或空格。404:通常是 base URL 不对,例如缺少或重复了 /v1。429 且提示“Insufficient balance”:个人中心余额或密钥的消费限额已用完,请充值,不要反复重试;其他 429 属于速率限制,请等待 Retry-After 指定的时间。详情见:错误码 和故障排查 。
流式输出为什么会中断或被重置?
VPN 和 VLESS 代理常常会缓冲 SSE,或破坏 HTTP/2 协商。OneProvider 没有地区限制,也不会缓冲流式输出,请关闭代理后重试。
以上都没解决,该去哪里咨询?
请在 Telegram 联系 @Oneproviderhelpbot ,或在网页个人中心打开“客服”,并附上 HTTP 状态码和完整的错误信息。客服如何运作 。
最后更新: 2026-11-08 发现问题? @Oneproviderhelpbot