В этом материале
OpenCode V1 и V2 имеют общее имя команды, но разные настройки провайдера и разрешений, требующие осознанного переноса.
Для перехода локального OpenCode с V1 на V2 недостаточно сохранить название команды. Оба поколения по умолчанию используют opencode, а конфигурация провайдеров и поля разрешений имеют разные документированные структуры.
Конкретная граница приложения
Введение V1 прямо предупреждает о невозможности сосуществования двух поколений под стандартным именем исполняемого файла. Каналы установки поэтому способны заменить прежнюю команду или конфликтовать с ней. До руководства провайдера определите установленное поколение. Пользовательские провайдеры V2 используют providers с пакетом выполнения, settings и моделями. Разрешения задаёт упорядоченный массив permissions с action/resource/effect. Старые permission, bash и task не становятся политикой V2 при сохранении текста. Рассматривайте перенос как миграцию настроек с отдельными проверками генерации и инструментов, а не свидетельство необходимости заново загружать локальную модель. Рабочие веса и адрес сервера часто являются независимой частью существующего процесса, которую не следует менять одновременно без причины (OpenCode V1 introduction).
Практический маршрут
До изменения сохраните рабочую конфигурацию V1 и запись небольшой задачи. Определите фактический исполняемый файл и версию документированным способом приложения. Сопоставьте провайдера с текущим справочником V2, сохранив endpoint и идентификатор модели при изменении структуры. Воссоздайте нужную политику текущими названиями действий V2 и порядком правил. Через /models выберите модель и начните объяснение только для чтения в учебном репозитории до проверяемого изменения (OpenCode V2 Providers) (OpenCode V2 Permissions).
Разобранный пример
Старая настройка подключается к локальному серверу и спрашивает перед командами. После переноса текст получается, но скопированная политика не действует ожидаемо из-за названий V1. Исправьте политику V2 отдельно от рабочего провайдера. Повторите просмотр Git и ограниченное изменение с проверкой соответствующих решений. Первый успешный ответ не доказывает полный перенос разрешений, контекста и поведения инструмента в новом поколении.
| Проверка | Запись |
|---|---|
| Владелец команды | Установленное поколение, которое сейчас предоставляет исполняемый файл opencode. |
| Перенос провайдера | Пакет V2, настройки endpoint и явный выбор провайдера и модели. |
| Перенос политики | Текущие действия V2 и порядок правил для нужных подтверждений. |
Как правильно прочитать сбой
Старый путь оболочки может вызвать другое поколение. Знакомая подпись также способна скрыть другую ссылку модели. Ошибку разбора конфигурации не исправляют расширением разрешений или переустановкой runtime. До понимания нового процесса сохраните исходные настройки. Статья не обещает автоматического переноса сессий и плагинов: эти объекты требуют собственной проверки поддержки текущим инструментом.
Что завершает проверку
Завершённый перенос воспроизводит нужный локальный путь генерации и границы проверки действий. Общее имя команды относится к упаковке, а не гарантирует совместимость настроек или полностью одинаковое поведение разных поколений приложения.
Связанные материалы: Воспроизводимый стек инференса: как сохранить результат GPU-пилота, LLM для кода на 12 ГБ VRAM: модель, контекст и запас.