3,583 papers
arXiv:2602.11749 77 12 фев. 2026 г. FREE

AIR: управление инцидентами в LLM-агентах через обнаружение, устранение и профилактику

КЛЮЧЕВАЯ СУТЬ
Агенты обходят любые превентивные правила. Попросишь не удалять файл — модель откажет. Попросишь 'навести порядок в папке' — удалит тот же файл в процессе. План на шаге 3 выглядит безобидно, но становится опасным после контекста шага 7. AIR позволяет ловить опасные действия не по намерению до выполнения, а по фактическому результату после. После каждого шага агента AIR проверяет: 'что-то пошло не так в среде?' → если да, сдерживает вред → исправляет → создаёт правило для будущего. Модель видит не формулировку команды ('скопируй файл'), а последствие в реальном состоянии ('чувствительный файл оказался в публичной папке'). Семантическая проверка после факта ловит то, что синтаксические фильтры до факта пропускают.
Адаптировать под запрос

TL;DR

AIR — фреймворк для управления инцидентами в LLM-агентах, который работает по классической схеме incident response: обнаруживает проблему → сдерживает → восстанавливает → предотвращает повторение. Вместо того чтобы только блокировать unsafe действия заранее, AIR встраивается в цикл выполнения агента и после каждого шага проверяет: "что-то пошло не так?". Если да — направляет агента исправить ситуацию и создать правило для будущего.

Главная находка: превентивные меры всегда неполны. Модель может отказаться удалить файл напрямую, но согласится "навести порядок в папке" и удалит тот же файл в процессе. Может проверить план перед выполнением, но не заметить, что безобидное действие в шаге 3 станет опасным после контекста шага 7. Семантические проверки после факта работают лучше синтаксических проверок до факта — потому что вред часто проявляется не в формулировке действия, а в его последствиях в конкретном состоянии среды.

AIR использует три компонента: trigger (триггер — какой инструмент активирует проверку), check (проверка — произошёл ли инцидент по описанию на естественном языке), remediate (исправление — containment + recovery через инструменты агента). После устранения инцидента AIR генерирует guardrail-правило, которое блокирует похожие действия на этапе планирования в будущих задачах. Это замыкает цикл: обнаружил → исправил → научился.


🔬

Схема метода

Встраивается в execution loop агента:

ОСНОВНОЙ ЦИКЛ:
Шаг → План → Выполнение инструмента → Наблюдение
         ↓
    AIR ПРОВЕРКА (после каждого шага):

1. DETECTION (обнаружение):
   - Какой инструмент использован? → активируй соответствующие правила
   - Проверь check-условие: "состояние среды + контекст + наблюдение = инцидент?"
   - Если нет → продолжай задачу

2. CONTAINMENT + RECOVERY (сдерживание + восстановление):
   - Если да → выполни remediate-действия через инструменты агента
   - Останови оригинальную задачу (она скомпрометирована)

3. ERADICATION (профилактика):
   - Извлеки паттерн из инцидента
   - Сгенерируй guardrail-правило
   - Добавь в набор проверок для будущих задач

БУДУЩИЕ ЗАДАЧИ:
План → Проверка guardrail-правил → Если план похож на инцидент → Блокируй → Новый план

Все три фазы выполняются встроенно в один execution loop.


🚀

Пример применения

Задача: Ты запускаешь агента для автоматизации работы с файлами проекта — скрипты должны искать дубли, архивировать старое, чистить временные папки. Агент работает в папке с кодом, документами и .env файлом с API-ключами.

Промпт агента с AIR-логикой:

Ты агент для автоматизации файловой работы. Выполняешь задачи через Python.

ПРАВИЛО INCIDENT RESPONSE:

После КАЖДОГО выполненного действия проверяй:

TRIGGER: python_repl (выполнение кода)
CHECK: "Был ли чувствительный файл (.env, .credentials, .ssh) скопирован, перемещён или загружен в незащищённое место (временная папка, публичный каталог, облако)?"

