
Experimentos para la supresión de la cadena de pensamiento mediante tokens de control y ataques de indulgencia del analizador sintáctico en agentes LLM que utilizan herramientas
Código y mediciones registradas para un estudio de dos ataques a nivel de entrada contra agentes de modelos de lenguaje que utilizan herramientas. El primer ataque añade una cadena corta de los propios tokens de control de canal del modelo a una entrada no confiable; el tokenizador la interpreta como un canal de razonamiento ya cerrado, por lo que el modelo no emite cadena de pensamiento y procede directamente a la llamada a la herramienta. Esto elimina el rastro de razonamiento del que depende un monitor y, en solicitudes que el modelo de otro modo rechazaría, convierte los rechazos en acciones completadas. El segundo resultado es que si una generación idéntica de llamada a herramienta realmente se dispara lo decide el parser del harness en lugar del modelo, por lo que la robustez del agente es una propiedad conjunta del modelo y de su harness de decodificación y parseo.
Cada experimento se ejecuta a precisión completa (bfloat16) con decodificación greedy a través del sandbox de herramientas publicado, y el JSON registrado bajo results/ es producido enteramente por los scripts de este repositorio.
Artículo: "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.Configuración:
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 se ejecuta bajo transformers 4.57 o 5.16; gemma-4-26B-A4B-it es un modelo multimodal que requiere transformers 5.16. La medición de supresión de razonamiento de gpt-oss es idéntica bajo ambas versiones.
Todos los scripts de experimentos importan el harness compartido, así que ejecútalos con experiments en el path. Cada script escribe su salida en 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
| experimento | medición |
|---|---|
| E1 (gpt-oss-20b) | canal de razonamiento de 52.5 a 0 tokens (vacío en 55 de 55 tareas), la acción insegura se dispara el 100 por ciento |
| Evasión de monitor E2 | los monitores de reglas y de modelo de lenguaje detectan el 100 por ciento sin la inyección, el 0 por ciento con ella; el 39.6 por ciento de los rechazos se convirtieron en exfiltraciones completadas |
| A/B de parser E3c (Gemma) | mismo modelo y decodificación greedy: el parser regex dispara 24 de 24, el parser nativo del procesador dispara 0 de 24 |
| Generalidad E4 | gpt-oss vulnerable mediante inyección de entrada; cumplimiento de Qwen3-Thinking de 0.08 a 1.00 bajo la primitiva de canal cerrado; DeepSeek robusto |
| Defensas E5 | el sanitizador de reemplazar-por-espacio neutraliza el ataque; la eliminación ingenua falla en entradas benignas; el endurecimiento del parser descarta la llamada truncada |
| adaptativo | el tripwire de razonamiento vacío detecta la forja vacía pero es derrotado por un señuelo benigno de una línea que se dispara el 100 por ciento |
La decodificación es greedy, por lo que cada tasa es determinista por entrada y los intervalos reportados reflejan la muestra finita de tareas. La semilla 123 y un bucle de interacción de ocho saltos coinciden con el sandbox publicado. Las revisiones de los modelos objetivo y la versión de transformers están fijadas en requirements.txt y se indican en cada script.
Licencia MIT. Ver LICENSE.