# Как подключить OpenCode к OpenAI-compatible API

OpenCode работает через OpenAI-compatible провайдера: три параметра, smoke-тест, затем tools и контекст. Порядок важен — каждый пропущенный шаг превращает интеграцию в отладку вслепую.

- Категория: Инструменты
- Автор: Редакция NormaHub
- Техническая проверка: Техническая проверка NormaHub
- Опубликовано: 2026-09-06
- Обновлено: 2026-09-24

## Три параметра

Агенту нужен отдельный API-ключ в переменной окружения процесса, base URL https://api.normahub.cc/v1 и model ID из текущего каталога. Не добавляйте /chat/completions к base URL вручную — путь подставит клиент.

Проверьте, что модель доступна именно этому ключу и поддерживает нужный endpoint. Названия полей provider-конфига зависят от версии OpenCode: сверяйтесь с документацией установленной версии, а не с примером месячной давности.



- отдельный ключ для агента

- base URL с /v1, без дописок

- model ID из GET /v1/models

## Короткий запрос первым

Начните с короткого текста без tools и большого контекста. Зафиксируйте статус, фактическую модель и X-Request-Id: smoke-тест за минуту показывает, где ошибка — в ключе, маршруте или содержимом.

Только после зелёного smoke-теста подключайте tools и рабочий размер контекста. Прыжок сразу в боевую конфигурацию превращает отладку в гадание по трём переменным.

## Агент поэтапно

Откройте небольшой проект без секретов, попросите read-only анализ, потом одну контролируемую правку. После каждого шага — diff и история запросов.

Если SDK-запрос проходит, а агент буксует, виноваты обычно системный контекст, tools или размер проекта, а не совместимость API. Это другой payload — не делайте выводов по одному curl.

## Ключ и лимиты для агента

Coding-сессии с большим контекстом сжигают токены быстрее, чем кажется: агенту положен собственный ключ с modest spend limit. Ключ от продакшена или общий командный агенту не давайте.

Конфиг с model ID можно коммитить, секрет — нет. Ключ живёт в окружении процесса, а не в файле рядом с проектом.

## Контекст и модель

Когда агент упирается в лимит контекста, сужайте область: один пакет вместо репозитория, read-only вместо свободной правки. Проверьте context_window в каталоге — может, нужна модель с большим окном, а не более длинные попытки.

Рост входа при одинаковых задачах означает лишний контекст, который агент тащит сам. Это одновременно медленно и дорого — режется дисциплиной области.

## Что сохранить для отката

Зафиксируйте версию, дату, model ID и base URL. Откат — это возврат прежней конфигурации провайдера, распадающийся на одну команду.

При сбое сохраняйте статус и X-Request-Id, но не прикладывайте в тикет исходники и секреты. И не меняйте модель, endpoint и tools одновременно — иначе не поймёте, что сломалось.



- версия OpenCode и дата проверки

- model ID и base URL

- менять по одному параметру
