Рабочее пространство — персональная IDE и AI-агент OpenCode в Kubernetes. Агент читает и изменяет файлы, выполняет команды и отвечает в прикреплённом чате. IDE и чат работают с одними файлами; после остановки данные сохраняются на постоянном томе.

Администратор подготавливает шаблон рабочего пространства, который задаёт кластер, репозиторий, инструменты и параметры запуска. Рабочее пространство можно создать с репозиторием или с пустой рабочей директорией, если это предусмотрено шаблоном.

Создание рабочего пространства

Перед созданием подключите AI-провайдера. Если шаблон использует личные реквизиты, заполните в профиле учётные данные для его подключений Kubernetes и Git.

Чтобы создать рабочее пространство:

  1. Откройте «AI» → «Рабочие пространства» и нажмите «Создать рабочее пространство».
  2. На шаге «Шаблон» выберите шаблон. Для обычного запуска используйте активную опубликованную версию.
  3. Укажите «Название». Если шаблон разрешает выбор репозитория, заполните «URL репозитория» и при необходимости «Ветка или тег». Пустая ветка означает основную ветку репозитория. URL должен использовать HTTPS и относиться к подключению Git шаблона.
  4. При необходимости выберите «Ресурс сущности» и «Сущность каталога». Привязка задаётся при создании; она нужна, чтобы процессы сущности могли выполнять задания в этом рабочем пространстве.
  5. На шаге «Параметры шаблона» заполните обязательные параметры и проверьте значения по умолчанию.
  6. На шаге «Ассистент и срок» выберите «AI-провайдер» и «Срок работы», затем нажмите «Создать».
  7. Дождитесь статуса «Работает». Подробности создания доступны на вкладке «Операции».

Если доступных шаблонов нет, попросите администратора опубликовать и активировать версию шаблона и выдать доступ к нему. Создание также требует настроенных лимитов установки и разрешения create:workspaces.

Работа в IDE

Откройте карточку работающего рабочего пространства и нажмите «Открыть IDE». Разрешите браузеру открыть новую вкладку.

IDE открывается на отдельном HTTPS-домене. Вход проверяет портал; для повторного входа после истечения сессии используйте кнопку «Открыть IDE». Рабочая директория штатного шаблона — /workspace/code.

В терминале IDE команда opencode подключается к тому же агенту, который отвечает в чате портала. Изменения файлов видны в IDE и в чате. Для сохранения результата в Git проверьте изменения, создайте коммит и отправьте его в репозиторий.

Приложения рабочего пространства

На вкладке «Приложения» доступны приложения шаблона и опубликованные порты. В стартовом шаблоне приложение «Терминал» открывает командную строку в браузере с доступом к файлам рабочего пространства. Его может открыть только владелец с правом обновления пространства.

Чтобы открыть приложение, нажмите «Открыть» в его карточке. Индикатор «Работает» означает, что порт слушается в поде; готовность самого приложения проверьте после открытия. После запуска сервера нажмите «Обновить», чтобы перечитать состояние портов.

Публикация порта

Для предпросмотра веб-приложения опубликуйте его порт:

  1. Запустите HTTP-сервер в IDE, веб-терминале или через агента. Он должен быть доступен по 127.0.0.1 внутри пода. Публикация поддерживает HTTP и WebSocket.
  2. Откройте вкладку «Приложения» и нажмите «Опубликовать порт». Можно также нажать «Опубликовать» у нужного порта в блоке «Порты, которые слушаются в поде».
  3. Заполните «Название», «Порт» и «Уровень доступа». Допустимые уровни ограничены шаблоном.
  4. Подтвердите публикацию и откройте полученный адрес. При необходимости скопируйте его кнопкой «Скопировать адрес».

Публикация доступна владельцу с правом update:workspaces или update:workspace. Она создаёт маршрут и не запускает приложение. Для сервера с проверкой заголовка Host разрешите внешний хост опубликованного порта.

Адрес имеет вид https://p1-ddp-ws-<суффикс>.<домен-рабочих-пространств>. Количество свободных адресов задаёт шаблон; в стартовом шаблоне их восемь. Если свободных адресов нет, отмените ненужную публикацию. Порт, уже занятый приложением шаблона, повторно не публикуется.

Доступ по ссылке

Перед передачей ссылки выберите подходящий «Уровень доступа»:

УровеньКто может открыть
«Только владелец»Владелец с правом обновления рабочего пространства
«Пользователи DDP»Любой вошедший в портал пользователь, который не заблокирован
«Публично»Любой посетитель без входа в портал

Доступ по ссылке к приложению не предоставляет доступ к карточке пространства, IDE или чату. Веб-терминалы оставляйте доступными только владельцу: команды получают доступ к его файлам и токенам внутри пода.

