Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
LLM-агента научились останавливать до опасного вызова инструмента и затем проверять запись его работы по тем же правилам. Хотя препринт не прошёл рецензирование и все числа в нём получили сами авторы, ContrAgent добавлял к вызову инструмента 0,16 мс. Такой надзор можно вынести из подсказки и модели-оценщика в отдельный воспроизводимый слой.
Как последовательность вызовов превращается в контракт
Yifeng Xiao и Pierluigi Nuzzo назвали систему ContrAgent. Она наблюдает не за рассуждениями модели, а за границей, где агент вызывает инструменты: отправляет API-запрос, запускает команду, меняет запись или получает результат.
Каждый вызов и ответ становятся событием в упорядоченной трассе. Система вычисляет для событий проверяемые признаки: какой инструмент вызван, совпадает ли аргумент с шаблоном, откуда пришло значение, есть ли у вызывающей стороны разрешение, сколько раз уже выполнялось действие и сколько токенов потрачено.
Требование записывают как контракт из предположения о среде и гарантии со стороны агента. Например, среда может подтвердить разрешённую сумму возврата, а агент должен сначала запросить одобрение и не превысить эту сумму. Если одобрено 42 доллара, вызов возврата на 50 долларов переводит контракт в состояние ошибки.
Порядок, историю и накопленные значения описывает линейная временная логика для конечных трасс. Поэтому правило может требовать не только допустимый аргумент текущего вызова, но и предшествующее согласование, совпадение учётной записи или соблюдение общего лимита за сеанс.
Контракт компилируется в детерминированный конечный автомат — машину состояний, которая получает очередное событие и однозначно вычисляет новый статус. При работе агента автомат блокирует первый нарушающий вызов. После завершения тот же автомат воспроизводит сохранённую трассу и выдаёт проверяемую оценку без повторного обращения к LLM.
Правило можно написать вручную или сначала извлечь из текстовой политики с помощью LLM. Затем система привязывает черновик к фиксированному набору признаков и переводит формулу обратно в обычный текст для проверки человеком. Детерминированным здесь становится исполнение утверждённого контракта, а не автоматическое понимание любого регламента.
Где детерминированная проверка сравнялась с моделью-оценщиком
Подход проверяли на SOPBench, AgentDojo, R-Judge и τ2-bench. Эти наборы охватывают соблюдение процедур, косвенные инъекции в подсказки, оценку опасных трасс и работу клиентских агентов по письменным политикам. ContrAgent сравнивали с незащищёнными агентами, защитой через подсказки, классификаторами, LLM-фильтрами и моделями-оценщиками.
В AgentDojo вредоносный текст прячется в результатах инструментов — например, в письме или записи календаря. На gpt-4o контракты снизили долю успешных атак с 47,7% до 11,1%, когда система помечала полученные извне значения как недоверенные. Контракты, извлечённые из записанных атак, снизили показатель до 0,79%.
На R-Judge система получила сводную F1-оценку 91,8%; метрика объединяет точность срабатываний и полноту обнаружения. У GPT-4o она составила 74,4%. Преимущество возникло на процедурных нарушениях, которые можно выразить через вызовы, их аргументы и порядок.
τ2-bench показал разрыв между правильным итогом и правильным процессом. Агент мог привести базу данных к ожидаемому состоянию, но по пути нарушить обязательную процедуру; проверка только конечного результата этого не замечала. В SOPBench преимущество контрактов росло вместе с числом требований, потому что автомат отслеживал всю трассу, а не перегружал подсказку перечнем запретов.
Проверка охватывает только то, что видно на границе инструментов. Свободный текст, опасный сам по себе, и вызов с формально допустимыми аргументами требуют отдельной смысловой проверки. Счётчики и история также зависят от того, насколько точно агентская среда передаёт монитору события.
Когда ContrAgent меняет архитектурный план
Работа предлагает отделить политику поведения от выбранной LLM. Библиотеку контрактов можно применять к разным агентам в одном предметном контуре, если они используют совместимый интерфейс инструментов. Замена модели тогда не требует заново прятать все правила в системную подсказку или перенастраивать модель-оценщик.
Для действий с необратимыми последствиями контрактный автомат стоит размещать перед фактическим исполнением вызова. Это подходит для возвратов, изменения прав, отправки сообщений, запуска кода и операций с внешними записями, когда требования можно выразить через порядок действий, разрешения, происхождение данных и лимиты.
При проектировании придётся формально определить события, контекст и счётчики, а затем проверить библиотеку правил вместе с владельцами процесса. Это дополнительная работа по сравнению с текстовой инструкцией, но она создаёт единый артефакт для блокировки, аудита и регрессионных тестов.
Выбор базовой модели остаётся отдельной задачей: эксперименты оценивают надзор на уровне инструментов. Практический сдвиг состоит в другом — процедурную безопасность можно проверять обычным кодом, а LLM оставить те решения, где действительно требуется разбирать смысл.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



