# ADK 2.0の便利だけど知られていない機能
🌍 エージェントのツール呼び出しを制御下に置いて、外部サービスなしでテストできたら便利だと思いませんか?
ADK 2.0の環境シミュレーション機能は、ツール呼び出しをインターセプトし、制御されたレスポンスに差し替えることで、外部依存なしにエージェントの振る舞いを検証できる仕組みです。
📌 タイトル:環境シミュレーション (Environment Simulation)
🔗 URL:
🧩 概要
環境シミュレーションは、エージェントが実行するツール呼び出しをインターセプトし、実際の外部サービスを呼ばずに制御されたレスポンスを返す機能です。3つのステップで構成されます。まずインジェクション設定でどのツール呼び出しを差し替えるか定義し、次にモック戦略でどのようなレスポンスを返すか決定し、最後にパススルーで差し替え対象外の呼び出しはそのまま実行します。コールバック方式(`before_tool_callback`)またはプラグインとして組み込めます。
🛠 使い方
インジェクション設定では、固定ペイロード、引数条件付き応答、HTTPエラー注入、確率的な失敗、人工的な遅延など、多彩なモックパターンを定義できます。
```python
from import (
InjectionConfig,
ToolSimulationConfig,
)
# 固定レスポンスの注入
ToolSimulationConfig(
tool_name="weather_api",
injection_configs=[
InjectionConfig(
injected_response={"temperature": 25, "condition": "sunny"}
)
],
)
# 条件付き応答(引数に基づく)
ToolSimulationConfig(
tool_name="search_api",
injection_configs=[
InjectionConfig(
match_args={"query": "ADK"},
injected_response={"results": ["ADK documentation"]},
)
],
)
```
モック戦略としてLLMベースの方式を選ぶと、ツールのスキーマに合致するリアルなレスポンスを自動生成し、状態の追跡も行えます。
🏗 本番システムへの組み込み方
・CIパイプラインで外部API呼び出しをすべてモックし、安定した自動テストを実現する
・確率的な失敗注入でエージェントのエラーハンドリングとリトライロジックを検証する
・人工的な遅延を設定して、タイムアウト処理が正しく機能するか確認する
・LLMベースのモック戦略を使い、スキーマ準拠のリアルなテストデータを自動生成する
💡 ユースケース
🔌 外部APIに依存しないエージェントの単体テストを構築する
💥 ネットワーク障害やHTTPエラーへのエージェントの耐障害性をテストする
⏱ 高遅延環境でのエージェントの振る舞いを検証する
🔄 複数のツール呼び出しを跨ぐ複雑なワークフローのステートフルなテストを行う
⚠️ 注意点
モック戦略でLLMベースの自動生成を使う場合、生成されるレスポンスは実際のAPIレスポンスと異なる場合があります。重要なテストでは固定ペイロードとの併用をお勧めします。また、パススルー設定を誤ると意図しない外部呼び出しが発生する可能性があるため、インジェクション対象の範囲を慎重に設計してください。
✨ 環境シミュレーションを活用すれば、外部サービスの状態に左右されない堅牢なテスト環境を構築できます。障害パターンの注入で、エージェントの信頼性を飛躍的に高めましょう。
#
ADK# #
AIAgent#