AIClient-2-API/docs/OPENCODE_CONFIG_EXAMPLE.md
hex2077 c632f184c6 feat(claude-kiro): 为空工具列表添加占位工具避免API错误
refactor(usage-api): 提取支持的提供商列表为共享常量
fix(usage-service): 移除重置时间的本地化格式化避免显示问题
style(usage-manager): 为不支持用量显示的提供商优化UI展示
chore: 更新README中的文档链接指向docs目录
2026-02-03 18:55:22 +08:00

4.3 KiB
Raw Blame History

OpenCode 配置示例及重点解释

本文档提供了一个典型的 opencode 配置文件示例,并对其中的关键配置项进行了详细解释,帮助您快速理解如何配置不同的 AI 服务提供商。

配置示例 (config.json)

{
    "plugin": [],
    "provider": {
        "kiro": {
            "npm": "@ai-sdk/anthropic",
            "name": "AIClient2API-kiro",
            "options": {
                "baseURL": "http://localhost:3000/claude-kiro-oauth/v1",
                "apiKey": "123456"
            },
            "models": {
                "claude-opus-4-5": {
                    "name": "Claude Opus 4.5 Kiro"
                },
                "claude-sonnet-4-5-20250929": {
                    "name": "Claude Sonnet 4.5 Kiro"
                }
            }
        },
        "qwen": {
            "npm": "@ai-sdk/openai-compatible",
            "name": "AIClient2API-qwen",
            "options": {
                "baseURL": "http://localhost:3000/openai-qwen-oauth/v1",
                "apiKey": "123456"
            },
            "models": {
                "qwen3-coder-plus": {
                    "name": "Qwen3 Coder Plus Openai "
                }
            }
        },
        "gemini-antigravity": {
            "npm": "@ai-sdk/google",
            "name": "AIClient2API-antigravity",
            "options": {
                "baseURL": "http://localhost:3000/gemini-antigravity/v1beta",
                "apiKey": "123456"
            },
            "models": {
                "gemini-2.5-flash-preview": {
                    "name": "gemini-2.5-flash-antigravity"
                },
                "gemini-3-flash-preview": {
                    "name": "gemini-3-flash-antigravity"
                },
                "gemini-3-pro-preview": {
                    "name": "gemini-3-pro-antigravity"
                }
            }
        },
        "gemini-cli": {
            "npm": "@ai-sdk/google",
            "name": "AIClient2API-geminicli",
            "options": {
                "baseURL": "http://localhost:3000/v1beta",
                "apiKey": "123456"
            },
            "models": {
                "gemini-2.5-flash-preview": {
                    "name": "gemini-2.5-flash-geminicli"
                },
                "gemini-3-flash-preview": {
                    "name": "gemini-3-flash-geminicli"
                },
                "gemini-3-pro-preview": {
                    "name": "gemini-3-pro-geminicli"
                }
            }
        }
    },
    "$schema": "https://opencode.ai/config.json"
}

配置重点解释

1. provider (服务提供商配置)

这是配置的核心部分,每个键(如 kiro, qwen, gemini-cli)代表一个独立的服务提供商实例。

  • npm (SDK 适配器):

    • 指定底层使用的 AI SDK。例如
      • @ai-sdk/anthropic: 用于 Anthropic (Claude) 系列模型。
      • @ai-sdk/openai-compatible: 用于兼容 OpenAI 接口标准的模型(如通义千问 Qwen
      • @ai-sdk/google: 用于 Google Gemini 系列模型。
    • 重点: 必须确保 npm 字段与您要使用的模型协议匹配,否则会导致连接失败。
  • options (连接参数):

    • baseURL: API 的访问地址。在示例中,许多是内网或中转地址(如 http://localhost:3000/...)。
    • apiKey: 访问 API 所需的身份验证密钥。
  • models (模型映射):

    • 定义该提供商下可用的模型列表。
    • 键名 (ID): 实际调用时使用的模型 ID例如 claude-opus-4-5)。
    • name: 在 UI 界面上显示的友好名称。
    • 重点: 这里的键名必须与服务端实际支持的模型标识符一致。

2. 区分同类型的不同实例

在示例中,有两个 gemini 相关的配置:gemini-antigravitygemini-cli

  • 它们虽然都使用 @ai-sdk/google,但通过不同的 baseURL 区分。
  • 这允许您在同一配置中接入来自不同网关或环境的同类模型,并通过自定义的 name(如 gemini-2.5-flash-antigravity vs gemini-2.5-flash-geminicli)在前端进行区分。

3. $schema

  • 用于提供 JSON 模式验证。在支持的编辑器(如 VS Code它可以为您提供自动补全和实时错误检查。