
Défense d'audit des actions avant exécution qui détecte et masque l'injection indirecte de prompts dans les agents LLM utilisant des outils, grâce à la récupération par plongement et au score de log-probabilité contrastif.
ActGuard est une défense de pré-exécution par audit d'actions contre l'injection indirecte de prompts dans les agents LLM utilisant des outils. Ce dépôt contient l'implémentation finale d'ActGuard et le runtime basé sur AgentDojo nécessaire pour l'évaluer.
La version publiée contient uniquement la configuration finale et complète d'ActGuard. Les composants internes utilisent encore l'identifiant reflective_audit pour la compatibilité avec le benchmark AgentDojo et les formats de trace.
meta-llama/Meta-Llama-3.1-8B-Instruct, ou à un
checkpoint local équivalentL'utilisation de uv est recommandée :
uv sync --frozen --extra actguard
Alternativement, installez dans un environnement Python activé :
python -m pip install -e '.[actguard]'
Depuis la racine du dépôt :
export OPENROUTER_API_KEY=...
uv run --frozen --extra actguard ./scripts/run_actguard.sh
Si le projet a été installé avec pip, exécutez :
export OPENROUTER_API_KEY=...
./scripts/run_actguard.sh
Le script évalue la suite workspace avec l'attaque
important_instructions. Il utilise OpenRouter pour l'agent principal et le
vérificateur, et des modèles locaux compatibles Hugging Face pour la récupération par embedding et
l'attribution contrastive par log-probabilité. Une authentification Hugging Face peut être
nécessaire avant que le checkpoint Llama restreint par défaut puisse être téléchargé.
Pour utiliser des checkpoints téléchargés, remplacez les valeurs de
--reflective-audit-embedding-model et
--reflective-audit-logprob-model dans scripts/run_actguard.sh par leurs chemins locaux. Utilisez uv run --frozen actguard-benchmark --help pour voir toutes les options du benchmark.
| Paramètre | Réglage |
|---|---|
| Modèle backend | openai/gpt-4o-mini-2024-07-18 via OpenRouter |
| Température du modèle backend | 0 |
| Longueur des segments | 80--180 caractères |
| Modèle d'embedding | sentence-transformers/all-MiniLM-L6-v2 |
| Segments récupérés | k = 3 |
| Modèle de log-probabilité contrastive | meta-llama/Meta-Llama-3.1-8B-Instruct |
| Seuil de log-probabilité | 0 |
| Seuil de regroupement des segments similaires | 0.9 |
| Contexte des résultats d'outils | Historique auditable complet |
| Modèle vérificateur | openai/gpt-5-mini via OpenRouter |
| Température du vérificateur | 0 |
| Taille de l'ensemble d'outils suivants prédits | 1--3 |
| Expansion des segments voisins | 1 segment de chaque côté |
| Nombre maximal de tentatives de réparation par action | 2 |
| Texte de masquage local | [Removed suspicious instruction from external tool result.] |
Les résultats sont écrits ci-dessous :
runs/openai_gpt-4o-mini-2024-07-18-reflective_audit/actguard/
Le répertoire runs/ est ignoré par Git.
Exécutez les tests de régression d'ActGuard :
uv run --frozen pytest -q tests/test_agent_pipeline/test_reflective_audit.py
src/agentdojo/agent_pipeline/reflective_audit.py : implémentation d'ActGuardsrc/agentdojo/agent_pipeline/agent_pipeline.py : intégration du pipelinesrc/agentdojo/scripts/benchmark.py : CLI du benchmarksrc/agentdojo/default_suites/ : suites d'évaluation et définitions des tâchestests/test_agent_pipeline/test_reflective_audit.py : tests de régressionsrc/agentdojo/reflective_audit_trace.py : génération et inspection des tracesLes journaux d'exécution, les environnements locaux, les identifiants, les brouillons d'articles, les sorties d'analyse temporaires et les défenses de comparaison sont intentionnellement exclus de cette version.
Ce projet est distribué sous la licence MIT. Il inclut un runtime de benchmark dérivé d'AgentDojo ; voir LICENSE pour l'avis de copyright amont conservé.