
Implementação de pesquisa de um agente de jailbreak de LLM que contorna as barreiras de proteção de modelos comerciais usando entrelaçamento de prompts inofensivos e busca em árvore adaptativa.
TurnGate é um mecanismo de defesa ciente da resposta, projetado para detectar e mitigar intenções maliciosas ocultas em sistemas de diálogo multi-turno. Defende contra ataques maliciosos multi-turno de última geração, como o CKA-Agent, alcançando ótimo desempenho de defesa enquanto evita recusas excessivas.
O CKA-Agent demonstra taxas de sucesso de ataque consistentemente altas contra os mais recentes modelos de fronteira, incluindo GPT-5.2, Gemini-3.0-Pro e Claude-Haiku-4.5. Os resultados estão resumidos abaixo:
| 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étricas: FS = Sucesso Total, PS = Sucesso Parcial, V = Vazio, R = Recusa. Resultados coletados em dezembro de 2025.
Este repositório contém a implementação oficial do CKA-Agent, uma nova abordagem para contornar os guardrails de grandes modelos de linguagem (LLMs) comerciais por meio de técnicas de tecelagem de prompts inofensivos e busca em árvore adaptativa.

Instale o uv
curl -LsSf https://astral.sh/uv/install.sh | sh
Crie o ambiente
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
Configure seus experimentos modificando o arquivo config/config.yml. Você pode controlar os seguintes aspectos:
harmbench_cka ou strongreject_cka.gpt-oss-120b ou gemini-2.5-xxx.gemini-2.5-flash.Para instruções detalhadas de configuração e exemplos, consulte o README de configuração.
O script run_experiment.sh executa o main.py para rodar todo o pipeline de experimento (jailbreak e avaliação) por padrão.
./run_experiment.sh
Você pode modificar o script run_experiment.sh ou passar argumentos diretamente para o main.py para executar fases específicas:
full: Executa todo o pipeline (padrão).jailbreak: Executa apenas os métodos de jailbreak.judge: Executa apenas a avaliação nos resultados existentes.resume: Retoma um experimento interrompido.Exemplo (executando apenas a fase de jailbreak):
python main.py --phase jailbreak
Se você achar este repositório útil para sua pesquisa, por favor considere citar o seguinte artigo:
@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}
}