Как проверить ИИ-агента в песочнице и не открыть ему лишний доступ
Короткий ответ
Не подключайте нового агента сразу к рабочему компьютеру, репозиторию или аккаунту с реальными данными. Сначала создайте отдельное окружение с временными файлами, ограниченным набором команд и сетевым доступом по списку. Успех теста — не когда агент «выполнил задачу», а когда он сделал разрешённое действие, отказался от запрещённого и оставил след, по которому человек может восстановить ход работы.
Песочница не гарантирует безопасность автоматически. Она снижает последствия ошибки, только если её границы настроены отдельно от промпта. Фраза «не открывай другие файлы» — просьба модели, а не запрет операционной системы. Реальные запреты задают права процесса, монтирование каталогов, сетевые политики, секреты и лимиты ресурсов.
Сначала опишите, что именно тестируется
Возьмите одну узкую задачу, например преобразование нескольких публичных файлов в отчёт. Укажите входы, допустимый результат, запрещённые операции и критерий остановки. Если «готовый отчёт» может означать перезаписать исходник, задача пока сформулирована слишком широко. В тесте агент должен сохранять вывод в отдельный каталог, а старые файлы — только читать.
Заведите четыре фиктивных файла: обычный документ, повреждённый документ, файл с лишними инструкциями и файл с похожим, но чужим названием. Они проверяют разные свойства. Обычный показывает базовую функцию; повреждённый — реакцию на неполный вход; ложное имя — внимательность к источнику; встроенный текст-команда — способность воспринимать загруженное содержимое как данные, а не как полномочие изменить политику. Не помещайте реальные токены, пароли или персональные данные даже «на минуту».
Настройте окружение от отказа к разрешению
Начните с отключённого доступа к сети и файловой системы, кроме тестовой папки. Выдайте только чтение исходников и запись в новый каталог. Добавляйте отдельные права по одному, если они действительно нужны. Команда, которая обновляет зависимости, не должна одновременно иметь доступ к секретам продакшена; браузерный агент не должен автоматически подтверждать формы, покупки или отправку сообщений.
Заранее определите лимиты времени, памяти, размера файла и числа вызовов инструмента. Ограничение по времени защищает не только бюджет: бесконечный цикл агента не должен удерживать ресурс до ручного обнаружения. Сохраните версию образа, runtime, перечень доступных инструментов и сетевой список. Если провайдер меняет базовый образ без фиксации версии, результат вчерашнего теста нельзя считать полностью воспроизводимым.
Проверьте отдельные границы: может ли процесс увидеть файл выше разрешённого каталога; может ли записать поверх исходника; удастся ли выйти на домен вне списка; останется ли мусор после завершения сессии; что произойдёт, если закончится место. Пробуйте это безопасно на фиктивных адресах и файлах. Не «проверяйте» защиту настоящим секретом или внешним вредоносным адресом.
Проведите тест как эксперимент
Используйте один и тот же набор и инструкцию минимум трижды. Запишите не только финальный файл, но и команды, обращения к инструментам, ошибочные попытки и время. Незнакомому участнику предложите повторить запуск по описанию окружения. Если он получает другой результат, выясните, что осталось незафиксированным: версия модели, сетевой ответ, дата документа, права или случайный параметр.
Разделите оценки на полезность и безопасность. Полезность — процент корректно выполненных допустимых задач, длительность и объём ручной доработки. Безопасность — число попыток выйти за границу, раскрыть секрет, переписать вход или отправить данные наружу. Эти метрики нельзя сводить к единому «проценту успеха»: полезный результат после запрещённой операции — провал, даже если отчёт выглядит правильно.
Попросите человека проверить вывод вслепую, не говоря, какая версия окружения его создала. Пусть он сверит цитаты с исходниками, откроет файлы и проверит команды. Для каждой ошибочной попытки отметьте, остановила ли её модель, политика инструмента или сам процесс после запуска. Исправление должно происходить на правильном уровне: промпт не заменит файловые права, а сетевой фильтр не исправит ложный факт в резюме.
Перед переходом к пилоту
Подготовьте короткий паспорт: цель, владелец, разрешённые каталоги, сетевой список, лимиты, версия runtime, срок хранения логов и кнопка остановки. Отдельно опишите ручной маршрут, который работает, когда агент недоступен. Решение о выдаче доступа принимает владелец системы, а не автор демо. Пилот начинается на ограниченной группе и с обратимыми операциями; действие, влияющее на клиента, деньги, доступ или публикацию, остаётся за человеком.
Если провайдер предлагает долгоживущую среду, уточните, как создаются снимки, можно ли восстановить предыдущую версию и удаляются ли временные секреты при закрытии. Удобство продолжать с прежнего состояния не должно незаметно переносить токен, загруженный сотрудником, в следующую сессию. Проверьте очистку как отдельный сценарий, а не как пункт маркетингового описания.
FAQ
Достаточно ли запускать агента в контейнере?
Нет. Контейнер — один слой изоляции, а не готовая политика. Нужны права, сеть, секреты, лимиты, обновление образа и процедура удаления данных.
Можно ли тестировать на копии рабочего репозитория?
Можно, если копия очищена от токенов и клиентских данных, доступна только для чтения, а результат пишется отдельно. Передача репозитория с секретами в отдельную папку не делает их безопасными.
Что почитать перед запуском?
Связаны с этим проверка действий ИИ-агента и подходы к тестированию модели на своих примерах. Они помогают отделить точность ответа от прав на выполнение инструментов.
Итог
Надёжная песочница проектируется вокруг явных запретов и возможности восстановиться. Сначала ограничьте окружение, затем проверьте попытки выхода, и только после этого оценивайте скорость и качество ответа. Если команда не может объяснить, куда агент ходил, что менял и как стереть его след, пилот ещё не готов к данным реальных пользователей.