Безопасный доступ агента к серверам

Чтобы агент мог разбирать аварии, ему нужен доступ к серверам. Дать его страшно: одна команда с неверным путём — и вместо диагностики получится происшествие.

Мы сделали MCP-сервер, через который агент работает с серверами по SSH.

Как устроено

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

Реквизиты из окружения. Ключи и адреса берутся из настроек пользователя, агенту они не показываются.

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

Запуск на машине пользователя. Сервис не разворачивается в кластере и не смотрит наружу. Он живёт процессом рядом с агентом и общается с ним напрямую.

Почему не просто дать ключ

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

Тот же принцип действует уровнем выше: у нашего дежурного агента запрет на снос данных, разрушение инфраструктуры и правку сетевых правил зашит в сам сервис, а не в инструкцию.

Что это даёт

Агенту можно доверить реальную работу на серверах: команда разбирается до отправки, разрушающие операции не проходят, а всё выполненное остаётся в журнале сессии. Это не гарантия от любой ошибки — это граница, за которой ошибка перестаёт быть необратимой.