跳转到主要内容
opencode 通过 provider 配置管理模型。接入 powertokens 平台 时,推荐先使用 OpenAI-compatible custom provider,把 opencode 指向平台的 /v1/chat/completions 兼容接口。 本文面向 opencode 文本代理场景。/v1/models 中部分图片、语音、视频任务模型也会声明 openai,但它们不等于 opencode 可直接使用的文本 Chat Completions 模型。 如果你需要先判断模型应走哪个端点,请先看 文本模型协议与端点支持说明

路径选择

目标opencode providerBase URL推荐模型
推荐文本路径custom provider + @ai-sdk/openai-compatiblehttps://api.powertokens.ai/v1glm-5.2
MiniMax 文本路径custom provider + @ai-sdk/openai-compatiblehttps://api.powertokens.ai/v1MiniMax-M3
Claude/Anthropic 路径@ai-sdk/anthropic custom providerhttps://api.powertokens.ai/v1仅在你需要复核 /v1/messages 时使用

准备 API Key

powertokens 平台 API Key 放到环境变量中,避免写入仓库:
export POWERTOKENS_API_KEY="YOUR_POWERTOKENS_API_KEY"
也可以在 opencode TUI 里运行 /connect,按 provider 保存凭据。配置文件里的 provider ID 需要和 /connect 保存的 provider ID 一致。

OpenAI-compatible provider 示例

在项目中创建或更新 .opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "model": "powertokens/glm-5.2",
  "small_model": "powertokens/glm-4.5-air",
  "provider": {
    "powertokens": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "powertokens",
      "options": {
        "baseURL": "https://api.powertokens.ai/v1",
        "apiKey": "{env:POWERTOKENS_API_KEY}"
      },
      "models": {
        "glm-4.5-air": {
          "name": "glm-4.5-air"
        },
        "glm-5.2": {
          "name": "glm-5.2"
        },
        "MiniMax-M3": {
          "name": "MiniMax-M3"
        },
        "deepseek-v3-2-251201": {
          "name": "deepseek-v3-2-251201"
        }
      }
    }
  }
}
这个路径会走平台的 POST /v1/chat/completions

模型选择

OpenAI-compatible 路径默认使用 glm-5.2;MiniMax 场景使用 MiniMax-M3。需要 BytePlus 或 Seed 文本模型时,也优先放在 OpenAI-compatible provider 中。 不要把 image-generationopenai-video、TTS、Kling、Vidu 或 Wan 任务模型加入 opencode 文本 provider。完整文本模型矩阵见 文本模型协议与端点支持说明

Anthropic provider 示例

如果你要让 opencode 走 Claude/Anthropic Messages 路径,可以单独配置一个 @ai-sdk/anthropic custom provider。该路径会走平台的 /v1/messages,请单独复核当前 opencode 版本与目标模型的端到端行为。
{
  "$schema": "https://opencode.ai/config.json",
  "model": "powertokens-anthropic/glm-5.2",
  "small_model": "powertokens-anthropic/glm-5-turbo",
  "provider": {
    "powertokens-anthropic": {
      "npm": "@ai-sdk/anthropic",
      "name": "powertokens Anthropic",
      "options": {
        "baseURL": "https://api.powertokens.ai/v1",
        "apiKey": "{env:POWERTOKENS_API_KEY}"
      },
      "models": {
        "glm-5.2": {
          "name": "glm-5.2"
        },
        "glm-5-turbo": {
          "name": "glm-5-turbo"
        },
        "MiniMax-M3": {
          "name": "MiniMax-M3"
        },
        "deepseek-v3-2-251201": {
          "name": "deepseek-v3-2-251201"
        }
      }
    }
  }
}
Anthropic 路径默认优先使用 glm-5.2;MiniMax 场景推荐使用 MiniMax-M3deepseek-v3-2-251201 已通过 opencode Anthropic provider 工具链复测;Seed 系列中除 seed-1-6-flash-250715 外,也已通过复测,可按真实任务选择。不要把 seed-1-6-flash-250715 作为 opencode Anthropic provider 的默认模型。

验证

先确认 opencode 能读到 provider 和模型:
opencode models powertokens
opencode models powertokens-anthropic
再用非交互命令验证 OpenAI-compatible 路径:
opencode run --model powertokens/glm-5.2 "Reply exactly: ok"
你也可以用 MiniMax 文本模型验证同一条 OpenAI-compatible 路径:
opencode run --model powertokens/MiniMax-M3 "Reply exactly: ok"
启动 opencode:
opencode
在 TUI 中执行:
/models
选择 powertokens/glm-5.2powertokens-anthropic/glm-5.2 后发送一个小任务:
Reply with ok and print the active model name.

能力边界

  • opencode 的 @ai-sdk/openai-compatible provider 只覆盖文本 Chat Completions 语义。
  • supported_endpoint_types 里带 openai 不代表该模型适合 opencode 文本代理;请排除图片、语音、视频和任务型模型。
  • MiniMax-M3 等 reasoning 模型可能返回思考内容或消耗额外输出 token,请用真实任务确认展示效果。
  • supported_endpoint_types 里带 anthropic 不代表该模型适合 opencode Anthropic provider;opencode 会携带工具参数并使用流式输出,需要按端到端行为筛选模型。
  • deepseek-v3-2-251201 已通过 opencode Anthropic provider 带工具任务复测。
  • seed-1-6-flash-250715 上游不支持 /v1/messages;请优先走 OpenAI-compatible provider。
  • 不要把真实 API Key 写入 .opencode/opencode.json 或提交到仓库。