OpenCode

Подключение OpenCode к ToyGate как к OpenAI-compatible custom provider.

Интеграции

OpenCode может использовать текущий OpenAI Chat Completions endpoint ToyGate через официальный пакет провайдера @ai-sdk/openai-compatible.

Настройка

Перед запуском OpenCode задайте ключ шлюза:

export TOYGATE_API_KEY="gw_..."

В конфигурации OpenCode добавьте запись верхнего уровня provider (не массив providers):

json
{"$schema": "https://opencode.ai/config.json","provider": {  "toygate": {    "npm": "@ai-sdk/openai-compatible",    "name": "ToyGate",    "options": {      "baseURL": "https://api.toygate.store/v1",      "apiKey": "{env:TOYGATE_API_KEY}"    },    "models": {      "gpt-5.5": {        "name": "GPT-5.5"      },      "claude-opus-4-8": {        "name": "Claude Opus 4.8"      }    }  }}}

Объект models перечисляет слаги шлюза, которые OpenCode будет предлагать. Используйте включённые слаги из каталога, а не внутренние ID upstream-моделей.

Проверка

Запустите non-interactive запрос с выбором provider/model:

opencode run -m toygate/gpt-5.5 'Say hi'

Ожидаемый результат: OpenCode выведет ответ ассистента через ToyGate. Для другой настроенной модели укажите -m toygate/<model>; не используйте --provider.

Решение проблем

  • HTTP 401 с type: "authentication_error" и code: null — шлюз получил заголовок, но отклонил ключ. Проверьте, что TOYGATE_API_KEY экспортирован, начинается с gw_, существует в клиентском кабинете или административной панели и не отозван. После изменения переменной перезапустите OpenCode.
  • 404 model_not_found — выбранный слаг шлюза отсутствует в каталоге либо модель отключена. Проверьте curl <GatewayUrl/>/v1/catalog | jq '.data[].id', затем обновите объект models и значение -m.
  • upstream_model_unavailable — запись каталога указывает на внутренний ID модели, который upstream больше не распознаёт. Это должен исправить оператор.

URL шлюза: https://api.toygate.store