
Defensa de auditoría de acciones previa a la ejecución que detecta y enmascara la inyección indirecta de prompts en agentes LLM que utilizan herramientas, mediante recuperación de embeddings y puntuación contrastiva de log-probabilidad.
ActGuard es una defensa de auditoría de acciones previa a la ejecución contra la inyección indirecta de prompts en agentes LLM que utilizan herramientas. Este repositorio contiene la implementación final de ActGuard y el entorno de ejecución basado en AgentDojo necesario para evaluarla.
La versión contiene únicamente la configuración final y completa de ActGuard. Los componentes internos siguen usando el identificador reflective_audit por compatibilidad con el benchmark de AgentDojo y los formatos de traza.
meta-llama/Meta-Llama-3.1-8B-Instruct, o un
checkpoint local equivalenteSe recomienda usar uv:
uv sync --frozen --extra actguard
Alternativamente, instalar en un entorno de Python activado:
python -m pip install -e '.[actguard]'
Desde la raíz del repositorio:
export OPENROUTER_API_KEY=...
uv run --frozen --extra actguard ./scripts/run_actguard.sh
Si el proyecto se instaló con pip, ejecutar:
export OPENROUTER_API_KEY=...
./scripts/run_actguard.sh
El script evalúa la suite workspace con el
ataque important_instructions. Usa OpenRouter para el agente principal y el
verificador, y modelos locales compatibles con Hugging Face para la recuperación por embeddings y la atribución contrastiva de log-probabilidad. Es posible que se requiera autenticación de Hugging Face antes de que se pueda descargar el checkpoint Llama restringido predeterminado.
Para usar checkpoints descargados, reemplazar los valores de
--reflective-audit-embedding-model y
--reflective-audit-logprob-model en scripts/run_actguard.sh con sus rutas locales. Usar uv run --frozen actguard-benchmark --help para ver todas las opciones del benchmark.
| Parámetro | Ajuste |
|---|---|
| Modelo de backend | openai/gpt-4o-mini-2024-07-18 vía OpenRouter |
| Temperatura del modelo de backend | 0 |
| Longitud de fragmento | 80--180 caracteres |
| Modelo de embeddings | sentence-transformers/all-MiniLM-L6-v2 |
| Fragmentos recuperados | k = 3 |
| Modelo de log-probabilidad contrastiva | meta-llama/Meta-Llama-3.1-8B-Instruct |
| Umbral de log-probabilidad | 0 |
| Umbral de agrupación de fragmentos similares | 0.9 |
| Contexto de resultados de herramientas | Historial auditable completo |
| Modelo verificador | openai/gpt-5-mini vía OpenRouter |
| Temperatura del verificador | 0 |
| Tamaño del conjunto de próximas herramientas predichas | 1--3 |
| Expansión de fragmentos vecinos | 1 fragmento a cada lado |
| Intentos máximos de reparación por acción | 2 |
| Texto de enmascaramiento local | [Removed suspicious instruction from external tool result.] |
Los resultados se escriben en:
runs/openai_gpt-4o-mini-2024-07-18-reflective_audit/actguard/
El directorio runs/ es ignorado por Git.
Ejecutar las pruebas de regresión de ActGuard:
uv run --frozen pytest -q tests/test_agent_pipeline/test_reflective_audit.py
src/agentdojo/agent_pipeline/reflective_audit.py: implementación de ActGuardsrc/agentdojo/agent_pipeline/agent_pipeline.py: integración del pipelinesrc/agentdojo/scripts/benchmark.py: CLI del benchmarksrc/agentdojo/default_suites/: suites de evaluación y definiciones de tareastests/test_agent_pipeline/test_reflective_audit.py: pruebas de regresiónsrc/agentdojo/reflective_audit_trace.py: generación e inspección de trazasLos registros de ejecución, entornos locales, credenciales, borradores de artículos, salidas de análisis temporales y defensas de comparación se excluyen intencionalmente de esta versión.
Este proyecto se distribuye bajo la Licencia MIT. Incluye un
entorno de ejecución de benchmark derivado de AgentDojo; ver LICENSE para el aviso de copyright upstream retenido.