# ADKの便利で実践的な使い方
📄 エージェントの定義をコードではなくYAMLファイルで行えたら、プロンプトの変更やモデルの切り替えが再デプロイなしでできますよね。ADKのAgent Configなら、宣言的なエージェント定義と環境ごとの設定切り替えが実現できます!
📌 タイトル:Agent Config — YAML宣言によるコードレスエージェント定義
🔗 URL:
🧩 概要
Agent Configは、ADKワークフローをコードなしでYAMLファイルとして定義できる機能です。`name`、`model`、`description`、`instruction`といった基本プロパティに加え、`tools`でのツール定義や`sub_agents`でのサブエージェント参照もYAMLで記述できます。`adk create --type=config`でプロジェクトを生成し、`adk web`、`adk run`、`adk api_server`で実行可能です。Pythonからは`config_agent_utils.from_config()`でプログラマティックに読み込むこともできます。
🛠 使い方
基本的なAgent Config YAMLの構成です。
```yaml
# root_agent.yaml
name: assistant_agent
model: gemini-flash-latest
description: ユーザーの質問に答えるヘルパーエージェント
instruction: |
あなたはユーザーの様々な質問に答えるエージェントです。
丁寧で正確な回答を心がけてください。
tools:
- google_search
sub_agents:
- config_path: specialist_agent.yaml
```
プロジェクトの作成と実行は以下のコマンドで行います。
```bash
# プロジェクト作成
adk create --type=config my_agent
# 実行方法
adk web # Webインターフェース
adk run # ターミナル実行
adk api_server # APIサーバーモード
```
Pythonから読み込む場合は以下のとおりです。
`google.adk.agents.config_agent_utils` の `from_config()` メソッドにYAMLファイルのパス(例: `"my_agent/root_agent.yaml"`)を渡して、エージェントオブジェクトをプログラマティックに読み込みます。
🏗 実践的な使い方
**環境別の設定切り替え**: dev/staging/prodごとに異なるYAMLファイルを用意し、環境変数でどのファイルを読み込むかを制御します。
```yaml
# config/dev/root_agent.yaml
name: assistant_agent
model: gemini-flash-latest
instruction: |
[DEV] デバッグ情報を含めて回答してください。
# config/prod/root_agent.yaml
name: assistant_agent
model: gemini-2.5-pro
instruction: |
ユーザーの質問に正確かつ簡潔に回答してください。
```
`os.getenv("ENVIRONMENT", "dev")` で環境名を取得し、`config_agent_utils.from_config(f"config/{env}/root_agent.yaml")` で環境に対応するYAMLファイルを動的に読み込みます。
**プロンプトバージョニング**: YAMLファイルをGitで管理し、プロンプトの変更履歴を追跡します。コードの変更なしにインストラクションを更新でき、ロールバックも容易です。
**A/Bテスト**: 異なるインストラクションやモデルを持つ複数のYAMLファイルを用意し、ランタイムで切り替えてパフォーマンスを比較します。
`get_ab_variant(user_id)` でユーザーごとのA/Bバリアント(`"a"` または `"b"`)を取得し、`config_agent_utils.from_config(f"config/variant_{variant}.yaml")` で対応するYAMLファイルを読み込むことで、ランタイムでのA/Bテストを実現します。
💡 ユースケース
🔄 コード変更なしのプロンプト・モデル切り替え(再デプロイ不要)
🌍 dev/staging/prod環境ごとの設定管理
📊 インストラクションのA/Bテスト
📝 プロンプト変更履歴のGit管理とロールバック
🧩 非エンジニアによるエージェント設定の更新
⚠️ 注意点
- 現在はGeminiモデルのみサポートされています。他のモデルプロバイダーは今後のサポートを待つ必要があります。
- カスタムコードを含むツールの利用はPythonとJavaに限定されています。
- `LangGraphAgent`や`A2aAgent`はAgent Configではまだサポートされていません。
- `.env`ファイルでAPIキーやプロジェクト設定を管理しますが、シークレットのコミットには注意してください。
✨ Agent Configは、エージェントの定義をコードから設定ファイルに分離することで、非エンジニアでも安全にプロンプトやモデルを変更でき、環境ごとの切り替えやA/Bテストを容易にします。運用フェーズでの柔軟性を高めたい場面でぜひ活用してください!
#
ADK# #
AIAgent#