
Эксперименты по подавлению цепочки рассуждений с помощью управляющих токенов и атакам на снисходительность парсера в LLM-агентах, использующих инструменты
Код и зарегистрированные измерения для исследования двух атак на уровне входных данных на агентов на основе языковых моделей, использующих инструменты. Первая атака добавляет короткую строку собственных управляющих токенов канала модели к недоверенному вводу; токенизатор читает её как уже закрытый канал рассуждений, поэтому модель не выдаёт цепочку рассуждений и переходит непосредственно к вызову инструмента. Это удаляет след рассуждений, на который опирается монитор, и на запросах, от которых модель иначе отказалась бы, превращает отказы в выполненные действия. Второй результат состоит в том, что то, сработает ли фактически идентичная генерация вызова инструмента, определяется парсером обвязки, а не моделью, поэтому устойчивость агента является совместным свойством модели и её обвязки декодирования и парсинга.
Каждый эксперимент выполняется на полной точности (bfloat16) с жадным декодированием через выпущенную песочницу инструментов, и зарегистрированный JSON в results/ полностью создаётся скриптами из этого репозитория.
Статья: "Control-Token Injection Suppresses Chain-of-Thought and Defeats Reasoning-Based Oversight in Tool-Using Agents".
requirements.txt (aicomp-sdk 3.1.2, transformers 5.16.1, gymnasium 0.29, openai, openai-harmony).openai/gpt-oss-20b, google/gemma-4-26B-A4B-it, deepseek-ai/DeepSeek-R1-Distill-Qwen-7B, Qwen/Qwen3-4B-Thinking-2507.Настройка:
python3 -m venv --system-site-packages .venv
source .venv/bin/activate
pip install -r requirements.txt
# download the target models (needs an authenticated Hugging Face CLI)
hf download openai/gpt-oss-20b
hf download google/gemma-4-26B-A4B-it
hf download deepseek-ai/DeepSeek-R1-Distill-Qwen-7B
hf download Qwen/Qwen3-4B-Thinking-2507
gpt-oss-20b работает под transformers 4.57 или 5.16; gemma-4-26B-A4B-it — это мультимодальная модель, требующая transformers 5.16. Измерение подавления рассуждений gpt-oss идентично в обеих версиях.
Все скрипты экспериментов импортируют общую обвязку, поэтому запускайте их с experiments в пути. Каждый скрипт записывает свой вывод в results/.
export PYTHONPATH=experiments
# reproduction gate: the forge empties the gpt-oss analysis channel while the call still fires
python scripts/h200_gate.py
# E1: chain-of-thought suppression at scale
python experiments/e1_cot_suppression.py
# E2: monitor evasion and refusal bypass (generate traces, then score three monitors)
python experiments/e2b_generate.py
JUDGE=gemma python experiments/e2b_judge.py
# E3: parser leniency
python experiments/e3a_parser_leniency.py # deterministic, no model
MODEL=gpt_oss python experiments/e3b_end2end.py
MODEL=gemma python experiments/e3b_end2end.py
python experiments/e3c_gemma_parser_ab.py # same model, two parsers
# E4: generality across reasoning models
MODEL=deepseek-ai/DeepSeek-R1-Distill-Qwen-7B TAG=deepseek python experiments/e4_generality.py
MODEL=Qwen/Qwen3-4B-Thinking-2507 TAG=qwen3 python experiments/e4_generality.py
# E5: defenses
python experiments/e5_defenses.py # input sanitization
python experiments/e5_d2_parser_hardening.py # parser hardening, deterministic
# W1 to W3: ablation, token-level grounding, indirect delivery, cross-stack parser
python experiments/w1_forge_variants.py
python experiments/w1_tokenlevel.py
python experiments/w2_indirect.py
python experiments/w3_truncation_sweep.py
# adaptive empty-reasoning evasion (raw traces, effort sweep, decoy attack, monitor matrix)
python experiments/ad_traces_effort.py
python experiments/ad_decoy.py
python experiments/ad_decoy_judge.py
# regenerate the results figure from the logged JSON
python scripts/make_results_fig.py
experiments/harness.py shared harness: build an agent, run a message through the
sandbox gym env, and read back the reasoning channel, the
fired tool events, and the predicates
experiments/e1_*.py chain-of-thought suppression at scale
experiments/e2*_*.py monitor evasion and refusal bypass (generate, then judge)
experiments/e3*_*.py parser leniency: deterministic, end-to-end, and A/B
experiments/e4_*.py generality across reasoning models
experiments/e5_*.py defenses: sanitization and parser hardening
experiments/w1_*.py ablation of the injected string and token-level grounding
experiments/w2_*.py indirect delivery and broader action types
experiments/w3_*.py truncation robustness of the attack
experiments/ad_*.py adaptive empty-reasoning evasion and raw traces
experiments/*_probe.py, *_debug.py supporting probes used while building the study
scripts/h200_gate.py the reproduction gate
scripts/make_results_fig.py the results figure
results/*.json logged measurements produced by the scripts above
| эксперимент | измерение |
|---|---|
| E1 (gpt-oss-20b) | канал рассуждений с 52.5 до 0 токенов (пусто на 55 из 55 задач), небезопасное действие срабатывает в 100 процентах случаев |
| E2 уклонение от монитора | правило и языковые модели-мониторы обнаруживают 100 процентов без внедрения, 0 процентов с ним; 39.6 процента отказов преобразованы в завершённые эксфильтрации |
| E3c A/B парсеров (Gemma) | одна и та же модель и жадное декодирование: regex-парсер срабатывает 24 из 24, нативный парсер процессора срабатывает 0 из 24 |
| E4 обобщаемость | gpt-oss уязвим через внедрение во входные данные; соответствие Qwen3-Thinking от 0.08 до 1.00 под примитивом закрытого канала; DeepSeek устойчив |
| E5 защиты | санитайзер с заменой на пробел нейтрализует атаку; наивное удаление даёт сбой на безобидных входных данных; усиление парсера отбрасывает усечённый вызов |
| адаптивные | ловушка на пустые рассуждения перехватывает пустую подделку, но обходится однострочной безобидной приманкой, которая срабатывает в 100 процентах случаев |
Декодирование жадное, поэтому каждая доля детерминирована для каждого входа, а сообщаемые интервалы отражают конечную выборку задач. Seed 123 и цикл взаимодействия из восьми шагов соответствуют выпущенной песочнице. Ревизии целевых моделей и версия transformers зафиксированы в requirements.txt и указаны в каждом скрипте.
MIT License. См. LICENSE.