# ADKの便利で実践的な使い方
🧪 エージェントのプロンプトを変更したら、品質が下がっていないか確認していますか?ADKのEvaluation機能を使えば、テストファイル方式とデータセット方式の2つのアプローチでエージェントの品質を体系的に検証できます。CIに組み込めば、プロンプト変更の回帰テストも自動化できます。
📌 タイトル:Evaluation 概要
🔗 URL:
🧩 概要
ADKは、エージェントのパフォーマンスを評価するための2つの主要な方法を提供します。**テストファイル方式**は`.test.json`ファイルに単一セッション(複数ターン可)を記述し、ユニットテストのように高速に反復できます。**Evalset方式**は複数セッション・多数のターンを含む統合テスト向けです。一部の評価基準(レスポンス品質、安全性、マルチターン品質など)はVertex Gen AI Evaluation Service APIを必要とします。評価基準として`tool_trajectory_avg_score`、`response_match_score`、`hallucinations_v1`、`safety_v1`などの組み込みメトリクスが利用可能です。
🛠 使い方
テストファイルには、ユーザークエリ、期待されるツール使用軌跡、期待されるレスポンスを記述します。
評価の実行方法は3つあります。
**Web UI**での対話的な評価:
```bash
adk web path/to/agents_dir
```
**pytest**との統合:
`AgentEvaluator.evaluate()` を `await` で呼び出し、`agent_module` に評価対象のエージェントモジュール名(例: `"home_automation_agent"`)、`eval_dataset_file_path_or_dir` にテストファイルのパス(例: `"tests/integration/fixture/test.test.json"`)を指定します。
**CLI**での実行:
```bash
adk eval
--config_file_path=
```
評価基準のしきい値は`test_config.json`で設定します。
```json
{
"criteria": {
"tool_trajectory_avg_score": 1.0,
"response_match_score": 0.8
}
}
```
デフォルトでは、ツール軌跡は100%一致を要求し、レスポンスマッチングは80%の類似度を許容します。
🏗 実践的な使い方
**エージェント更新時の回帰テスト**: プロンプトやツール定義を変更するたびに、既存のテストファイルを使って回帰テストを実行します。`tool_trajectory_avg_score`でツール選択の正確性を、`response_match_score`でレスポンスの品質を定量的に検証できます。品質低下を早期に検出できるため、安心してプロンプトの改善を繰り返せます。
**テストファイル方式で高速イテレーション**: 開発中は`.test.json`ファイルを使ったユニットテスト的なアプローチが最適です。単一セッションの期待値を記述し、pytestで自動実行すれば、コード変更のたびに数秒で品質を確認できます。エッジケースごとにテストファイルを追加していくことで、テストカバレッジを段階的に拡充できます。
**データセット方式でバッチ評価**: 本番に近い複雑なシナリオは、Evalset方式で多数のセッションをまとめて評価します。マルチターンの会話フローや、異なるユーザーパターンを網羅的にテストでき、統合テストとして機能します。
**CIパイプラインへの統合**: `adk eval`コマンドをCIに組み込めば、プロンプト変更のプルリクエストごとに自動で品質チェックが実行されます。しきい値を下回った場合はCIを失敗させることで、品質低下したプロンプトのマージを防げます。
💡 ユースケース
🔄 プロンプト変更時の回帰テスト自動化
⚡ テストファイル方式での高速な開発イテレーション
📊 データセット方式での網羅的なバッチ評価
🔗 CI/CDパイプラインへの品質ゲート統合
⚠️ 注意点
- 一部の評価基準(レスポンス品質、安全性、マルチターン品質など)はVertex Gen AI Evaluation Service API(有料のGoogleサービス)が必要です。
- テストファイルのしきい値は厳しすぎると偽陰性が増え、緩すぎると品質低下を見逃します。初期値から段階的に調整してください。
- LLMベースの評価基準(`hallucinations_v1`など)はジャッジモデルの判断にばらつきがあるため、`num_samples`で複数回サンプリングすることを推奨します。
✨ ADKのEvaluation機能を活用すれば、エージェントの品質管理を「感覚」から「定量的な基準」に変えられます。まずはテストファイル方式で始めて、CI統合へと進めてみてください!
#ADK# #AIAgent#