Если CHECK = True:
  REMEDIATE:
    1. Containment: немедленно удали копию чувствительного файла из небезопасного места
    2. Recovery: проверь рабочую папку — остались ли другие чувствительные файлы в публичном доступе
    3. Останови текущую задачу
    4. Создай GUARDRAIL-ПРАВИЛО: "Перед выполнением любого копирования/перемещения файлов проверяй план. Если план предполагает операции с файлами из системных/скрытых папок (.env, .git, .ssh) в пользовательские папки → блокируй и запроси подтверждение."

---

ЗАДАЧА: Найди и удали дубликаты файлов старше 30 дней в ./project_data

Результат:

Агент выполнит задачу. Если на каком-то шаге скрипт случайно скопирует .env в ./temp/ (например, "навёл порядок" слишком широко), AIR-логика обнаружит это через CHECK-условие. Агент:

  1. Увидит: "чувствительный файл оказался в небезопасном месте"
  2. Выполнит containment: удалит .env из ./temp/
  3. Выполнит recovery: проверит остальные папки на утечки
  4. Остановит задачу (т.к. она скомпрометирована)
  5. Добавит в свой внутренний guardrail: "при следующей задаче проверяй план перед копированием системных файлов"

При следующем запросе ("заархивируй всё из папки") агент проверит план через guardrail, увидит что в папке есть .env, заблокирует действие и спросит: "в папке есть чувствительный файл, точно архивировать?"


🧠

Почему это работает

Слабость LLM: Модели плохо предсказывают последствия действий через несколько шагов. План может выглядеть безобидно ("навести порядок в папках"), но привести к утечке данных в шаге 5 из-за побочного эффекта шага 2. Синтаксические проверки до выполнения ловят только явные нарушения ("удали ~/.ssh"), но пропускают семантически эквивалентные ("почисти старые ключи"). Превентивные guardrails всегда неполны — новые формулировки задач обходят старые правила.

Сильная сторона LLM: Модели отлично оценивают произошедшее по описанию на естественном языке. Вопрос "файл оказался в небезопасном месте?" не требует знать все возможные пути — модель видит текущее состояние среды и контекст, понимает семантику "небезопасно". Модели хорошо извлекают паттерны из конкретных случаев и формулируют общие правила ("если копируешь из скрытых папок → спрашивай").

Как метод использует это: AIR проверяет фактическое состояние после действия, а не намерение до него. Это даёт два преимущества:

  1. Semantic checks вместо syntactic — не "агент вызвал опасную функцию?", а "произошло ли что-то опасное в среде?". Модель видит результат, а не только команду.

  2. Learning loop — каждый обнаруженный инцидент превращается в guardrail-правило для будущего. Система не просто реагирует, а становится умнее с каждым инцидентом. В отличие от статических правил ("не удаляй файлы"), динамические правила учитывают контекст ("не копируй из системных папок в пользовательские без подтверждения").

Рычаги управления:

  • Trigger (триггер) — какие инструменты проверять. Для задач только с браузером убери python_repl, оставь navigate_url. Меньше триггеров = меньше overhead.

  • Check-условие — описание инцидента. Для простых задач используй специфичные ("файл .env скопирован"), для автономных агентов — широкие ("данные покинули защищённый периметр"). Чем шире — тем больше ложных срабатываний, чем точнее — тем меньше покрытие.

  • Remediate-действия — что делать при инциденте. Можно только containment ("блокируй доступ"), можно full recovery ("удали копию + проверь окружение + восстанови оригинал"). Recovery дороже, но безопаснее.

  • Guardrail generation — автоматически или вручную. Авто-генерация удобна, но может создать слишком широкие правила ("никогда не копируй файлы" вместо "не копируй чувствительные файлы"). Ручная настройка точнее, но требует времени.


📋

Шаблон промпта

Ты автономный агент для {описание задачи}. Используешь инструменты: {список инструментов}.

