
Framework de jailbreak agentique pour les agents basés sur des LLM utilisant la décomposition de tâches basée sur des schémas, des stratégies de déguisement multi-tours et une auto-évolution adaptative afin de sonder les risques de sécurité émergents.
Décomposition de tâches basée sur des schémas. Pour réduire la difficulté de l'attaque, nous développons environ 20 schémas de décomposition procédurale afin de résoudre une tâche nuisible complexe en séquences de sous-tâches relativement bénignes et simples. Nous mesurons ces séquences candidates selon deux dimensions, à savoir la nocivité et la difficulté, et sélectionnons la meilleure pour instancier l'attaque.
Interaction multi-tours orientée exécution. Pour les sous-tâches qui déclenchent des refus d'exécution, TRACE construit des profils de sous-tâches et récupère des stratégies d'interaction multi-tours orientées exécution appropriées depuis une bibliothèque de stratégies en évolution continue. TRACE exploite la stratégie sélectionnée pour instancier la sous-tâche et construit progressivement un contexte d'exécution plausible au moyen d'interactions multi-tours, incitant l'agent cible à accomplir la sous-tâche.
Récupération adaptative et évolution des stratégies. Lorsqu'une étape intermédiaire échoue, TRACE localise la sous-tâche défaillante, préserve la progression antérieure, adapte la stratégie correspondante et reprend à partir de la sous-tâche défaillante sans repartir de zéro. De plus, TRACE exploite les retours d'exécution pour faire évoluer continuellement la bibliothèque de stratégies orientées exécution.
Deux démonstrations enregistrées avec Claude Code et Codex sont fournies dans assets/ :
| Agent cible | Démo |
|---|---|
| Claude Code | Démo Claude Code |
| Codex | Démo Codex |
| Chemin | Contenu |
|---|---|
improved_decomposer/ | Schémas procéduraux, génération de candidats, validation et sélection |
experiment/main.py | Orchestration des expériences et retours d'exécution |
experiment/runtime/ | Composants d'exécution pour les modèles, les stratégies et les séquences de sous-tâches |
experiment/strategy_library/ | Stockage, récupération, révision et intégration des retours des stratégies |
experiment/config/ | Configurations d'expérience et modèles de prompts |
agent_execution/ | Interfaces des agents cibles, gestion des sessions, collecte des trajectoires et vérification |
tools/ | Passerelles de benchmark, adaptateurs d'API et diagnostics |
assets/ | Vidéos de démonstration Claude Code et Codex |
environment.yml | Spécification de l'environnement Conda |
La spécification d'environnement fournie cible Linux et Python 3.11.
conda env create -f environment.yml
conda activate trace
Définissez les identifiants et l'URL de base pour un point de terminaison Chat Completions compatible 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 active la génération de candidats basée sur des schémas.
L'exemple suivant utilise le benchmark AdvCUA avec 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
Pour consulter les options de ligne de commande disponibles :
python improved_decomposer/improved_task_decomposer.py --help
python experiment/main.py --help