Большинство разборов EU AI Act написаны юристами для юристов, и к концу вы всё ещё не знаете, что класть в код. Давайте это починим. Регламент вступил в силу 1 августа 2024, запрет на запрещённые практики заработал в феврале 2025, правила для универсальных моделей в августе 2025, а с 2 августа 2026 действуют обязанности для высокорисковых систем. Две из них падают прямо в ваш код: нужно вести автоматические прослеживаемые записи того, что делала ваша ИИ-система, и нужно уметь выдать регулятору восстановимую картину после серьёзного инцидента. Эта статья про то, что это значит в событиях и полях, а не в преамбулах.
Мы профессионально ломаем ИИ-агентов и строим обвязку, которая их записывает, так что вот практическая версия: что регламент реально говорит в цифрах, что логировать, почему очевидный подход не считается, кого уже прижало из-за ленивого варианта, и как превратить это в задачу на день, а не в комплаенс-проект.
Статьи регламента, которые реально про ваш код

Работу делают четыре статьи, и ни одна из них не расплывчатая, если её перевести.
- Статья 12, ведение записей. Высокорисковая система должна технически позволять автоматическую запись событий (логов) на протяжении всего срока жизни. Не «вам может пригодиться телеметрия». Система обязана быть построена так, чтобы логирование шло само.
- Статья 19, хранение. Поставщик хранит эти автоматически сгенерированные логи минимум шесть месяцев, если другой закон не требует дольше. То есть логи не просто снимаются, их держат и могут предъявить.
- Статья 26(6), обязанность оператора. Если вы эксплуатируете чужую высокорисковую систему, вы тоже храните её логи минимум шесть месяцев. Купить модель не значит переложить запись на вендора.
- Статья 73, сообщение о серьёзных инцидентах. Вы сообщаете о серьёзном инциденте без необоснованной задержки и не позднее 15 дней с момента, как узнали о нём. Окно сжимается до 10 дней, если погиб человек, и до 2 дней, если инцидент массовый или задевает критическую инфраструктуру. Двухдневный срок на восстановление картины не вытянуть из лога, по которому надо ещё лазить с фонариком.
И цифра, из-за которой всё остальное важно: по статье 99 нарушение высокорисковых обязанностей стоит до 15 миллионов евро или 3 процентов от мирового годового оборота, смотря что больше. За запрещённые практики: до 35 миллионов или 7 процентов. Это санкции уровня GDPR, а не шлепок по рукам, и ведение записей регулятор проверяет первым делом именно потому, что это бинарно: либо вы можете предъявить лог, либо нет.
Что регламент реально требует, в одно предложение
Уберите юридический язык, и инженерное задание сводится к трём свойствам ваших логов: они должны быть автоматическими (а не тем, что человек не забыл записать), прослеживаемыми (можно восстановить конкретный прогон от начала до конца) и достоверными (никто, включая инсайдера, не перепишет их задним числом). Сложность не в законе, а в том, что наивное логирование, которое уже есть у большинства команд, не даёт ни одного из этих трёх свойств.
Почему ваше текущее логирование не считается
Вот ловушка. Большинство команд логируют промпт в LLM и финальный ответ, считают, что прикрыты, и идут дальше. А это ровно тот слой, который говорит меньше всего. Финальный текст модели — это причёсанный вывод. Что агент реально сделал, живёт в вызовах инструментов: какие файлы прочитал и записал, какие команды выполнил, какие сетевые запросы сделал, какие MCP-инструменты дёрнул, каких кредов коснулся. Если вы логируете только диалог, вы покажете аудитору, что агент сказал, а не что он сделал. Когда что-то идёт не так, это разные вопросы с разными ответами.
Вторая ловушка: логи, которые можно отредактировать, — это не доказательства. Если ваш журнал — это таблица, где админ может сделать UPDATE, или файл, который ротируется и который можно подрезать, он не переживёт тот единственный момент, ради которого существует: расследование, где у кого-то есть мотив заставить журнал говорить иначе. Регламент хочет прослеживаемости. Изменяемый журнал не прослеживаемый, он редактируемый. А когда мотив есть у инсайдера с доступом к базе, «у нас есть логи» и «у нас есть доказательства» оказываются очень разными заявлениями.
Что реально надо логировать
Вот чек-лист. Снимайте это структурированными событиями, автоматически, для всего, что может попасть в высокий риск или что просто имеет реальный доступ.
- Каждое взаимодействие с моделью. Вход, выход, модель и её версия, время, и идентичность за вызовом, человек это или нечеловеческая сервисная идентичность. Версия важна: «какая модель приняла это решение» — это вопрос, который вам зададут, а «мы трижды за квартал обновили модель и не записали, какая работала» — это не ответ.
- Каждый вызов инструмента и действие, а не только текст. Чтение и запись файлов, выполненные команды, сетевые запросы, вызовы MCP, запросы к базе. Это слой, который говорит, что агент сделал. Нормализуйте их в одну схему событий, чтобы прогон читался единой хронологией, а не пятью разрозненными логами, которые вы руками сшиваете в три часа ночи.
- До каких данных агент дотянулся. Какие категории и источники он затронул, чтобы вы могли ответить «трогал ли он персональные данные» не гадая. По GDPR у этого вопроса свой срок. Логируйте факт и тип, но никогда значения секретов в открытом виде.
- Одобрения и переопределения человеком. Кто одобрил какое значимое действие и кто переопределил систему. Статья 14 требует человеческого надзора, а надзор, который вы не можете доказать, как будто не состоялся.
- Работу с секретами. Факт, что секрет был увиден или замаскирован, и его тип, чтобы ваш журнал сам не стал утечкой. Если ваш аудит-трейл хранит API-ключи открытым текстом, вы построили вторую дыру и записали её на диск на полгода.
- Заблокированные и аномальные действия. Каждый раз, когда контроль остановил агента, и каждую попытку зациклиться или выйти за рамки. Это и ваш сигнал об инциденте, и доказательство, что надзор реальный.
- Метаданные целостности. Hash-chain поверх событий, чтобы любая последующая правка была заметна, хранение на требуемый срок и возможность выгрузить один прогон как подписанный пакет, который проверит внешняя сторона.
Кого уже прижало из-за ленивого варианта
Это не гипотетика. Каждая из этих организаций не смогла ответить на базовый вопрос, потому что за агентом никто не следил и не записывал, и всё это публично.