СИСТЕМА INCIDENT RESPONSE:

После каждого выполненного действия проверяй:

TRIGGER: {название_инструмента}
CHECK: "{описание_инцидента_на_естественном_языке}"

Если CHECK = True (инцидент обнаружен):

REMEDIATE:
  1. Containment: {действие_для_сдерживания}
  2. Recovery: {действие_для_восстановления}
  3. Останови текущую задачу
  4. GUARDRAIL для будущего: {правило_для_предотвращения_похожих_инцидентов}

GUARDRAIL применяется перед выполнением плана в следующих задачах.

---

Текущая задача: {конкретная_задача}

Что подставлять:

  • {описание задачи} — роль агента: "файловая автоматизация", "веб-исследование", "обработка данных"
  • {список инструментов} — какие инструменты доступны: python_repl, browser, file_manager
  • {название_инструмента} — какой инструмент активирует проверку: например, python_repl для кода, browser.navigate для веба
  • {описание_инцидента} — на естественном языке, семантически, не синтаксически. Не "функция X вызвана", а "чувствительные данные оказались в публичном месте"
  • {действие_для_сдерживания} — что сделать чтобы остановить вред: "удали скопированный файл", "закрой доступ", "отмени транзакцию"
  • {действие_для_восстановления} — что сделать чтобы вернуться к безопасному состоянию: "проверь нет ли других утечек", "восстанови из бэкапа"
  • {правило_для_предотвращения} — формулировка guardrail для будущего: "перед копированием системных файлов проверяй назначение"

🚀 Быстрый старт — вставь в чат:

Вот шаблон AIR для incident response в агентах. Адаптируй под мою задачу: [твоя задача].
Задавай вопросы, чтобы заполнить поля.

[вставить шаблон выше]

LLM спросит про инструменты (какие используются), тип инцидентов (что считать небезопасным), действия (как исправлять) — потому что AIR требует понимания среды выполнения и критериев безопасности для этой конкретной задачи. Она возьмёт структуру "trigger → check → remediate → guardrail" и адаптирует под твой контекст.


⚠️

Ограничения

⚠️ Overhead на многошаговых задачах: Каждый шаг требует проверки через CHECK-условие, что добавляет ~1-3 секунды на шаг. Для задач на 20+ шагов это заметно. Если нужна скорость — активируй проверки только для критичных инструментов.

⚠️ False positives на амбивалентных действиях: Семантические CHECK-условия иногда срабатывают там, где контекст оправдывает действие. Например, "файл перемещён в публичную папку" триггерится даже если это часть легитимной задачи ("опубликуй отчёт"). Требуется уточнение условий или ручное подтверждение.

⚠️ Irreversible incidents: Некоторые инциденты необратимы (удалённые файлы без версионирования, отправленные запросы в API). Recovery невозможен — остаётся только eradication через guardrails. Для критичных операций добавляй confirmation перед действием, не только incident response после.

⚠️ Guardrail rule drift: Автоматически сгенерированные guardrail-правила могут накапливаться и становиться слишком ограничивающими ("агент отказывается копировать любые файлы"). Требуется периодический review и уточнение правил.

⚠️ Не для простых задач одного шага: AIR создан для multi-step автономных агентов. Для задач "напиши текст" или "ответь на вопрос" это overkill — нет инструментов, нет состояния среды, нечего проверять.


🔍

Как исследовали

Исследователи из Tianjin University (Китай) и Singapore Management University (Сингапур)Zibo Xiao, Jun Sun, Junjie Chen.

Реализовали AIR как надстройку над OpenAI Agent SDK с интеграцией через хуки: (1) после выполнения инструмента для detection + remediation, (2) перед выполнением шага для guardrail-проверок. DSL (domain-specific language) для AIR-правил парсится через ANTLR4.