Уровень опубликованного порта меняется в его строке. Чтобы закрыть адрес и освободить место, нажмите «Отменить публикацию» и подтвердите действие. Сервер внутри пода при этом продолжает работать. Изменения маршрутов применяются в течение примерно 15 секунд.

Остановка рабочего пространства делает приложения недоступными; после запуска опубликованные адреса снова используются. Если после обновления шаблона появился текст «Адрес не зарезервирован текущей версией шаблона», отмените такую публикацию и опубликуйте порт в свободный адрес.

Задание агенту в чате

Чтобы агент изменил проект:

  1. В карточке рабочего пространства нажмите «Открыть чат» или прикрепите пространство в AI-ассистенте кнопкой «Прикрепить рабочее пространство».

  2. Убедитесь, что чат показывает прикреплённое рабочее пространство.

  3. Отправьте задачу с ожидаемым результатом, например:

    Изучи проект, добавь проверку /healthz и тест для неё. Запусти связанные тесты и покажи изменённые файлы. Коммит не создавай.
  4. Проверьте ответ, выполненные команды и изменения файлов. История заданий доступна также на вкладке «Задания» карточки пространства.

Одновременно в рабочем пространстве выполняется одно задание. Следующие сообщения ожидают в очереди. Остановка ответа прерывает текущее задание; само рабочее пространство продолжает работать.

Режим подтверждений задаёт, выполняет ли агент действия автоматически или запрашивает разрешение. В режиме с подтверждениями ответьте на запрос в чате; сохранённое разрешение на повторяющееся действие можно отозвать. Подробности — в руководстве по чату рабочего пространства.

Остановка и срок работы

Для остановки нажмите «Остановить» и подтвердите действие. IDE и текущее задание прерываются, файлы и состояние на постоянном томе сохраняются.

«Срок работы» задаётся от 1 до 720 часов. По истечении срока портал останавливает рабочее пространство автоматически. Остановленные пространства не занимают места в лимите запущенных пространств; их постоянные тома продолжают занимать хранилище.

Для продолжения нажмите «Запустить». При запуске штатный шаблон сохраняет существующую рабочую копию Git; повторное клонирование не выполняется. Изменения в удалённом репозитории получите обычными командами Git.

Обновление шаблона

Публикация новой активной версии шаблона не обновляет существующие рабочие пространства автоматически.

Чтобы применить новую версию:

  1. Остановите рабочее пространство.
  2. Нажмите «Обновить версию».
  3. Проверьте выбранную версию и параметры. Если активная опубликованная версия шаблона новее текущей, форма сразу предлагает её. Текущий черновик остаётся выбранным, если он доступен пользователю. При необходимости выберите другую доступную версию. Форма отмечает новые, удалённые и изменённые значения.
  4. Подтвердите обновление и проверьте его результат на вкладке «Операции». Переход на другую версию доступен и без изменения значений параметров.
  5. После успешного обновления запустите рабочее пространство.

Данные постоянных томов сохраняются. Изменение шаблона, которое удаляет или заменяет существующий постоянный том, отклоняется. Файлы, которыми управляет шаблон, при следующем запуске обновляются по политике доставки файлов.

Диагностика

Сначала откройте карточку пространства и найдите последнюю операцию с ошибкой. Используйте подходящую вкладку:

ВкладкаЧто проверить
«Операции»Вывод OpenTofu при создании, запуске, обновлении или удалении
«Диагностика»Состояние StatefulSet, пода, контейнеров и постоянных томов, события Kubernetes, текущие и предыдущие логи контейнеров
«Задания»Статус задания, вызовы инструментов и ошибки агента

Типовые причины и действия:

СимптомДействие
Не удаётся клонировать репозиторийПроверьте URL и токен Git той учётной записи, которую использует шаблон
Под не скачивает образПопросите администратора проверить image_pull_secrets шаблона и Secrets в целевом неймспейсе
Постоянный том не готовПроверьте с администратором класс хранения и доступный объём
Ошибка контейнера bootstrapПрочитайте его лог; проверьте файлы и скрипты шаблона
IDE не открывается при работающем подеПроверьте с администратором DNS, TLS и Ingress отдельного домена IDE
Достигнут лимит запущенных пространствОстановите ненужное пространство или попросите администратора изменить лимит

После устранения причины используйте «Повторить» у неуспешной операции. Для повторения требуются права на соответствующую операцию.

Удаление

Перед удалением отправьте нужные изменения в Git или скопируйте файлы из IDE. Нажмите «Удалить» и подтвердите действие.

Удаление уничтожает объекты рабочего пространства в Kubernetes и постоянные данные. Остановка подходит для перерыва в работе, удаление — для окончательного освобождения ресурсов.