
Framework de jailbreak agéntico para agentes basados en LLM que utiliza descomposición de tareas basada en esquemas, estrategias de disfraz multiturno y autoevolución adaptativa para sondear riesgos de seguridad emergentes.
Descomposición de tareas basada en esquemas. Para reducir la dificultad del ataque, desarrollamos alrededor de 20 esquemas de descomposición procedimental para resolver una tarea dañina compleja en secuencias de subtareas relativamente benignas y simples. Medimos estas secuencias candidatas a través de dos dimensiones, es decir, dañosidad y dificultad, y seleccionamos la óptima para instanciar el ataque.
Interacción multiturno orientada a la ejecución. Para las subtareas que desencadenan rechazos de ejecución, TRACE construye perfiles de subtareas y recupera estrategias de interacción multiturno orientadas a la ejecución apropiadas de una biblioteca de estrategias en evolución continua. TRACE aprovecha la estrategia seleccionada para instanciar la subtarea y construye gradualmente un contexto de ejecución plausible a través de interacciones multiturno, induciendo al agente objetivo a completar la subtarea.
Recuperación adaptativa y evolución de estrategias. Cuando un paso intermedio falla, TRACE localiza la subtarea fallida, preserva el progreso previo, adapta la estrategia correspondiente y reanuda desde la subtarea fallida sin comenzar de nuevo. Además, TRACE aprovecha la retroalimentación de ejecución para evolucionar continuamente la biblioteca de estrategias orientadas a la ejecución.
Se proporcionan dos demostraciones grabadas con Claude Code y Codex en assets/:
| Agente objetivo | Demostración |
|---|---|
| Claude Code | Demostración de Claude Code |
| Codex | Demostración de Codex |
| Ruta | Contenido |
|---|---|
improved_decomposer/ | Esquemas procedimentales, generación de candidatos, validación y selección |
experiment/main.py | Orquestación de experimentos y retroalimentación de ejecución |
experiment/runtime/ | Componentes de tiempo de ejecución para modelos, estrategias y secuencias de subtareas |
experiment/strategy_library/ | Almacenamiento de estrategias, recuperación, revisión e integración de retroalimentación |
experiment/config/ | Configuraciones de experimentos y plantillas de prompts |
agent_execution/ | Interfaces del agente objetivo, manejo de sesiones, recolección de trayectorias y verificación |
tools/ | Puentes de benchmark, adaptadores de API y diagnósticos |
assets/ | Videos de demostración de Claude Code y Codex |
environment.yml | Especificación del entorno Conda |
La especificación de entorno proporcionada está dirigida a Linux y Python 3.11.
conda env create -f environment.yml
conda activate trace
Establezca las credenciales y la URL base para un endpoint de Chat Completions compatible 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 habilita la generación de candidatos basada en esquemas.
El siguiente ejemplo utiliza el 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
Para inspeccionar las opciones de línea de comandos disponibles:
python improved_decomposer/improved_task_decomposer.py --help
python experiment/main.py --help