Модели GPT, Claude и Gemini столкнулись с проблемой утечки скрытых рассуждений (reasoning). Как выяснилось в эксперименте, опубликованном пользователем X @kotekjedi_ml, можно восстановить скрытое рассуждение в этих API — хотя по дизайну эта информация не показывается пользователям.
API шифруют reasoning в opaque block и возвращают клиенту. Пользователь получает данные, но не может их прочитать или изменить. При следующем вызове клиент должен вернуть блок серверу — модель продолжит рассуждение с прежнего состояния. Такой подход экономит ресурсы и сохраняет состояние задачи, но создаёт риски для безопасности.
Главная проблема — недостаточная жёсткость привязки контекста: зашифрованное reasoning не всегда строго привязано к модели и сессии. Рассуждение, сгенерированное одной сильной моделью, в некоторых случаях может быть прочитано другой моделью того же производителя. Исследователи научились передавать зашифрованное reasoning совместимой модели, которую легче обойти — она переводила уже загруженное содержание в читаемый текст. При этом не требовалось получать серверный ключ или взламывать шифрование.
Например, в случае с Claude: Opus выполняет задачу, сервер генерирует hidden reasoning и возвращает клиенту signed thinking block. Этот блок помещают в контекст Haiku — и Haiku корректно его загружает. В результате атакующим не нужно преодолевать ограничения Opus — достаточно заставить Haiku повторно вывести уже прочитанное содержимое.
Исследователи собрали 6708 записей запуска агентов с GitHub и Hugging Face, из них обработали 315320 блоков рассуждений (reasoning block). В восстановленных записях пользователей обнаружены API key, password, access token, private key, email и внутренняя техническая информация — часть из неё не присутствовала в открытой истории разговоров. Это доказывает, что модель не просто воспроизводит рассуждения на основе видимого текста.
Полные рассуждения ценны для обучения модели: в них зафиксировано, как задача разбивается на части, как формируются промежуточные суждения, как исправляются ошибки, какие пути отвергаются. Раньше для получения таких данных нужно было генерировать рассуждения с помощью дорогих закрытых моделей. Теперь же в открытых логах агентов уже есть множество encrypted reasoning — достаточно найти совместимую модель для чтения этих блоков, чтобы восстановить качественные рассуждения.
Генерация и извлечение рассуждений разделены между разными компонентами: высокопроизводительные модели создают ценные рассуждения, а недорогие — считывают их. Это ставит под угрозу «защитный барьер» рассуждений (reasoning moat) OpenAI и Anthropic — теперь можно с помощью дешёвой модели воспроизвести траекторию мышления топовой модели, что разрушит монополию крупных компаний на данные о рассуждениях.
Эксперимент с Kimi K3 подтверждает ценность рассуждений: исследователи взяли около 1% токенов из начала рассуждений Opus и поместили их в контекст рассуждений Kimi K3. В результате ответ Kimi K3 сместился в направлении вывода Opus, тогда как контрольная модель не показала аналогичного изменения.
Reasoning влияет на поведение модели не только в процессе офлайн-обучения, но и во время выполнения. В системе 05Agent reasoning может содержать скрытые действия. В обычных чатах утечка reasoning означает раскрытие внутренней информации, а в сценариях с Agent reasoning также выполняет функцию состояния задачи. Длительный Agent может фиксировать в себе анализ, исключённые варианты, результаты работы инструментов и планы на дальнейшие действия; после паузы состояние можно загрузить и продолжить работу.
Если reasoning block можно перенести из одного контекста в другой в рамках работы Agent, вместе с ним могут передаться не только исторические данные, но и сформированные моделью тенденции к действиям. Эксперимент продемонстрировал invisible prompt injection: вредоносный контент сначала попадает в hidden reasoning, затем новый Agent загружает этот state. При этом в видимых пользователю входных данных нет соответствующих инструкций, но после восстановления внутреннего состояния модель выполняет дополнительные действия.
Возникает вопрос о проектировании прав доступа: как контролировать reasoning, если оно сохраняется, перемещается между задачами и влияет на поведение. Нужно не только усилить защиту от jailbreak, но и определить границы прав для reasoning — кто может его читать, куда он может быть перенесён, когда он должен истечь. Безопасность Agent переходит от контроля за выводом модели к контролю за тем, с каким состоянием модель продолжает работу.
В эксперименте исследователи использовали несколько независимых сигналов, чтобы доказать, что восстановленное рассуждение действительно происходит из скрытого состояния предыдущей модели, а не сгенерировано заново. Один из сигналов — число thinking token. В эксперименте source model обрабатывает 120 задач Codeforces, при этом фиксируется число hidden thinking token по данным API. Затем восстанавливают рассуждение и пересчитывают длину текста. Если decoder решает задачу независимо, длина рассуждения может сильно отличаться. Однако у моделей Anthropic, OpenAI и Google длина восстановленного рассуждения сильно соответствует числу reasoning token, зафиксированному в API — множество образцов приближаются к y = x.
Ссылки на материалы:
<<<CODE_BLOCK_N>>>
<<<IMG_N>>>