Согласно мониторингу 1M AI News, инженер Ant Group и автор фронтенд-фреймворка Umi.js Чэнь Чэн обратил исходный код Claude Code 2.1.81 и полностью восстановил происходящее после нажатия режима auto. Основное открытие: каждый вызов инструмента проходит через четырехуровневую цепочку принятия решений, только если три первых уровня не могут определить безопасность, вызывается отдельный AI-классификатор для проверки.
Четыре уровня цепочки решений идут по порядку: первый — проверка существующих правил доступа, при совпадении — пропуск; второй — моделирование режима acceptEdits (разрешение редактирования файлов), если в этом режиме происходит пропуск, риск считается низким, классификатор пропускается; третий — проверка белого списка инструментов только для чтения (Read, Grep, Glob, LSP, WebSearch и др.), которые не изменяют состояние, — безусловный пропуск; если все вышеперечисленное не подходит, переходим к четвертому — отправке отдельного API-запроса к Claude Sonnet для оценки безопасности.
Ключевые детали дизайна классификатора: всегда используется Sonnet вместо Opus — баланс между затратами и задержками; temperature установлен в 0 для обеспечения детерминированности вывода; классификатор определен как «система безопасности автономного AI-программного агента», защищающая от трех типов рисков (инъекция подсказок, распространение по диапазону, случайный ущерб); конфигурационный файл CLAUDE.md пользователя внедряется в контекст классификатора как основание для определения пользовательских намерений.
Правила перехвата охватывают более 22 категорий, включая force push, прямое пушение в main, загрузку и выполнение внешнего кода, производственные развертывания, утечку данных, самовредоносные права, создание удаленных уязвимостей для выполнения кода, утечку учетных данных и др. Исключения из пропуска включают 7 категорий: тестовые жестко закодированные ключи, локальные операции с файлами в рабочей директории, только чтение GET-запросы, установку заявленных зависимостей, установку официальных инструментов, чтение конфигурационных учетных данных и их отправку поставщику, пуш в текущую рабочую ветку.
Также реализована система «отказа» (熔断): после 3 последовательных отказов или 20 отказов в сумме система переходит к ручному подтверждению; в режиме headless агент немедленно останавливается. Когда классификатор недоступен, управление осуществляется через feature flag, который определяет «fail-closed» (прямой отказ) или «fail-open» (переход к ручному подтверждению).
В режиме auto поведение с подсказками при инъекции также регулируется по частоте: каждые 5 диалогов происходит инъекция, в первый из этих циклов — полная версия (около 800 слов, включает шесть команд, таких как «немедленно выполнить», «уменьшить прерывания», «действие лучше плана»), остальные 4 — укороченная версия, чтобы сбалансировать использование контекстного окна и стабильность поведения.