AI-ассистент — чат, встроенный в Deckhouse Development Portal (DDP, портал). Он отвечает на вопросы о портале, анализирует данные каталога и выполняет задачи с помощью инструментов MCP (Model Context Protocol).

На вопросы в AI-ассистенте отвечает AI-агент. По умолчанию выбран платформенный агент, который разворачивается вместе с порталом. Агент обращается к языковой модели через AI-провайдера пользователя.

Для работы с AI-ассистентом требуется доступ хотя бы к одному включённому агенту: глобальное use:ai-agents или объектное use:ai-agent. Владение даёт права при включённом owner-is-admin.

Подключение AI-провайдера

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

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

Если администратор выдал доступ к шаблону AI-провайдера с общим токеном, провайдер из этого шаблона уже отображается в списке с отметками «из шаблона» и «общий токен». Такой провайдер не подключается вручную и не удаляется.

Подключение из шаблона

Чтобы подключить провайдера из шаблона:

  1. Откройте «Профиль» → вкладка «AI-провайдеры».
  2. Нажмите «Из шаблона».
  3. Выберите шаблон провайдера.
  4. Укажите название провайдера и выберите модель.
  5. В поле «Токен» введите свой токен для API провайдера.
  6. Нажмите «Сохранить».

URL, метод и заголовки подставляются из шаблона. В провайдере из шаблона изменяются только название, модель и токен; чтобы сохранить текущий токен при редактировании, оставьте поле «Токен» пустым.

Своя конфигурация

Чтобы подключить провайдера со своей конфигурацией:

  1. Откройте «Профиль» → вкладка «AI-провайдеры».
  2. Нажмите «Своя конфигурация».
  3. Заполните поля провайдера, как описано в разделе «Параметры провайдера».
  4. Нажмите «Сохранить».

Параметры провайдера

Своя конфигурация провайдера задаётся полями:

ПолеОбязательностьОписание
«Название»ДаНазвание провайдера. По названию провайдер выбирается в чате и в элементе процесса «AI-агент»
«Модель»ДаНазвание модели, например gpt-4o
«URL»ДаURL API провайдера, например https://api.openai.com/v1/chat/completions
«Метод»ДаHTTP-метод запроса, обычно POST
«Заголовки»НетHTTP-заголовки запроса. Токен подставляется вместо {{ .token }}
«Токен»НетТокен API провайдера. Хранится в зашифрованном виде и после сохранения не отображается
«Поле ответа»НетПуть к тексту ответа модели в JSON-ответе провайдера, например choices.0.message.content
«Шаблон тела запроса»НетJSON-шаблон тела запроса с переменными {{.prompt}} и {{.model}}

При сохранении проверяется формат URL провайдера. URL не должен содержать имя пользователя и пароль.

Агенты обращаются к модели в формате OpenAI Chat Completions, поэтому для работы с агентами укажите API, совместимый с OpenAI: URL оканчивается на /v1 или /v1/chat/completions. Поля «Поле ответа» и «Шаблон тела запроса» используются только при сжатии длинной истории чата в резюме (подробнее — в разделе «Передача контекста»).

Токен в заголовках

Токен провайдера подставляется в заголовки вместо выражения {{ .token }}:

Authorization: Bearer {{ .token }}

Если в заголовках нет выражения {{ .token }}, агенты передают токен модели как API-ключ.

Пример провайдера для OpenAI

Пример конфигурации провайдера для API OpenAI:

ПолеЗначение
«Название»ChatGPT
«Модель»gpt-4o
«URL»https://api.openai.com/v1/chat/completions
«Метод»POST
«Заголовки»Authorization: Bearer {{ .token }}
«Токен»API-ключ OpenAI
«Поле ответа»choices.0.message.content

Работа с AI-ассистентом

Окно «AI-ассистент» открывается кнопкой с подсказкой «AI-ассистент» в правой части верхней панели портала. Окно перемещается за заголовок и меняет размер за края и углы; положение и размер окна сохраняются в браузере.

При закрытии окна диалог сохраняется: повторное открытие продолжает тот же чат.

Выбор агента и провайдера

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

Поле «Провайдер» отображается, если модель агенту предоставляет портал: для платформенного агента и для внешних агентов с разрешённым прокси моделей DDP. Для провайдера из шаблона со списком доступных моделей рядом отображается поле выбора модели.

Чаты

Диалог ведётся в чатах. Слева — список чатов, сгруппированный по датам «Сегодня», «Вчера» и «Ранее», и кнопка «Новый чат».

