Мой блог
OpsDeck за три недели: ИИ-агент для хостов и девять крупных релизов
За последние несколько недель бесплатное открытое приложение OpsDeck претерпело масштабные изменения, превратившись из простого консольного агрегатора в инструмент с автономным ИИ-агентом. В данной публикации подробно рассмотрены ключевые обновления утилиты, включая интеллектуальное взаимодействие с хостами, доработку инфраструктурных инструментов и исправления по результатам баг-репортов.
Проект объединяет в одном интерфейсе терминал, Kubernetes-кластеры, SSH-соединения, базы данных и заметки, избавляя инженеров от необходимости переключаться между множеством отдельных окон и консолей.
ИИ-агент: от подсказок команд к автономному анализу
Ранее локальные языковые модели выполняли роль советчиков, генерируя команды для ручной вставки в терминал. Теперь встроенный ИИ способен самостоятельно выполнять последовательность действий на удаленном узле. Пользователь задает задачу естественным языком, после чего агент подбирает команду, запускает ее и анализирует полученный вывод на следующем шаге цикла, пока не найдет решение или не достигнет установленного лимита шагов.
Каждый этап расследования полностью прозрачен: интерфейс отображает целевой хост, конкретную команду, статус чтения или изменения, код возврата и свернутый под стрелкой текстовый вывод. При необходимости пользователь может прервать процесс в любой момент кнопкой остановки.
Безопасность и политика доступа
Ключевым элементом архитектуры выступает модуль проверки команд на базе Rust, который функционирует независимо от языковой модели. Для каждого хоста настраивается отдельная политика разрешений: запрет доступа, режим только чтения, изменение с предварительным подтверждением либо выполнение изменений без вопросов.

Режим «только чтение» гарантирует, что деструктивные или изменяющие команды не будут выполнены даже при ручном подтверждении оператора. Существует также абсолютный черный список операций, блокируемых на любом уровне. К ним относятся составные команды, символы перенаправления, интерпретаторы вроде bash или python, а также потенциально опасные утилиты вроде rm, dd, mkfs или reboot. Дополнительно реализованы пользовательские правила фильтрации через списки разрешений и запретов.
Интеграция моделей и базы знаний
Для работы агента можно использовать как встроенную легкую модель, так и сторонние серверы через OpenAI-совместимый API, включая Ollama, vLLM или LM Studio. Приложение поддерживает аппаратное ускорение через Vulkan и Metal, а также стабильную докачку файлов моделей при обрывах связи.

Вспомогательный модуль базы знаний сопоставляет запросы пользователя с каталогом из более чем 250 проверенных команд по 23 технологиям, включая Docker, Kubernetes, Terraform, Nginx и различные СУБД. Это позволяет модели точнее формировать синтаксис без выдумывания несуществующих ключей.
Инфраструктура: файлы, облако, базы и пароли
Файловый менеджер между хостами реализован по двухпанельной схеме, схожей с MobaXterm, поддерживая прямое перетаскивание объектов и межхостовую передачу через протокол scp-3 без необходимости прямой видимости между серверами.
Интеграция с Yandex Cloud позволяет управлять виртуальными машинами, сетями и учетными записями через локальные профили CLI без сохранения секретных ключей в памяти программы. Кроме того, добавлена поддержка баз данных через jump-хосты, интеграция с менеджментом паролей Passbolt, настраиваемые доски мониторинга хостов и импорт роутеров из WinBox.

Kubernetes
Модуль Kubernetes получил блок предварительной диагностики, формирующий таблицы проблем и проверок на основе текущего kubeconfig без установки дополнительных агентов в кластер. Приложение ведет собственную историю событий namespace длительностью до одной недели, а также поддерживает загрузку конфигураций из указанных директорий.
Реализованы массовые операции с объектами, специализированные вкладки подов, графическое отображение ошибок над логами и честная индикация потери соединения с кластером, исключающая отображение устаревших кешированных данных за актуальные.

Терминал и окна
Интерфейс терминала поддерживает вынос в отдельные окна с возможностью бесшовного перемещения живых сессий вместе с запущенными процессами. Сетка разделения экрана позволяет размещать до шести интерактивных панелей с разными хостами.
Интерактивные ссылки в выводе команд открывают веб-серверы через автоматические SSH-туннели, а палитра тем оформления поддерживает настройки сторонних терминальных клиентов. Для пользователей Windows предусмотрен выбор рабочих оболочек, включая PowerShell, Git Bash и WSL.

IDE и вспомогательные функции
Модульная структура интерфейса позволяет отключать неиспользуемые разделы для экономии ресурсов. Для разработчиков предусмотрен визуальный граф пайплайнов CI/CD, функция экспорта настроек для переноса на другое рабочее место, а также векторные иконки и корректная естественная сортировка списков.
Анализ баг-репортов и стабильность
Многочисленные исправления повысили общую надежность программы. Разработчики устранили задержки интерфейса, связанные с ожиданием буфера обмена в Linux-окружениях, скорректировали некорректную маршрутизацию сетевых запросов через системные прокси и перевели запись конфигурационных файлов на безопасный атомарный режим с созданием резервных копий.
