Пожалуй, худшее, что можно сделать при внедрении автономных ИИ-агентов - заставить человека работать вахтёром и аппрувить каждый чих.
Сначала кажется, что это надежно, но на самом деле мы получаем усталость от согласований. Если система 50 раз подряд спрашивает "можно я прочитаю этот лог?", на 51-й раз человек выгорает, психует и жмет "Разрешить" не глядя. Безопасность до свидания.
Я изрядно покопался, как решают проблему апрувов в Codex, Claude Code и ко. Главная мысль, к которой пришла индустрия: нужно делать автоапрув, и его основа — маршрутизация рисков.
Что важно:
1. Изоляция и ограничение blast radius (радиуса поражения)
На уровне OS есть свои механизмы sandbox и задания границ рабочего пространства. Read-only ФС, отрезанная сеть и т.п.
Codex в режиме Auto детерминированно разрешает агенту любые чтения и правки, но только внутри заданного workspace. Вся остальная файловая система для него - read-only. Сеть по умолчанию отрублена. Если агенту нужно сходить наружу, трафик идет через прокси с жестким allow-листом доменов и защитой от DNS rebinding. Anthropic тоже выносит сетевую изоляцию на уровень прокси, который крутится вообще вне песочницы.
Агенту физически отрезана возможность поломать что-то снаружи или незаметно слить данные.
2. Каскадные проверки и "ослепление" классификатора
Разработчики harness-ов строят МНОГОуровневые фильтры перед действием.
В Claude Code Auto Mode действия с потенциальным ущербом (shell-команды, выход в сеть) уходят на проверку отдельной модели-классификатору. Крутейшая инженерная фишка в том, что этот классификатор сознательно "ослепляют": ему показывают только исходный запрос пользователя и сам вызов функции, вырезая пространные рассуждения агента и сырые логи. Это делается, чтобы агент не смог "заговорить" проверяющую модель через prompt injection.
3. Семантические триггеры на необратимость
У OpenAI все tools (если не знакомы с этим термином — погуглите, это важный термин в harness) заранее размечаются (например, тегом destructive). Если агент лезет во внешнюю сеть, срабатывает фильтр Safe URL, проверяющий, не пытается ли ИИ слить ваши секреты в параметрах ссылки. Любые действия, меняющие состояние внешнего мира (транзакции, письма, запись вне песочницы), триггерят хард-стоп и требуют явного подтверждения от кожаного мешка.
Механизмы апрува — адский ад. Слишком сильно зажмёшь требования — пользователя задолбает запросами. Слишком слабо — получишь дырявое решето. Уязвимости — повсюду: в скачанных из интернетов скиллах, внешних ресурсах, запросе пользователя — и это подстёгивает здоровую паранойю.
Тестировать эти механизмы — ещё более глубокий ад. Нужна редкостная изобретательность, чтобы покрыть возможные кейсы, много терпения, чтобы прогонять агента по ним, и ещё больше изобретательности, чтобы отделить тестирование жёсткой, алгоритмизированной обвязки от тестирования поведения моделей (которые внутри своих весов тоже содержат защиту от "хакерства")
Офигенный инженерный квест.
Post #690
1.33K
- 🔥 3
- 👍 2