Post #690
1.33K
Пожалуй, худшее, что можно сделать при внедрении автономных ИИ-агентов - заставить человека работать вахтёром и аппрувить каждый чих.
Сначала кажется, что это надежно, но на самом деле мы получаем усталость от согласований. Если система 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, проверяющий, не пытается ли ИИ слить ваши секреты в параметрах ссылки. Любые действия, меняющие состояние внешнего мира (транзакции, письма, запись вне песочницы), триггерят хард-стоп и требуют явного подтверждения от кожаного мешка.
Механизмы апрува — адский ад. Слишком сильно зажмёшь требования — пользователя задолбает запросами. Слишком слабо — получишь дырявое решето. Уязвимости — повсюду: в скачанных из интернетов скиллах, внешних ресурсах, запросе пользователя — и это подстёгивает здоровую паранойю.
Тестировать эти механизмы — ещё более глубокий ад. Нужна редкостная изобретательность, чтобы покрыть возможные кейсы, много терпения, чтобы прогонять агента по ним, и ещё больше изобретательности, чтобы отделить тестирование жёсткой, алгоритмизированной обвязки от тестирования поведения моделей (которые внутри своих весов тоже содержат защиту от "хакерства")
Офигенный инженерный квест.
Сначала кажется, что это надежно, но на самом деле мы получаем усталость от согласований. Если система 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, проверяющий, не пытается ли ИИ слить ваши секреты в параметрах ссылки. Любые действия, меняющие состояние внешнего мира (транзакции, письма, запись вне песочницы), триггерят хард-стоп и требуют явного подтверждения от кожаного мешка.
Механизмы апрува — адский ад. Слишком сильно зажмёшь требования — пользователя задолбает запросами. Слишком слабо — получишь дырявое решето. Уязвимости — повсюду: в скачанных из интернетов скиллах, внешних ресурсах, запросе пользователя — и это подстёгивает здоровую паранойю.
Тестировать эти механизмы — ещё более глубокий ад. Нужна редкостная изобретательность, чтобы покрыть возможные кейсы, много терпения, чтобы прогонять агента по ним, и ещё больше изобретательности, чтобы отделить тестирование жёсткой, алгоритмизированной обвязки от тестирования поведения моделей (которые внутри своих весов тоже содержат защиту от "хакерства")
Офигенный инженерный квест.
- 🔥 3
- 👍 2



