Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AgentDojo 再現・追試

論文: 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

詳細は次のドキュメントを参照。

CodexのLunaで1条件を実行する

ChatGPTでログイン済みのCodexを、localhost限定のOpenAI互換エンドポイントとして AgentDojoへ接続できる。OpenAI Platform APIキーは使用しない。

端末1でブリッジを起動する。

.venv/bin/python src/codex_luna_endpoint.py

端末2で1条件を実行する。

PYTHONPATH=test/agentdojo/src .venv/bin/python src/run_luna.py \
  --benchmark-version v1.2.3 \
  -s banking \
  -ut user_task_0 \
  -it injection_task_9 \
  --attack important_instructions \
  --force-rerun

ブリッジはCodex App Serverの実験的なdynamicToolsを使う。再現性のため、Codexと ChatGPTプラン、推論設定、ブリッジのバージョンを結果と一緒に記録すること。 イベントはruns/gpt-5.6-luna/endpoint-events.jsonl、停止・制約は runs/gpt-5.6-luna/prompt-injection-execution-log.mdへ保存される。

注意

  • 標準 CLI (agentdojo.scripts.benchmark) は Gemini を Vertex 経路で呼ぶため、 AI Studio の API キーでは動かない。本フォルダの run_gemini.py が API キー経路を提供する。
  • ベンチマーク実行は外部 API を呼ぶ=課金/クォータを消費する。段階的に回すこと。
  • LunaブリッジはPlatform APIクォータを使わないが、ChatGPT/Codexの利用枠を消費する。

About

プロンプトインジェクションの評価フレームワークの再現実験

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages