ТЕХНОЛОГИИ

OpenCode custom provider: локальная модель в V2

В этом материале
ГЛАВНОЕ ЗА МИНУТУ

Пользовательские провайдеры OpenCode V2 используют providers, пакет выполнения, settings.baseURL и явные ссылки провайдер/модель.

Настраивайте пользовательского локального провайдера OpenCode V2 через структуру providers именно V2, затем выбирайте ссылку провайдер/модель. Старые примеры с другим форматом provider не являются надёжной заменой документации текущего поколения.

Конкретная граница приложения

У минимального пользовательского провайдера V2 несколько полей с разными назначениями. Ключ внутри providers является идентификатором провайдера в ссылках. Поле name задаёт подпись. Package выбирает реализацию, а settings.baseURL передаёт endpoint совместимому пакету. Записи models определяют доступные для выбора модели. Официальный пример использует @opencode/ai/providers/openai-compatible; настройки зависят от пакета, поэтому поле другой реализации может не действовать. Это особенно важно при переносе старых руководств V1. До изменения конфигурации запишите установленное поколение OpenCode: обе версии по умолчанию используют имя opencode. Понятная подпись провайдера не меняет идентификатор, который ожидает сервер модели. Сначала разделите эти сущности, затем проверяйте запрос через выбранную запись приложения. Для первой пробы используйте запрос только для чтения с явно вставленным исходным текстом, затем подключайте инструменты репозитория отдельным шагом. Успешный выбор записи модели не доказывает разрешение этих инструментов (OpenCode V2 introduction).

Практический маршрут

В opencode.jsonc определите providers с локальным идентификатором провайдера. Используйте package @opencode/ai/providers/openai-compatible, внесите существующий локальный endpoint в settings.baseURL и добавьте фактический идентификатор в models. Ссылка выбора объединяет идентификаторы провайдера и модели. Откройте /models, выберите запись и задайте вопрос только для чтения до попыток работы с файлами (OpenCode V2 Providers).

Разобранный пример

Назовите провайдера localstudio, а для записи модели используйте реальный идентификатор работающего локального сервера. Ссылка выбора состоит из localstudio, косой черты и этого идентификатора модели. Передайте небольшую функцию для объяснения. Отображаемое название может упростить список, но не должно скрывать, какая модель сервера фактически получает запрос и отвечает на задачу.

ПроверкаЗапись
Объект конфигурацииproviders вместо непроверенной конфигурации, скопированной из другого основного поколения.
Пакет runtime@opencode/ai/providers/openai-compatible и settings.baseURL для существующего локального endpoint.
ВыборЯвная ссылка провайдер/модель, видимая в текущей сессии приложения.

Как правильно прочитать сбой

Поле конфигурации влияет на поведение только при поддержке выбранным пакетом. При отсутствии модели проверьте идентификатор провайдера, запись модели и активную конфигурацию до изменения сервера. Запрет инструмента после успешного ответа относится к слою разрешений: он не доказывает отказ интеграции пользовательского провайдера и не требует автоматически менять работающий endpoint (OpenCode V2 Config).

Что завершает проверку

Сохраните минимальную запись провайдера и успешный ответ только для чтения. Разрешения конкретного агента добавляйте отдельно: исходная проверка должна подтверждать выбор модели без выдачи ненужного доступа к действиям внутри репозитория.

Связанные материалы: Воспроизводимый стек инференса: как сохранить результат GPU-пилота, LLM для кода на 12 ГБ VRAM: модель, контекст и запас.

← Все материалы