Чаты имеют следующие настройки:

  1. До 50 чатов на пользователя. При достижении лимита кнопка «Новый чат» недоступна и отображается пояснение. Удалите ненужный чат через меню «Действия с чатом», чтобы создать новый. Этот же лимит действует при открытии нового чата рабочего пространства.
  2. До первого сообщения у чата служебное название. После первого вопроса название подставляется по тексту (можно «Переименовать»).
  3. Удаление чата вместе с историей сообщений в нём необратимо.

Если агент не смог ответить, под сообщением отображается «Агент не смог ответить» и кнопки «Повторить» и «Подробности».

Передача контекста

Переключатель «Передавать контекст» задаётся для каждого чата отдельно:

  1. «Включено» — в запрос уходит контекст переписки в этой теме.
  2. «Выключено» — только текущее сообщение. Расход токенов ниже, без «памяти» в чате.

При включённом контексте и длинной истории старые реплики не отправляются целиком каждый раз: недавние сообщения идут полностью, более ранняя часть сжимается в резюме отдельным запросом к тому же провайдеру. Для этого запроса используются поля провайдера «Шаблон тела запроса» и «Поле ответа».

Включение передачи контекста увеличивает расход токенов при взаимодействии с моделью.

Инструменты MCP

Агент вызывает инструменты портала, чтобы получить данные или выполнить действие. Доступные инструменты настраивает администратор. Агент использует их с правами пользователя; если нужный инструмент недоступен, обратитесь к администратору.

Кнопка «Инструменты» в окне ассистента открывает список инструментов с типом (internal, external, custom), числом аргументов и примером запроса. Кнопка «В поле ввода» вставляет пример в поле ввода.

Вызовы инструментов отображаются в ответе агента со статусом «Вызывается», «Вызван», «Ошибка» или «Отменён», длительностью, аргументами и текстом ошибки.

Встроенные инструменты (internal) и их параметры описаны в справочнике MCP-сервера.

Вопросы о каталоге и процессах

Если администратор предоставил агенту инструменты работы с каталогом, задавайте вопросы о сущностях, связях и запусках процессов. Например:

Какие сервисы принадлежат моим командам? Сгруппируй их по языку разработки
и покажи количество в каждой группе. Используй свойства из схемы каталога.

Для анализа связей укажите исходную сущность и направление интересующей зависимости:

Покажи родителей сущности payments на три уровня вверх.
Для каждой сущности укажи путь связи и состояние проверок.

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

Найди неуспешные запуски процессов за вчера для сущностей моих команд.
Покажи шаг и причину ошибки каждого запуска.

Если название неоднозначно, уточните ресурс или UUID сущности. Ответ зависит от заполненности каталога и записанных событий процесса. Одна лишь длительность запуска не подтверждает, что процесс завис.

Работа с проектом

Для задач с файлами прикрепите рабочее пространство кнопкой «Прикрепить рабочее пространство». В этом режиме отвечает OpenCode пространства; IDE и чат используют одну рабочую копию. Настройки подтверждений и очереди описаны в руководстве по чату рабочего пространства.

Если агенту из каталога доступны curated_get_workspace_templates, curated_create_workspace, curated_get_workspace и curated_attach_workspace, можно попросить его подготовить пространство прямо из чата. Например:

Создай рабочее пространство из шаблона team-development для https://gitlab.example.com/team/service.git на 8 часов и прикрепи его к этому чату. После запуска добавь тест обработчика /healthz.

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

Кнопка «Моя статистика» открывает личные показатели использования AI.

Устранение неполадок

Типовые ошибки AI-ассистента:

СообщениеПричина и решение
«Для вашей учётной записи не настроен AI-провайдер. Добавьте его в настройках профиля.»У пользователя нет AI-провайдера. Подключите провайдера, как описано в разделе «Подключение AI-провайдера»
«Выберите AI-провайдера»Для выбранного агента нужен провайдер. Выберите провайдера в поле «Провайдер»
«Недостаточно прав для запуска этого AI-агента»Нет глобального use:ai-agents или объектного use:ai-agent на выбранного агента; проверьте роль и доступ к агенту
«LLM-провайдер отклонил запрос. Проверьте API-ключи в настройках профиля.»Провайдер не принял токен. Проверьте токен и заголовки провайдера
«Превышен лимит запросов к LLM-провайдеру. Попробуйте позже.»Провайдер ограничил число запросов

Ошибки вызова внешних агентов описаны в разделе «Внешние агенты».