
Framework de jailbreak agêntico para agentes baseados em LLM, utilizando decomposição de tarefas baseada em esquemas, estratégias de disfarce em múltiplas interações e auto-evolução adaptativa para sondar riscos de segurança emergentes.
Decomposição de tarefas baseada em esquemas. Para reduzir a dificuldade do ataque, desenvolvemos cerca de 20 esquemas de decomposição procedural para resolver uma tarefa nociva complexa em sequências de subtarefas relativamente benignas e simples. Medimos essas sequências candidatas através de duas dimensões, ou seja, nocividade e dificuldade, e selecionamos a ótima para instanciar o ataque.
Interação multi-turno orientada à execução. Para as subtarefas que acionam recusas de execução, o TRACE constrói perfis de subtarefas e recupera estratégias apropriadas de interação multi-turno orientadas à execução a partir de uma biblioteca de estratégias em evolução contínua. O TRACE utiliza a estratégia selecionada para instanciar a subtarefa e gradualmente constrói um contexto de execução plausível através de interações multi-turno, induzindo o agente alvo a completar a subtarefa.
Recuperação adaptativa e evolução de estratégias. Quando uma etapa intermediária falha, o TRACE localiza a subtarefa que falhou, preserva o progresso anterior, adapta a estratégia correspondente e retoma a partir da subtarefa que falhou sem começar de novo. Além disso, o TRACE utiliza o feedback de execução para evoluir continuamente a biblioteca de estratégias orientadas à execução.
Duas demonstrações gravadas com Claude Code e Codex são fornecidas em assets/:
| Agente alvo | Demonstração |
|---|---|
| Claude Code | Demonstração do Claude Code |
| Codex | Demonstração do Codex |
| Caminho | Conteúdo |
|---|---|
improved_decomposer/ | Esquemas procedurais, geração de candidatos, validação e seleção |
experiment/main.py | Orquestração de experimentos e feedback de execução |
experiment/runtime/ | Componentes de runtime para modelos, estratégias e sequências de subtarefas |
experiment/strategy_library/ | Armazenamento de estratégias, recuperação, revisão e integração de feedback |
experiment/config/ | Configurações de experimentos e templates de prompts |
agent_execution/ | Interfaces de agentes alvo, gerenciamento de sessões, coleta de trajetórias e verificação |
tools/ | Pontes de benchmark, adaptadores de API e diagnósticos |
assets/ | Vídeos de demonstração do Claude Code e Codex |
environment.yml | Especificação do ambiente Conda |
A especificação de ambiente fornecida é destinada a Linux e Python 3.11.
conda env create -f environment.yml
conda activate trace
Defina as credenciais e a URL base para um endpoint de Chat Completions compatível com 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 habilita a geração de candidatos baseada em esquemas.
O exemplo a seguir usa o benchmark AdvCUA com 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
Para inspecionar as opções de linha de comando disponíveis:
python improved_decomposer/improved_task_decomposer.py --help
python experiment/main.py --help