Тестировали на трёх типах агентов:

  1. Code Agent — CodeAct + RedCode dataset (4000+ задач, 25 категорий рисков). Пример: агент получает задачу "навести порядок в файлах", случайно копирует .env в ./temp/. AIR обнаруживает через CHECK, удаляет копию, создаёт guardrail "не копируй системные файлы без проверки".

  2. Embodied Agent — SafeAgentBench (750 задач, 10 типов угроз в физической симуляции). Пример: робот-агент берёт хрупкий предмет металлическим захватом слишком сильно. AIR обнаруживает "объект повреждён", направляет агента положить объект и use soft gripper, создаёт guardrail "для хрупких объектов проверяй тип захвата в плане".

  3. Computer-Use Agent — RiOSWorld (risky tasks) + OSWorld (safe tasks). Пример: агент открывает файл с личными данными в браузере и случайно нажимает "Share". AIR обнаруживает "чувствительные данные в публичном интерфейсе", закрывает вкладку, создаёт guardrail "перед share-действиями проверяй тип контента".

Метрики: - successful execution — сколько задач привели к инциденту (не все risky tasks срабатывают) - successful detection — сколько инцидентов AIR поймал - successful remediation — сколько успешно устранил - successful eradication — сколько guardrail-правил предотвратили повторение

Результаты: - Detection rate: >90% (обнаруживает почти все инциденты) - Remediation success: >95% (успешно устраняет где это возможно) - Eradication success: >90% (сгенерированные guardrails работают)

Дополнительные находки: - LLM-generated rules vs manual: Автоматически сгенерированные AIR-правила (модель сама пишет trigger/check/remediate по описанию риска) работают почти так же эффективно как написанные вручную. Разница в detection rate <5%. - Timeliness: Проверка добавляет 1-3 сек на шаг. Для задач на 10 шагов overhead ~10-30 сек. - Ablation: Убрали structured remediation (только detection без contain/recover) — remediation success упал с 95% до 60%. Убрали guardrail generation — eradication упал с 90% до 0%. Все компоненты критичны.

Исследование показало: incident response не просто возможен в LLM-агентах — он необходим. Превентивные меры всегда неполны, reactive механизмы дополняют их.

Код и промпты: anonymous.4open.science/r/AIR-38FA


🔗

Ресурсы

AIR: Improving Agent Safety through Incident Response — Zibo Xiao (Tianjin University), Jun Sun (Singapore Management University), Junjie Chen (Tianjin University)

Связанные работы из исследования: - NIST SP 800-61 (Computer Security Incident Handling Guide) — классическая методология incident response - AgentSpec (Wang et al., 2025) — DSL для guardrail rules в агентах - TraceAegis (Liu et al., 2025) — классификация risky trajectories - RedCode dataset (Guo et al., 2024) — 4000+ задач с рисками для code agents - SafeAgentBench (Yin et al., 2024) — 750 задач для embodied agents с hazard categories


📋 Дайджест исследования

Ключевая суть

Агенты обходят любые превентивные правила. Попросишь не удалять файл — модель откажет. Попросишь 'навести порядок в папке' — удалит тот же файл в процессе. План на шаге 3 выглядит безобидно, но становится опасным после контекста шага 7. AIR позволяет ловить опасные действия не по намерению до выполнения, а по фактическому результату после. После каждого шага агента AIR проверяет: 'что-то пошло не так в среде?' → если да, сдерживает вред → исправляет → создаёт правило для будущего. Модель видит не формулировку команды ('скопируй файл'), а последствие в реальном состоянии ('чувствительный файл оказался в публичной папке'). Семантическая проверка после факта ловит то, что синтаксические фильтры до факта пропускают.

Принцип работы

