論文: AgentDojo: A Dynamic Environment to Evaluate Attacks and Defenses for LLM Agents (Debenedetti et al., ETH Zurich, arXiv:2406.13352) 公式リポジトリ: https://github.com/ethz-spylab/agentdojo
LLM エージェントが外部ツール出力経由のプロンプトインジェクションで乗っ取られるか (ツール連鎖の危険性)を、utility と ASR の2軸で評価する。
agentdojo/
├── .venv/ # 専用 venv (Python 3.13, agentdojo 0.1.35)
├── .env # API キー (.gitignore 済み。コミット禁止)
├── .env.example # キーのテンプレート
├── src/
│ └── run_gemini.py # Gemini(AI Studio API キー経路)で回すカスタムランナー
├── docs/
│ ├── setup.md # 環境構築とAgentDojoの用語
│ ├── api-key.md # APIキーとGemini固有の設定
│ ├── execution.md # 実行方法・注意点・過去の結果
│ └── run-gemini.md # カスタムGeminiランナーの役割と機能
├── configs/ # 実験設定
└── runs/ # 実行ログ (.gitignore 済み)
cd reimplementation/agentdojo
# API キー設定 (未設定の場合)
cp .env.example .env # 編集して GOOGLE_API_KEY を入れる
# 配線確認だけ (LLM を呼ばない = クォータ非消費)
.venv/bin/python src/run_gemini.py --dry-run -s banking
# 攻撃なしで utility を1件
.venv/bin/python src/run_gemini.py -s workspace -ut user_task_0
# 攻撃ありで ASR を1件
.venv/bin/python src/run_gemini.py -s banking -ut user_task_0 \
-it injection_task_0 --attack important_instructions詳細は次のドキュメントを参照。
- 標準 CLI (
agentdojo.scripts.benchmark) は Gemini を Vertex 経路で呼ぶため、 AI Studio の API キーでは動かない。本フォルダのrun_gemini.pyが API キー経路を提供する。 - ベンチマーク実行は外部 API を呼ぶ=課金/クォータを消費する。段階的に回すこと。