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