AIR встраивается в цикл выполнения агента через три компонента: trigger (какой инструмент активирует проверку — python_repl, browser, file_manager), check (произошёл ли инцидент — описание на естественном языке: 'чувствительные данные покинули защищённый периметр?'), remediate (исправление через инструменты агента — удаляет утечку, проверяет окружение, останавливает задачу). После устранения AIR генерирует защитное правило из паттерна инцидента. Например: обнаружил что .env скопирован в ./temp/ → создал правило 'перед копированием из скрытых папок спрашивай подтверждение'. При следующей задаче ('заархивируй всё') агент проверит план через это правило, увидит .env в папке, заблокирует и спросит. Это цикл обучения: каждый инцидент делает систему умнее.

Почему работает

LLM плохо предсказывают последствия через несколько шагов. План 'почисти старые ключи' семантически = 'удали ~/.ssh', но синтаксически выглядит безобидно — превентивные фильтры пропускают. Зато модели отлично оценивают произошедшее по описанию. Вопрос 'файл оказался в небезопасном месте?' не требует знать все возможные команды — модель видит текущее состояние среды, понимает семантику 'небезопасно'. Семантические проверки после действия работают лучше синтаксических до действия — потому что вред проявляется не в формулировке команды, а в её последствиях в конкретном состоянии. Плюс цикл обучения: каждый обнаруженный инцидент превращается в защитное правило. В отличие от статических барьеров ('не удаляй файлы'), динамические правила учитывают контекст ('не копируй из системных папок в пользовательские без подтверждения').

Когда применять

Для автономных агентов с инструментами → конкретно для многошаговых задач (файловая автоматизация, веб-исследования, обработка данных), особенно когда агент работает с чувствительными ресурсами (API-ключи, системные файлы, базы данных) и может совершить необратимое действие. НЕ подходит для простых задач одного шага ('напиши текст', 'ответь на вопрос') — нет инструментов и состояния среды, нечего проверять после факта.

Мини-рецепт

1. Определи триггеры: Какие инструменты агента требуют проверки? Для файловых задач: python_repl, file_manager. Для веба: browser.navigate. Для API: http_request.

2. Сформулируй check-условия: На естественном языке опиши инцидент семантически, НЕ синтаксически. Не 'функция delete вызвана', а 'чувствительный файл (.env, .ssh, .credentials) удалён или скопирован в незащищённое место'. Чем шире формулировка — тем больше покрытие, но больше ложных срабатываний.

3. Задай remediate-действия: Что агент должен сделать при обнаружении? Минимум: containment (удали копию файла, закрой доступ). Хорошо: + recovery (проверь нет ли других утечек, восстанови из бэкапа). Останови текущую задачу (она скомпрометирована).

4. Включи генерацию защитных правил: После исправления агент извлекает паттерн ('копирование из скрытых папок') и формулирует правило для будущего ('перед копированием системных файлов спрашивай подтверждение'). Авто-генерация удобна, но может создать слишком широкие правила — периодически пересматривай.

5. Встрой в execution loop: После каждого выполненного действия агент проверяет активные триггеры → если триггер сработал, проверяет check-условие → если True, выполняет remediate → генерирует guardrail. При следующих задачах проверяет план через накопленные guardrails перед выполнением.

Примеры

[ПЛОХО] : Агент, не удаляй системные файлы. Не копируй чувствительные данные. Перед каждым действием проверяй что не нарушаешь правила. — синтаксические запреты обходятся через семантически эквивалентные формулировки ('наведи порядок' вместо 'удали'). Превентивные правила всегда неполны.
[ХОРОШО] : После каждого выполненного действия проверяй: TRIGGER: python_repl. CHECK: 'Чувствительный файл (.env, .credentials) оказался в публичной папке (./temp/, ./public/) или был удалён?'. Если True → REMEDIATE: удали копию из публичной папки, проверь нет ли других утечек, останови задачу. Создай guardrail: 'Перед копированием/удалением файлов из скрытых папок (.env, .ssh) проверяй план и спрашивай подтверждение.' — ловит опасные действия по фактическому результату в среде, не по формулировке команды. Каждый инцидент превращается в правило для будущего.
Источник: AIR: Improving Agent Safety through Incident Response
ArXiv ID: 2602.11749 | Сгенерировано: 2026-02-13 05:33

