Изоляция агентов для разработки
ИИ агенты - штука недетерминированная. Если позволять им делать что угодно, то они могут слить вашу информацию в интернет, испортить рабочее окружение, добраться даже до секретов прода и испортить его. Нет надежного способа в контексте разделить данные и инструкции, возможен prompt injection.
Чтобы этого не случилось, надо их как-то ограничивать. Какие есть варианты:
1. Агент спрашивает каждое подозрительное действие - работает, но утомительно для оператора. С учетом того, что часто агент хочет выполнить команду bash, а там можно написать что угодно, эффект неочевиден. Иногда есть автоодобрение.
2. Агент предоставляет свою песочницу. Например, в claude есть своя для MacOS и Linux, в codex - и для винды тоже есть. Там есть свои ограничения, иногда неудобные (например порулить локальными сервисами). Приходится писать скрипты, для них делать исключения по выходу из песочницы.
3. Агент работает в контейнере. Можно использовать devcontainers. Пробовал с докером, для меня настройка более сложная, чем виртуалка, так же хотелось бы возможность рулить другими контейнерами изнутри контейнера. Еще виртуалка считается более надежной, так как не разделяет ядро ОС.
4. MicroVM - виртуалка с минимальными возможностями. Цель изоляция а не эмулирование всего оборудования реальной машины. Я попробовал docker sanboxes - довольно удобно, но для больших проектов - ограничение по памяти 4Г маловато. Говорят, большие node.js проекты не могут даже собраться.
5. Полная виртуалка - как отдельный компьютер. Можно делать что угодно, но требует дополнительных ресурсов и управления как отдельной машиной. Внутрь виртуалки можно засунуть только те креды, которые ей нужны для разработки. Код забирать оттуда через ssh сделав репозиторий на виртуалке как remote для своего рабочего. Агент на виртуалке прогнал весь цикл разработки (закодировал, собрал, прогнал тесты, провел ревью, прогнал покрытие, исправил замечание). Человек смотрит на результат и делает из него PR
· 21.08
egress-фильтрация на уровне сети — то, без чего любая из пяти схем изоляции всё равно течёт: prompt injection утащит данные обычным https-запросом наружу. я бы ставил дефолт-deny на исходящий трафик внутри vm и вайтлистил только git remote и package registry, а не наоборот. это закрывает кейс, когда агент «случайно» curl-ит .env на левый урл
0
ответить
коммент скрыт — часть юзеров считает его токсичным или некорректным
коммент удалён