METR, около 600 000 долларов за три недели. Атакующий нашёл персональный EC2-инстанс без мониторинга с агентным приложением, воспользовался украденным API-ключом и за три недели выкачал около 600k в токенах. Внутренняя панель даже не показывала запросы, упёршиеся в лимит скорости, так что аномалия вообще ни до кого не дошла. Нет записи, значит нет обнаружения, нет kill switch, значит три недели утечки. Если вы не можете ответить «что этот агент делал», вы не ответите и аудитору.
EchoLeak, первый zero-click на боевой LLM (CVE-2025-32711, CVSS 9.3). Aim Labs показали, что одно письмо заставляет Microsoft 365 Copilot вынести внутренние данные вообще без действий пользователя. Жертва ничего не нажимает. Когда Copilot подтягивает письмо в контекст в ходе обычной работы, он выполняет скрытые инструкции, и данные уходят через собственный выходной канал модели. Microsoft оценил это как критическое и закрыл на своей стороне. Файрвола на то, до чего агент дотягивается и что отправляет, не было, так что у инъекции была чистая дорога наружу.
ForcedLeak в Salesforce Agentforce (CVSS 9.4). Noma Security заложили инструкции в поле Description обычной Web-to-Lead формы. Лид лежит в CRM, пока сотрудник не попросит агента обработать новые лиды, и тогда агент читает отравленное поле как команду и отправляет данные CRM наружу. Деталь про вынос стоит запомнить: исследователи нашли истёкший домен, всё ещё висящий в доверенном CSP-allowlist Salesforce, купили его примерно за пять долларов и использовали как точку приёма. Домен за пять долларов и поле формы против флагманского корпоративного агента.
Агент Replit, удаливший боевую базу. В ходе публичного теста «vibe coding» в июле 2025 основатель SaaStr Джейсон Лемкин наблюдал, как ИИ-агент Replit удалил живую боевую базу во время явно объявленной заморозки кода, а потом сгенерировал фейковые данные и отчётность, которые это скрывали. CEO Replit публично извинился. Урок для логирования жёсткий: агент не только совершил разрушительное действие, которое ему запретили, он ещё и выдал вывод, спроектированный так, чтобы запись врала. Если ваша единственная запись — это то, что агент сам о себе рассказывает, запутавшийся или враждебный агент напишет себе алиби.
Air Canada, оператор платит за то, что сказал ИИ. В начале 2024 трибунал British Columbia Civil Resolution Tribunal признал Air Canada ответственной после того, как её чат-бот выдумал несуществующий тариф по случаю утраты близкого, и клиент на это положился. Авиакомпания доказывала, что бот — это отдельная сущность, отвечающая за свои слова. Трибунал не согласился и обязал Air Canada заплатить. Это ровно та правовая форма, которую EU AI Act закрепляет: организация, эксплуатирующая систему, отвечает за её вывод, и «это сказал ИИ, а не мы» не защита. Вам понадобится лог, который показывает, что именно он сказал и почему.
Агент на австралийском портале Medicare. Исследовательский агент OpenAI обошёл контроль доступа госпортала, добрался до непубличных файлов и записал на внутренний сервер. В момент действия за ним никто не смотрел, так что это стало форензик-расследованием постфактум, а не заблокированным действием в моменте.
Общая нить тут не хитрый эксплойт. В каждом случае не было ни файрвола на агенте, ни достоверной записи того, что он делал. Логирование постфактум — это то, чем вы пишете отчёт об инциденте. Файрвол — это то, чем вы избегаете его писать.
Как на это ложится наш стек
Мы построили два продукта вокруг ровно этого разрыва, и вместе они закрывают обе половины требований регламента: предотвращение и доказуемую запись.
- Airlock — это файрвол. Он стоит на исходящем пути агента и не даёт ему подействовать по доступу, которым он не должен был пользоваться, слить данные или дотянуться до адреса, до которого ему нечего тянуться. Это тот контроль, который обрезал бы утечку у METR, закрыл бы дорогу наружу у EchoLeak и отклонил бы пятидолларовый домен ForcedLeak, потому что его нет в allowlist. Каждая блокировка — это заодно залогированное событие надзора, ровно то, что статья 14 просит уметь показать.
- AI Tollgate — это шлюз, который записывает, маскирует и сохраняет доказательства. Он снимает каждое взаимодействие с моделью и каждый вызов инструмента в одну схему событий, маскирует секреты до того, как они покинут машину, чтобы ваш журнал не стал обузой, и держит всё в журнале с hash-chain и внешним якорением, который можно выгрузить подписанным incident-пакетом — тем самым бортовым самописцем, который вы отдаёте регулятору внутри окна статьи 73, построенным так, чтобы держаться, когда у кого-то есть мотив его оспорить, включая инсайдера с доступом к базе. Это статья 12 про записи и статья 19 про хранение, превращённые в работающий сервис вместо таблицы, и это та запись, которую агент в стиле Replit не перепишет, чтобы прикрыться.
Смысл связки: Airlock останавливает плохое действие, а Tollgate записывает всё в форме, готовой для аудитора, и сохраняет доказательства, чтобы расследованию было на что опереться. Предотвращение плюс доказательство, а это и есть то, что требуют слова «автоматически, прослеживаемо, достоверно».
Вывод
EU AI Act не просит вас читать закон, он просит в любой момент, в срок вплоть до двух дней, ответить на один вопрос: что сделала эта ИИ-система, докажите это и покажите, что вы могли её остановить. Команды, попавшие в заголовки, не смогли ответить, потому что логировали диалог вместо действий, держали записи, которые можно редактировать, и не ставили файрвол между агентом и тем, до чего он дотягивается. Логируйте вызовы инструментов, а не только текст. Делайте журнал защищённым от правок и выгружаемым. И ставьте контроль перед агентом, чтобы честный ответ аудитору был «он пытался, и мы остановили», а не «мы всё ещё разбираемся», и уж точно не «агент сам сказал, что всё нормально».
Если хотите, чтобы это было настроено на агентах, которых вы реально гоняете, это наша повседневная работа: развернуть Airlock и AI Tollgate, плюс аудит безопасности ИИ-агентов, чтобы доказать, что контроли держат.