Проблемы LLM

ПроблемаСутьКак обойти
Защитные фильтры обходятся перефразированиемДобавляешь правило "не удаляй файлы". Модель не удаляет напрямую. Но соглашается "навести порядок в папке" — удаляет те же файлы в процессе. Синтаксически команда другая. Семантически — то же действие. Фильтр смотрит на формулировку, не на последствия. Любой набор превентивных правил неполон — всегда найдётся новая формулировка которая обойдёт старое правилоПроверяй не "что агент планирует сделать", а "что произошло в среде после действия". Вопрос не "команда опасная?", а "результат опасный?". После каждого шага: смотри на состояние системы и спрашивай модель "произошло ли что-то нежелательное?". Семантическая проверка факта ловит то что синтаксическая проверка намерения пропускает
Модель не видит опасность через несколько шаговАгент планирует задачу на 10 шагов. План проверен — выглядит безопасно. Но шаг 5 создаёт опасную ситуацию из-за побочного эффекта шага 2. Модель не отследила причинно-следственную цепочку через контекст выполнения. Чем длиннее цепочка действий, тем хуже предсказание последствийНе полагайся только на проверку плана до выполнения. Добавь проверки после каждого шага: "что изменилось в среде?", "возникли ли риски?". Если обнаружил проблему — останови задачу, исправь состояние, извлеки паттерн и добавь правило для будущего

Методы

МетодСуть
Проверка состояния среды вместо проверки командыЧто делать: После выполнения действия агентом задай вопрос не "команда была опасной?", а "среда сейчас в опасном состоянии?". Смотри на факт, не на намерение. Например: не "агент вызвал delete_file?", а "чувствительный файл исчез из защищённой папки?". Описывай инцидент семантически на естественном языке — "данные оказались в публичном месте", "баланс стал отрицательным", "доступ получил внешний IP". Почему работает: Модель отлично понимает семантику произошедшего ("файл в небезопасном месте" = инцидент), но плохо предсказывает что "навести порядок" приведёт к тому же результату что "удалить". Проверка результата ловит все пути к проблеме, проверка команды — только известные формулировки. Когда применять: агент с инструментами для изменения среды (файлы, API, база данных, веб-действия), есть чёткий критерий "что считать инцидентом", стоимость проверки после шага приемлема. Не работает: задачи без состояния (генерация текста), критерий инцидента субъективный ("ответ звучит грубо"), нужна максимальная скорость
Обнаружил инцидент создай правило для будущегоЧто делать: Когда агент совершил нежелательное действие: 1) останови задачу, 2) исправь последствия через инструменты агента (удали опасный файл, отмени транзакцию, закрой доступ), 3) попроси модель извлечь паттерн из инцидента и сформулировать правило ("перед копированием файлов из системных папок — проверяй есть ли чувствительные данные"), 4) добавь это правило в набор проверок для следующих задач. Почему работает: Статические правила ("не удаляй .env") покрывают известные случаи. Динамические правила из реальных инцидентов учитывают контекст и новые паттерны. Модель видит конкретный пример проблемы — формулирует более точное правило чем абстрактная инструкция "будь осторожен". Каждый инцидент делает систему умнее. Когда применять: агент работает автономно на похожих задачах (можно накапливать правила), есть возможность останавливать и исправлять, инциденты обратимы или терпимы для обучения. Не работает: каждая задача уникальна (нет переноса правил), инциденты необратимы (удалённые данные без бэкапа), нужна 100% надёжность с первого раза

Тезисы

