Sub2API OpenCode 配置指南用于在 OpenCode 中将 Sub2API 配置为 AI 提供方。
一、用途 Sub2API 是开源 AI API 网关,可将 Antigravity、Claude、OpenAI、Gemini 订阅转换为统一 API 端点,支持多账号管理、智能调度、粘性会话、token 级计费与并发控制。官方域名为 sub2api.org 与 pincc.ai,其他使用 Sub2API 名称的站点可能为第三方部署。本技能帮助用户在 OpenCode 中正确接入该网关。
二、端点架构 Sub2API 针对不同模型族与协议暴露不同端点:
- /antigravity/v1/messages:Anthropic Messages API,Claude(经 Antigravity),使用 @ai-sdk/anthropic
- /antigravity/v1beta/:Google Generative AI API,Gemini(经 Antigravity),使用 @ai-sdk/google-generative-ai
- /v1/messages:Anthropic Messages API,Claude(直连/混合),使用 @ai-sdk/anthropic
- /v1beta/:Google Generative AI API,Gemini(直连/混合),使用 @ai-sdk/google-generative-ai
- /v1/chat/completions:OpenAI Chat Completions,OpenAI 模型,使用 @ai-sdk/openai-compatible
最常见的错误是 SDK 选错:切勿对 Claude 或 Gemini 使用 @ai-sdk/openai-compatible,它会请求 /chat/completions,而该路径在 /antigravity/ 下不存在,导致 404 page not found。正确映射为:Claude→@ai-sdk/anthropic→/v1/messages;Gemini→@ai-sdk/google-generative-ai→/v1beta/;OpenAI→@ai-sdk/openai-compatible→/v1/chat/completions。
三、混合调度 当 Sub2API 管理端启用混合调度时,通用端点 /v1/messages 与 /v1beta/ 也会路由到 Antigravity 账号。注意:Anthropic Claude 与 Antigravity Claude 不能在同一对话上下文中混用,应使用分组隔离。
四、配置模板 技能提供三类模板:Claude 模型经 Antigravity、Gemini 模型经 Antigravity、Claude+Gemini 完整配置。配置写入 ~/.config/opencode/opencode.json(全局)或 ./opencode.json(项目级),使用 $schema 为 https://opencode.ai/config.json。model 字段格式为 <provider-key>/<model-id>,provider 键必须与之一致。API Key 建议使用 {env:SUB2API_KEY} 语法并通过环境变量设置,避免硬编码。
五、分步流程
- 收集信息:Sub2API 域名、API Key(sk- 开头,从管理面板 API Keys 获取)、需要使用的模型(Claude、Gemini 或两者)、端点类型(Antigravity 或直连)。
- 验证连通性:用 curl 测试 Claude 端点(/antigravity/v1/messages)、可用模型(/antigravity/v1/models)、Gemini 端点(/antigravity/v1beta/models)。成功返回含 "type": "message" 的 JSON;404 表示路径错误;503 表示上游账号限流或不可用。
- 写入配置:使用对应模板。
- 重启并验证:重启 OpenCode 后用 /models 命令检查模型是否出现。
六、故障排查
- 404 page not found:依次检查是否对 Claude/Gemini 误用 openai-compatible SDK、Gemini 的 baseURL 是否误写 /v1 而非 /v1beta、baseURL 是否缺少 /antigravity、模型 ID 是否正确。
- 503 Service temporarily unavailable:无可用上游账号或全部处于冷却,需等待冷却或增加上游账号。
- Configuration is invalid:provider 字段必须是对象 {},不能是字符串,且所有提供方定义须位于 provider 对象内。
- 图片/PDF 不生效:模型配置缺少 modalities,OpenCode 默认仅文本。
- Claude Code Plan Mode 卡住:已知问题,按 Shift+Tab 手动退出。
七、其他参考 Nginx 反向代理需在 http 块加 underscores_in_headers on;,否则含下划线的请求头(如 session_id)被丢弃,影响粘性会话路由。Claude Code CLI(非 OpenCode)使用环境变量 ANTHROPIC_BASE_URL 与 ANTHROPIC_AUTH_TOKEN。典型 Antigravity 可用模型包括 claude-sonnet-4-6、claude-opus-4-6、claude-opus-4-6-thinking、claude-sonnet-4-5、claude-sonnet-4-5-thinking、claude-opus-4-5-thinking,以及 gemini-3-flash、gemini-3-pro-low/high、gemini-3.1-pro-low/high、gemini-3.1-flash-image、gemini-2.5-flash 等;实际可用模型取决于你的 Sub2API 实例,应查询 models 端点确认。参考链接:Sub2API GitHub https://github.com/Wei-Shaw/sub2api,Sub2API Demo https://demo.sub2api.org/,OpenCode 文档 https://opencode.ai/docs,OpenCode Provider 配置 https://opencode.ai/docs/providers/。