adk-mcp-toolbox-patterns は何をしますか?
ADK エージェントが MCP Toolbox 経由で PostgreSQL にクエリを実行するための3つのパターン — ダイレクトツール、スキルスコープツール、スキル駆動スクリプト実行。
概要
このリポジトリは、ADK エージェントを MCP Toolbox と統合し、PostgreSQL データベースと対話するための3つのアーキテクチャパターンを紹介します。各パターンは異なるレベルの抽象化と制御を提供し、開発者がユースケースに最適なアプローチを選択できるようにします。
パターン
1. ダイレクトツールパターン
エージェントは MCP Toolbox から直接 SQL 実行ツールを利用します。シンプルで透過的ですが、生の SQL をエージェントに公開します。
- 利点: 実装が簡単、遅延が最小限
- 欠点: エージェントが複雑なクエリを生成する可能性がある
2. スキルスコープツールパターン
SQL 実行は ADK スキル内にカプセル化されます。エージェントはスキルを通じてのみデータベースと対話し、抽象化レイヤーを提供します。
- 利点: アクセス制御の向上、スキル内でロジックをカプセル化可能
- 欠点: 追加の設定が必要
3. スキル駆動スクリプト実行パターン
エージェントはスキルを通じて事前定義されたスクリプトを実行します。これにより、SQL を完全に抽象化し、安全で予測可能な操作を提供します。
- 利点: 最高レベルのセキュリティと制御、SQL の知識が不要
- 欠点: 柔軟性が低く、事前定義されたスクリプトが必要
前提条件
- Python 3.10+
- ADK がインストールされていること
- MCP Toolbox の実行インスタンス
- PostgreSQL データベース
インストール
pip install -r requirements.txt
設定
環境変数を設定します:
DATABASE_URL=postgresql://user:password@host:port/dbname
TOOLBOX_URL=http://localhost:8080
実行
各パターンは個別に実行できます:
# ダイレクトツールパターン
python agents/direct_tools_agent.py
# スキルスコープツールパターン
python agents/skill_scoped_agent.py
# スキル駆動スクリプト実行パターン
python agents/skill_driven_agent.py
プロジェクト構造
.
├── agents/
│ ├── direct_tools_agent.py
│ ├── skill_scoped_agent.py
│ └── skill_driven_agent.py
├── skills/
│ ├── sql_skill/
│ │ ├── skill.yaml
│ │ └── agent.py
│ └── script_executor_skill/
│ ├── skill.yaml
│ └── agent.py
├── scripts/
│ ├── get_users.sql
│ ├── get_orders.sql
│ └── get_products.sql
├── requirements.txt
└── README.md
ライセンス
MIT