
Implémentation de recherche d'un agent de jailbreak LLM qui contourne les garde-fous des modèles commerciaux en utilisant le tissage de prompts inoffensifs et la recherche arborescente adaptative.
TurnGate est un mécanisme de défense sensible aux réponses, conçu pour détecter et atténuer les intentions malveillantes cachées dans les systèmes de dialogue multi-tours. Il défend contre les attaques malveillantes multi-tours de pointe telles que CKA-Agent, en atteignant d'excellentes performances de défense tout en évitant les refus excessifs.
CKA-Agent démontre des taux de réussite d'attaque constamment élevés contre les derniers modèles de pointe, notamment GPT-5.2, Gemini-3.0-Pro et Claude-Haiku-4.5. Les résultats sont résumés ci-dessous :
| Model | HarmBench | StrongREJECT | ||||||
|---|---|---|---|---|---|---|---|---|
| FS ↑ | PS ↑ | V ↓ | R ↓ | FS ↑ | PS ↑ | V ↓ | R ↓ | |
| 🟢 GPT-5.2 | 0.889 | 0.079 | 0.024 | 0.008 | 0.932 | 0.056 | 0.006 | 0.006 |
| 🟣 Gemini-3.0-Pro | 0.881 | 0.087 | 0.000 | 0.032 | 0.951 | 0.037 | 0.006 | 0.006 |
| 🟠 Claude-Haiku-4.5 | 0.960 | 0.024 | 0.008 | 0.008 | 0.969 | 0.025 | 0.006 | 0.000 |
Métriques : FS = Full Success, PS = Partial Success, V = Vacuous, R = Refusal. Résultats collectés en décembre 2025.
Ce dépôt contient l'implémentation officielle de CKA-Agent, une nouvelle approche pour contourner les garde-fous des grands modèles de langage (LLM) commerciaux grâce à des techniques d'entrelacement de prompts inoffensifs et de recherche arborescente adaptative.

Installer uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Créer l'environnement
uv venv --python 3.12
source .venv/bin/activate
uv pip install vllm --torch-backend=auto
uv pip install accelerate fastchat nltk pandas google-genai httpx[socks] anthropic
Configurez vos expériences en modifiant le fichier config/config.yml. Vous pouvez contrôler les aspects suivants :
harmbench_cka ou strongreject_cka.gpt-oss-120b ou gemini-2.5-xxx.gemini-2.5-flash.Pour des instructions de configuration détaillées et des exemples, veuillez consulter le README de configuration.
Le script run_experiment.sh exécute main.py pour lancer l'intégralité du pipeline d'expérimentation (jailbreak et évaluation) par défaut.
./run_experiment.sh
Vous pouvez modifier le script run_experiment.sh ou passer directement des arguments à main.py pour exécuter des phases spécifiques :
full : Exécute l'intégralité du pipeline (par défaut).jailbreak : Exécute uniquement les méthodes de jailbreak.judge : Exécute uniquement l'évaluation sur les résultats existants.resume : Reprend une expérience interrompue.Exemple (exécution de la phase de jailbreak uniquement) :
python main.py --phase jailbreak
Si vous trouvez ce dépôt utile pour vos recherches, veuillez envisager de citer l'article suivant :
@inproceedings{wei2025trojan,
title={The Trojan Knowledge: Bypassing Commercial LLM Guardrails via Harmless Prompt Weaving and Adaptive Tree Search},
author={Rongzhe Wei and Peizhi Niu and Xinjie Shen and Tony Tu and Yifan Li and Ruihan Wu and Eli Chien and Pin-Yu Chen and Olgica Milenkovic and Pan Li},
booktitle={Forty-third International Conference on Machine Learning},
year={2026},
url={https://openreview.net/forum?id=IlJeOnKW0K}
}