
Framework di jailbreak agentico per agenti basati su LLM che utilizza la scomposizione dei compiti basata su schemi, strategie di camuffamento multi-turno e auto-evoluzione adattiva per sondare i rischi di sicurezza emergenti.
Decomposizione del compito basata su schemi. Per ridurre la difficoltà dell'attacco, sviluppiamo circa 20 schemi di decomposizione procedurale per risolvere un compito dannoso complesso in sequenze di sottocompiti relativamente benigni e semplici. Misuriamo queste sequenze candidate attraverso due dimensioni, ovvero dannosità e difficoltà, e selezioniamo quella ottimale per istanziare l'attacco.
Interazione multi-turn orientata all'esecuzione. Per i sottocompiti che attivano rifiuti di esecuzione, TRACE costruisce profili di sottocompiti e recupera appropriate strategie di interazione multi-turn orientate all'esecuzione da una libreria di strategie in continua evoluzione. TRACE sfrutta la strategia selezionata per istanziare il sottocompito e costruisce gradualmente un contesto di esecuzione plausibile attraverso interazioni multi-turn, inducendo l'agente target a completare il sottocompito.
Recupero adattivo ed evoluzione delle strategie. Quando uno step intermedio fallisce, TRACE localizza il sottocompito fallito, preserva i progressi precedenti, adatta la strategia corrispondente e riprende dal sottocompito fallito senza ricominciare da capo. Inoltre, TRACE sfrutta il feedback di esecuzione per far evolvere continuamente la libreria di strategie orientate all'esecuzione.
Due dimostrazioni registrate con Claude Code e Codex sono fornite in assets/:
| Agente target | Demo |
|---|---|
| Claude Code | Demo Claude Code |
| Codex | Demo Codex |
| Percorso | Contenuti |
|---|---|
improved_decomposer/ | Schemi procedurali, generazione di candidati, validazione e selezione |
experiment/main.py | Orchestrazione degli esperimenti e feedback di esecuzione |
experiment/runtime/ | Componenti runtime per modelli, strategie e sequenze di sottocompiti |
experiment/strategy_library/ | Archiviazione delle strategie, recupero, revisione e integrazione del feedback |
experiment/config/ | Configurazioni degli esperimenti e template di prompt |
agent_execution/ | Interfacce degli agenti target, gestione delle sessioni, raccolta delle traiettorie e verifica |
tools/ | Bridge per benchmark, adattatori API e diagnostica |
assets/ | Video dimostrativi di Claude Code e Codex |
environment.yml | Specifica dell'ambiente Conda |
La specifica dell'ambiente fornita è destinata a Linux e Python 3.11.
conda env create -f environment.yml
conda activate trace
Impostare le credenziali e l'URL di base per un endpoint Chat Completions compatibile con OpenAI:
export OPENAI_API_KEY="<your-api-key>"
export OPENAI_BASE_URL="<your-api-base-url>"
python improved_decomposer/improved_task_decomposer.py \
--data_file_path /path/to/tasks.json \
--output_file_path outputs/decompositions.jsonl \
--model "<decomposition-model>" \
--num_decompositions_per_task 5 \
--use_schema_decompose
--use_schema_decompose abilita la generazione di candidati basata su schemi.
Il seguente esempio utilizza il benchmark AdvCUA con Codex.
python experiment/main.py \
--dataset /path/to/benchmark_with_subtasks.jsonl \
--config experiment/config/config.yaml \
--lab-backend vrap \
--compose-file /path/to/benchmark/docker-compose.yml \
--attacker-model-path /path/to/attacker-model \
--target-backend codex \
--codex-model "<target-model>" \
--responses-base-url "<target-responses-api-base-url>" \
--responses-env-key OPENAI_API_KEY \
--strategy-library outputs/experiment/strategy_library.json \
--output outputs/experiment/results.jsonl
Per consultare le opzioni disponibili da riga di comando:
python improved_decomposer/improved_task_decomposer.py --help
python experiment/main.py --help