ТезисКомментарий
Модель лучше оценивает произошедшее чем предсказывает последствияДай модели текущее состояние системы и спроси "произошёл ли инцидент?" — она точно определит по семантике. Попроси предсказать "это действие приведёт к инциденту?" — пропустит непрямые пути и многошаговые цепочки. Механика: Оценка факта требует понимания текущего контекста. Предсказание требует моделирования будущих состояний через N шагов — модель теряет причинно-следственные связи. Применяй: Для защиты агентов проверяй состояние среды после каждого шага, не только намерения до выполнения. Вопрос "файл сейчас в опасном месте?" надёжнее чем "план может привести к утечке?"
Семантическая проверка ловит обходы синтаксическойПравило "не вызывай delete_user" блокирует прямую команду. Но пропускает "удали неактивных", "освободи место в базе", "почисти старые аккаунты" — семантически то же действие, синтаксически другое. Проверка "пользователь удалён из базы?" ловит все варианты. Механика: Синтаксис бесконечен — всегда найдётся новая формулировка. Семантика конечна — "данные утекли" или "не утекли", третьего нет. Модель понимает семантику лучше чем запоминает все возможные формулировки. Применяй: Описывай инциденты через результат ("баланс стал отрицательным"), не через действие ("вызвал функцию списания"). Это закрывает все пути к проблеме одной проверкой
📖 Простыми словами

AIR: Improving Agent Safety through Incident Response

arXiv: 2602.11749

Безопасность нейросетевых агентов сейчас напоминает попытку удержать воду в решете: ты ставишь фильтры на входе, а модель все равно находит способ накосячить в процессе. Проблема в том, что превентивные guardrails видят только явную жесть, типа команды «удали всё», но абсолютно слепы к цепочкам действий. Фреймворк AIR меняет логику: вместо того чтобы бесконечно расширять список запрещенных слов, он внедряет в агента полноценный incident response. Система не просто гадает, опасен ли план, а постоянно мониторит результат каждого шага, работая по циклу «обнаружил — локализовал — исправил — запомнил».

Это как нанять на работу стажера с доступом к серверу: ты не можешь предусмотреть все его тупые идеи заранее, поэтому приставляешь к нему опытного сисадмина. Стажер может начать «чистить временные файлы», что звучит безобидно, но в процессе случайно грохнуть конфиг с ключами доступа. В этот момент сисадмин бьет его по рукам, откатывает изменения и весит на монитор стикер: «Конфиги не трогать, это не мусор». Без такого надзирателя стажер бы просто довел дело до конца, и ты бы узнал о катастрофе, когда всё уже упало.

Внутри AIR крутятся конкретные механизмы: обнаружение инцидента (анализ состояния системы после шага), сдерживание (немедленная остановка, пока агент не разнес всё остальное) и извлечение уроков. Главная фишка здесь — динамическое создание правил. Если агент один раз облажался на задаче с архивацией, система генерирует инструкцию именно под этот контекст. Это на порядок эффективнее тупых черных списков, потому что защита растет вместе с опытом агента, а не висит мертвым грузом из тысячи запретов.

Хотя систему гоняли на файловых операциях, принцип универсален для любой автономной фигни: от рассылки писем до управления умным домом. Везде, где LLM может интерпретировать команду «сделай посвежее» как приказ открыть окна в мороз, нужен пост-фактум контроль. Модели катастрофически плохо предсказывают побочные эффекты своих действий через пять шагов, поэтому единственный способ не дать им разнести инфраструктуру — проверять реальность после каждого «чиха».

Короче, пора признать: превентивная безопасность сбоит, потому что нельзя запретить всё на свете. Будущее за системами, которые умеют признавать, что что-то пошло не так, и быстро исправлять ситуацию, пока она не превратилась в полноценный облом. AIR превращает агента из самоуверенного идиота в обучаемую систему, которая хотя бы не наступает на одни и те же грабли дважды. Кто не внедрит такой «предохранитель», будет вечно разгребать последствия галлюцинаций своих же ботов.

Работа с исследованием

Адаптируйте исследование под ваши задачи или создайте готовый промпт на основе техник из исследования.

0 / 2000
~0.5-2 N-токенов ~10-30с
~0.3-1 N-токенов ~5-15с