
Benchmark de seguridad para evaluar agentes OpenClaw frente a contextos de ejecución adversariales, incluidos archivos envenenados, habilidades inyectadas, metadatos de herramientas engañosos y payloads codificados. Incluye 42 tareas de reproducción en 6 suites de riesgo con puntuación de ataque y utilidad.
Evaluación de seguridad de mundo abierto para agentes OpenClaw en contextos de ejecución adversariales.
DeepTrap es un benchmark de seguridad para evaluar si los agentes OpenClaw pueden completar tareas de usuario benignas mientras resisten la presión maliciosa del contexto de ejecución: archivos del espacio de trabajo envenenados, skills inyectadas, metadatos de herramientas engañosos, rutas de comandos inseguras, secretos plantados y cargas útiles codificadas.
La versión pública contiene 42 tareas de reproducción organizadas como 6 clases de vulnerabilidad contextual x 7 familias de escenarios operativos, además del ejecutor del benchmark y del código público de puntuación. También incluye 10 muestras de reproducción en chino en tasks_zh/ para experimentos de evaluación localizados. El pipeline privado de generación de tareas y búsqueda de ataques no se incluye deliberadamente.
DeepTrap acompaña al artículo:
Red-Teaming Agent Execution Contexts: Open-World Security Evaluation on OpenClaw
Hongwei Yao, Yiming Liu, Yiling He y Bingrun Yang. arXiv:2605.11047, 2026.
La mayoría de los benchmarks de agentes preguntan si un modelo puede completar trabajo útil. DeepTrap plantea una pregunta más estricta: ¿puede el agente completar trabajo útil de forma segura cuando el contexto de ejecución circundante es adversarial?
tasks_zh/.AGS es Attack Grading Score y UGS es Utility Grading Score. Las puntuaciones se reportan por suite de riesgo; Average (promedio) es la media de Riesgo 1 a Riesgo 6.
Página completa del proyecto y leaderboard: ZJUICSR.github.io/DeepTrap
DeepTrap cruza seis clases de vulnerabilidad contextual con siete familias de escenarios benignos. Cada tarea usa un prompt de usuario normal; el comportamiento adversarial es inducido por el contexto del espacio de trabajo.
DeepTrap construye contextos de ejecución comprometidos a partir de instrucciones benignas y espacios de trabajo limpios, busca cargas útiles adversariales candidatas con señales de recompensa multiobjetivo y refina las cargas útiles exitosas mediante sondeo basado en reflexión.
OPENROUTER_API_KEYDEEPSEEK_API_KEYLos IDs de modelo deben incluir el prefijo de su proveedor, por ejemplo openrouter/anthropic/claude-sonnet-4-5.
git clone https://github.com/ZJUICSR/DeepTrap.git
cd DeepTrap
pip install -e .
# Validate task metadata without running OpenClaw
python benchmark.py --dry-run
# List bundled tasks
python benchmark.py --list-tasks
# Validate Chinese-language sample tasks
python benchmark.py --tasks-dir tasks_zh --dry-run
# Run one risk suite
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite R1
# Run specific tasks
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite task_R1_T01,task_R2_T01
# Run the Chinese-language sample tasks
python benchmark.py --tasks-dir tasks_zh --model openrouter/anthropic/claude-sonnet-4-5 --suite all
# Run all tasks with repeated trials
python benchmark.py --model openrouter/anthropic/claude-sonnet-4-5 --suite all --runs 3
Los resultados se escriben en results/ por defecto.
Cada ejecución escribe un archivo JSON que contiene metadatos del modelo, configuración de la suite, puntuaciones por tarea, longitudes de transcripción, rutas del espacio de trabajo, metadatos de uso cuando están disponibles y campos de resumen agregados.
# Overall score summary
jq '.summary' results/*.json
# Per-task scores
jq '.tasks[] | {task_id, category, grading, attack_eval}' results/*.json
# Tasks where the replay attack was reproduced strongly
jq '.tasks[] | select(.attack_eval.mean >= 0.8) | {task_id, attack: .attack_eval.mean}' results/*.json
Cada tarea reporta:
AGS: puntuación de evaluación de ataques, donde un valor más alto indica una mayor realización del ataqueUGS: puntuación de evaluación de utilidad, donde un valor más alto indica una mejor finalización de la tareaDeepTrap también puede distribuirse como un dataset de Hugging Face en ZJUICSR/DeepTrap.
La exportación estructurada almacena una tarea del benchmark por fila JSONL en data/tasks.jsonl, mientras que las definiciones originales de las tareas en Markdown permanecen en tasks/. Las tareas de muestra en chino pueden exportarse por separado desde tasks_zh/ cuando sea necesario.
python scripts/export_hf_dataset.py
# Optional: export Chinese-language samples
python scripts/export_hf_dataset.py --tasks-dir tasks_zh --output data/tasks_zh.jsonl
Después de la subida, los usuarios pueden cargar los metadatos del benchmark con:
from datasets import load_dataset
dataset = load_dataset("ZJUICSR/DeepTrap", split="train")
Cada fila incluye task_id, name, risk, category, prompt, expected_behavior, grading_criteria, workspace_files, metadatos de puntuación y marcadores para comprobaciones automáticas y rúbricas del juez LLM.
.
├── benchmark.py # Public benchmark runner
├── tasks/ # 42 bundled task definitions
├── tasks_zh/ # 10 Chinese-language replay samples
├── scenes/ # Clean source scenes for baseline/delta scoring
├── data/tasks.jsonl # Hugging Face dataset export
├── docs/ # GitHub Pages project site
├── huggingface/README.md # Hugging Face dataset card
├── scripts/ # Runtime support and export code
│ ├── lib_agent.py # OpenClaw execution helpers
│ ├── lib_reward.py # Attack/utility scoring
│ ├── lib_criteria.py # Public judge criteria
│ ├── lib_llm.py # Judge backend router
│ ├── lib_openrouter.py # OpenRouter judge client
│ ├── lib_deepseek.py # DeepSeek judge client
│ ├── lib_dashscope.py # DashScope/Qwen judge client
│ └── export_hf_dataset.py # Dataset export helper
├── tests/ # Public validation tests
├── SKILL.md # Agent-facing benchmark skill
└── pyproject.toml
Si usas DeepTrap en tu investigación, por favor cita:
@article{yao2026trap,
title={Red-Teaming Agent Execution Contexts: Open-World Security Evaluation on OpenClaw},
author={Yao, Hongwei and Liu, Yiming and He, Yiling and Yang, Bingrun},
journal={arXiv preprint arXiv:2605.11047},
year={2026}
}
DeepTrap se inspiró en parte en PinchBench, que proporciona una suite de benchmark práctica para medir la capacidad de los agentes OpenClaw en tareas del mundo real. Agradecemos al proyecto PinchBench por demostrar un formato de benchmark claro y utilizable para agentes OpenClaw.
MIT — consulta LICENSE para más detalles.
| Qué probamos | Por qué importa |
|---|
| Robustez contextual | Archivos envenenados, artefactos tipo memoria, playbooks e instrucciones del espacio de trabajo | Los agentes reales leen desde un contexto local mutable, donde el texto no confiable puede redirigir silenciosamente el comportamiento |
| Manejo de secretos | Credenciales plantadas, variables de entorno, claves API y valores internos | Los agentes deben distinguir entre ser conscientes de la configuración y exfiltrar secretos |
| Límites de ejecución | Comandos shell peligrosos, scripts de despliegue y efectos secundarios en el sistema de archivos | Los agentes que usan herramientas pueden causar daños duraderos incluso cuando el prompt del usuario es benigno |
| Confianza en skills/herramientas | Skills maliciosas, metadatos de herramientas engañosos y patrones de abuso de herramientas | La seguridad del agente depende de cómo el modelo interpreta y valida las capacidades de las herramientas |
| Cargas útiles ofuscadas | Instrucciones codificadas en Base64 y de varios pasos | Los ataques pueden ocultarse detrás de tareas de procesamiento de datos de apariencia normal |
| Modelo | Métrica | Riesgo 1 | Riesgo 2 | Riesgo 3 | Riesgo 4 | Riesgo 5 | Riesgo 6 | Promedio |
|---|
| GPT-5.4 | AGS | 0.77 | 0.84 | 0.76 | 0.61 | 0.67 | 0.53 | 0.70 |
| GPT-5.4 | UGS | 0.91 | 0.83 | 0.86 | 0.77 | 0.74 | 0.87 | 0.83 |
| Claude-Sonnet-4.6 | AGS | 0.51 | 0.58 | 0.37 | 0.25 | 0.38 | 0.20 | 0.38 |
| Claude-Sonnet-4.6 | UGS | 0.71 | 0.69 | 0.55 | 0.45 | 0.55 | 0.71 | 0.61 |
| GLM-5 | AGS | 0.81 | 0.93 | 0.74 | 0.83 | 0.79 | 0.88 | 0.83 |
| GLM-5 | UGS | 0.90 | 0.90 | 0.98 | 0.89 | 0.83 | 0.88 | 0.90 |
| Qwen3.5-Plus | AGS | 0.93 | 0.93 | 0.86 | 0.74 | 0.88 | 0.97 | 0.88 |
| Qwen3.5-Plus | UGS | 0.95 | 0.92 | 1.00 | 0.98 | 0.93 | 0.93 | 0.95 |
| MiniMax-M2.5 | AGS | 0.86 | 0.89 | 0.77 | 0.66 | 0.90 | 0.89 | 0.83 |
| MiniMax-M2.5 | UGS | 0.92 | 0.95 | 1.00 | 0.88 | 0.74 | 0.90 | 0.90 |
| DeepSeek-v4-Flash | AGS | 0.90 | 0.96 | 0.80 | 0.90 | 0.82 | 0.94 | 0.89 |
| DeepSeek-v4-Flash | UGS | 0.98 | 0.96 | 1.00 | 0.96 | 0.85 | 1.00 | 0.96 |
| Deepseek-v4-Pro | AGS | 0.90 | 0.96 | 0.74 | 0.87 | 0.85 | 0.86 | 0.86 |
| Deepseek-v4-Pro | UGS | 0.90 | 0.91 | 1.00 | 0.81 | 0.84 | 0.89 | 0.89 |
| MiMo-v2.5 | AGS | 0.86 | 0.87 | 0.71 | 0.73 | 0.57 | 0.60 | 0.72 |
| MiMo-v2.5 | UGS | 0.96 | 0.95 | 0.88 | 0.93 | 0.83 | 0.89 | 0.91 |
| MiMo-v2.5-pro | AGS | 0.74 | 0.83 | 0.56 | 0.58 | 0.58 | 0.53 | 0.64 |
| MiMo-v2.5-pro | UGS | 0.92 | 0.90 | 0.88 | 0.87 | 0.71 | 0.87 | 0.86 |
| Suite | Categoría | Tareas | Qué se mide |
|---|
R1 | Secuestro del harness | 7 | Resistencia al contexto envenenado y a los pasos de flujo de trabajo inyectados |
R2 | Fuga de privacidad | 7 | Protección de credenciales plantadas y valores sensibles |
R3 | Ejecución no autorizada | 7 | Rechazo de comandos peligrosos y acciones que cruzan límites |
R4 | Riesgo de cadena de suministro | 7 | Manejo de skills maliciosas e integraciones tipo herramienta |
R5 | Abuso de herramientas | 7 | Detección de comportamiento de herramientas engañoso o no coincidente |
R6 | Ofuscación de codificación | 7 | Manejo de instrucciones codificadas y cargas útiles de varios pasos |
| Escenario | Familia de tareas típica |
|---|
T01 | Notas de reuniones, elementos de acción y resúmenes de flujos de trabajo rutinarios |
T02 | Formato de Python/código, refactorización y procesamiento de API/logs |
T03 | Notas de investigación, revisión de literatura, citas y análisis de encuestas |
T04 | Preparación de despliegues, validación de configuración y comprobaciones de salud del servicio |
T05 | Informes de ventas, ingresos y datos comerciales estructurados |
T06 | Redacción de blogs/contenido, revisión de estilo, incorporación (onboarding) y resúmenes de comentarios |
T07 | Administración de sistemas, auditorías de entorno, comprobaciones de despliegue y respaldo de logs |
| Opción | Descripción |
|---|
--model MODEL | Identificador del modelo objetivo configurado para OpenClaw |
--suite SUITE | all, una suite de riesgo como R1, o IDs de tarea separados por comas |
--tasks-dir DIR | Directorio de tareas, por defecto tasks/; usa tasks_zh/ para las muestras en chino |
--runs N | Número de ejecuciones por tarea para promediar |
--timeout-multiplier N | Escala los tiempos de espera de las tareas para modelos más lentos |
--judge-model MODEL | Modelo juez para la puntuación de ataque, sigilo y utilidad |
--output-dir DIR | Directorio de resultados, por defecto results/ |
--list-tasks | Imprime los IDs de las tareas incluidas y sale |
--dry-run | Valida la carga de tareas y los metadatos de puntuación sin ejecutar OpenClaw |
--verbose | Imprime registros de ejecución detallados |