7. Агент, MCP и рабочая копия
Суть этапа
Агент получает сводку проверки и исследует конкретные находки через MCP. В 0.1.0 проверяем сценарий на одном внешнем MCP-клиенте. Встроенного агента Agentfy подключаем в 0.2.0 к тем же операциям.
Доступ агента
Для внешней интеграции owner создаёт отдельный API-ключ команды с нужными разрешениями и сроком действия. Агент работает только с проектами этой команды; чтение кода, запуск сканера и изменение копии требуют своих прав. Ключ хранится в настройках интеграции, вне чата и skills. Встроенный агент использует ограниченный серверный контекст сессии пользователя.
Инструменты для исследования
- Статус задачи, сводка, список и детали находок.
- Дерево файлов, поиск текста и чтение ограниченного диапазона строк.
- Получение свидетельств с хешами и признаками неполного покрытия.
- Подготовка плана, просмотр diff, изменение копии и повторная проверка.
Не передаём архив целиком в контекст модели. Необходимые фрагменты проверяем на секреты перед выдачей. Содержимое сайта — данные для анализа, а не инструкции сменить права или выполнить произвольную команду.
Skills описывают порядок исследования и условия остановки. Для 0.1.0 достаточно поиска текста и чтения файлов; структурный поиск оцениваем позже.
История изменений и восстановление
Рабочую копию создаём из неизменяемого snapshot в S3. Для каждого исправления сохраняем план и запись remediation, diff, исходные хеши и новый снимок результата. Повторный scan проверяет именно этот результирующий снимок.
В одной рабочей копии выполняется только одно активное исправление. Неудачная попытка остаётся в истории; следующую начинаем из выбранного сохранённого снимка. Для восстановления копии используем снимок и его манифест, а не обратное применение diff. Diff нужен для просмотра изменений; бинарные файлы сравниваем по хешам и сохраняем их версии в снимках.
Файлы с секретами хранятся с ограниченным доступом; секретные значения не попадают в обычный diff, индекс поиска или контекст модели. Восстановление рабочей копии не означает откат сайта на хостинге.
Жизненный цикл среды
MCP адресует workspaceId, а не конкретный контейнер. Постоянный контейнер для агента не нужен: временная папка доступна через контролируемые операции. Состояние копии и история сохраняются вне исполнителя. После простоя среду можно удалить и восстановить из снимка и сохранённых изменений. Неподтверждённая правка после сбоя не должна выдаваться за сохранённую.
Результат этапа
Агент объясняет конкретную находку, собирает свидетельства и предлагает план. Результат исследования связан с исходным снимком и не теряется вместе со средой.