# ADKの便利で実践的な使い方
📜 OpenAPI/Swaggerの仕様書があれば、それだけでAPIをツール化できる — ADKのOpenAPI Toolsは、既存のREST APIを最小労力でエージェントに統合します。
📌 タイトル:OpenAPI Tools — OpenAPI仕様からの自動ツール生成
🔗 URL:
🧩 概要
ADKのOpenAPIToolsetは、OpenAPI(Swagger)仕様書からRestApiToolを自動生成します。各エンドポイントがそのままエージェントのツールになり、入力バリデーションも自動的に適用されます。`auth_scheme`と`auth_credential`を設定すれば、生成されたすべてのツールに認証が自動適用されるため、個別のツールごとに認証コードを書く必要がありません。
🛠 使い方
OpenAPI仕様からツールを自動生成する例です。
` から `OpenAPIToolset` を、`google.adk.auth` から `APIKeyAuth` をインポートします。`OpenAPIToolset(spec_url="", auth_scheme=APIKeyAuth(header_name="X-API-Key"), auth_credential="your-api-key-here")` のように、OpenAPI仕様のURLと認証設定を渡してツールセットを作成します。認証は全ツールに自動適用されます。作成した `toolset` を `Agent` の `tools` リストに渡すだけで、各エンドポイントがエージェントのツールとして利用可能になります。
ローカルのOpenAPI仕様ファイルを使う場合:
ローカルのOpenAPI仕様ファイルを使う場合は、` でYAMLファイルを読み込み、`OpenAPIToolset(spec_dict=spec, base_url="")` のように `spec_dict` パラメータに辞書として渡し、`base_url` でAPIのベースURLを指定します。
🏗 実践的な使い方
**既存APIの即座の統合**: 社内のマイクロサービスがOpenAPI仕様を公開していれば、コードを書くことなくエージェントのツールとして利用できます。API仕様の`description`フィールドがツールの説明として使われるため、仕様書の品質がそのままエージェントの精度に影響します。
複数のAPIを統合するには、ユーザーサービス用の `OpenAPIToolset(spec_url="https://user-service.internal/openapi.json", auth_scheme=APIKeyAuth(header_name="Authorization"), auth_credential="Bearer token123")` と注文サービス用の `OpenAPIToolset` をそれぞれ作成し、`Agent` の `tools` リストに `tools=[user_api, order_api]` として両方を渡します。各ツールセットに異なる認証情報を設定できるため、サービスごとのアクセス制御が可能です。
**入力バリデーションの活用**: OpenAPI仕様のスキーマ定義(required、type、enum等)に基づいて入力が自動バリデーションされるため、不正なAPI呼び出しを防げます。
**段階的な統合**: まずは読み取り専用のGETエンドポイントだけをツール化し、動作を確認してからPOST/PUT/DELETEを追加する段階的なアプローチが安全です。
💡 ユースケース
🏢 社内マイクロサービスのエージェント統合
🛒 ECサイトのAPI(商品検索、注文管理)のツール化
📊 データ分析APIの統合による自然言語クエリ
🔗 サードパーティSaaS APIの統合
⚠️ 注意点
- OpenAPI仕様の`description`が不十分だと、LLMが適切なツールを選択できません。仕様書の品質を事前に確認してください。
- 認証情報(`auth_credential`)はハードコードせず、環境変数やSecret Managerから取得してください。
- エンドポイントが多すぎると、LLMのツール選択が不正確になります。必要なエンドポイントに絞ってToolsetを構成しましょう。
✨ OpenAPI Toolsを使えば、API仕様書がそのままエージェントの能力になります。既存のAPIドキュメントを最大限に活かしましょう!
#
ADK# #
AIAgent#