Google Cloud ツール¶
Google Cloudツールを使用すると、エージェントをGoogle Cloudの製品やサービスに簡単に接続できます。わずか数行のコードでこれらのツールを使用して、エージェントを以下に接続できます。
- 開発者がApigeeでホストする任意のカスタムAPI。
- Salesforce、Workday、SAPなどのエンタープライズシステムへの100以上の事前構築済みコネクタ。
- Application Integrationを使用して構築された自動化ワークフロー。
- データベース向けMCP Toolboxを使用して、Spanner、AlloyDB、Postgresなどのデータベース。
Apigee API Hub ツール¶
ApiHubToolsetを使用すると、Apigee API Hubからドキュメント化された任意のAPIを、わずか数行のコードでツールに変換できます。このセクションでは、APIへの安全な接続のための認証設定を含む、ステップバイステップの手順を説明します。
前提条件
- ADKをインストールする
- Google Cloud CLIをインストールする。
- ドキュメント化された(つまりOpenAPI仕様を持つ)APIを含む Apigee API Hub インスタンス
- プロジェクト構造を設定し、必要なファイルを作成する
API Hubツールセットの作成¶
注:このチュートリアルにはエージェントの作成が含まれています。すでにエージェントをお持ちの場合は、これらの手順の一部のみを従う必要があります。
-
アクセストークンを取得し、
APIHubToolset
がAPI Hub APIから仕様を取得できるようにします。 ターミナルで次のコマンドを実行します。 -
使用するアカウントに必要な権限があることを確認します。 事前定義されたロール
roles/apihub.viewer
を使用するか、以下の権限を割り当てることができます。- apihub.specs.get (必須)
- apihub.apis.get (任意)
- apihub.apis.list (任意)
- apihub.versions.get (任意)
- apihub.versions.list (任意)
- apihub.specs.list (任意)
-
APIHubToolset
を使用してツールを作成します。以下をtools.py
に追加します。APIが認証を必要とする場合は、ツールの認証を設定する必要があります。 以下のコードサンプルは、APIキーを設定する方法を示しています。ADKはトークンベースの認証(APIキー、ベアラートークン)、サービスアカウント、およびOpenID Connectをサポートしています。近日中に、さまざまなOAuth2フローのサポートを追加する予定です。
from google.adk.tools.openapi_tool.auth.auth_helpers import token_to_scheme_credential from google.adk.tools.apihub_tool.apihub_toolset import APIHubToolset # APIの認証を提供します。APIが認証を必要としない場合は不要です。 auth_scheme, auth_credential = token_to_scheme_credential( "apikey", "query", "apikey", apikey_credential_str ) sample_toolset_with_auth = APIHubToolset( name="apihub-sample-tool", description="サンプルツール", access_token="...", # ステップ1で生成したアクセストークンをコピー apihub_resource_name="...", # API Hubのリソース名 auth_scheme=auth_scheme, auth_credential=auth_credential, )
本番環境へのデプロイでは、アクセストークンの代わりにサービスアカウントを使用することをお勧めします。上記のコードスニペットでは、トークンの代わりに
service_account_json=service_account_cred_json_str
を使用し、サービスアカウントの認証情報を提供してください。apihub_resource_name
については、APIに使用されているOpenAPI仕様の特定のIDがわかっている場合は、`projects/my-project-id/locations/us-west1/apis/my-api-id/versions/version-id/specs/spec-id`
を使用します。 ツールセットがAPIから利用可能な最初の仕様を自動的に取得するようにしたい場合は、`projects/my-project-id/locations/us-west1/apis/my-api-id`
を使用します。 -
エージェントファイルAgent.pyを作成し、作成したツールをエージェントの定義に追加します。
-
__init__.py
を設定してエージェントを公開します。 -
Google ADK Web UIを起動し、エージェントを試します。
次に、http://localhost:8000にアクセスして、Web UIからエージェントを試します。
Application Integration ツール¶
ApplicationIntegrationToolsetを使用すると、Integration Connectorの100以上の事前構築済みコネクタ(Salesforce, ServiceNow, JIRA, SAPなど)を使用して、エージェントをエンタープライズアプリケーションにシームレスかつ安全に、管理された方法で接続できます。オンプレミスとSaaSの両方のアプリケーションをサポートしています。さらに、Application IntegrationのワークフローをADKエージェントにツールとして提供することで、既存のApplication Integrationプロセス自動化をエージェントワークフローに変換できます。
前提条件
- ADKをインストールする
- エージェントで使用したい既存の Application Integration ワークフローまたは Integrations Connector 接続
- デフォルトの認証情報でツールを使用するには、Google Cloud CLIをインストールしておく必要があります。 インストールガイドを参照してください。
実行:
gcloud config set project <project-id>
gcloud auth application-default login
gcloud auth application-default set-quota-project <project-id>
-
プロジェクト構造を設定し、必要なファイルを作成します。
エージェントを実行するときは、project_root_folder
でadk web
を実行してください。
Integration Connectorsの使用¶
Integration Connectorsを使用して、エージェントをエンタープライズアプリケーションに接続します。
前提条件
- Integration Connectorsからコネクタを使用するには、接続と同じリージョンで、「QUICK SETUP」ボタンをクリックしてApplication Integrationをプロビジョニングする必要があります。
-
テンプレートライブラリからConnection Toolテンプレートに移動し、「USE TEMPLATE」ボタンをクリックします。
-
Integration NameにExecuteConnectionと入力し(この統合名のみを使用することが必須です)、接続リージョンと同じリージョンを選択します。「CREATE」をクリックします。
-
Application Integrationエディタの「PUBLISH」ボタンを使用して統合を公開します。
手順:
-
tools.py
ファイル内にApplicationIntegrationToolset
を使用してツールを作成します。from google.adk.tools.application_integration_tool.application_integration_toolset import ApplicationIntegrationToolset connector_tool = ApplicationIntegrationToolset( project="test-project", # TODO: 接続のGCPプロジェクトに置き換えてください location="us-central1", #TODO: 接続のロケーションに置き換えてください connection="test-connection", #TODO: 接続名に置き換えてください entity_operations={"Entity_One": ["LIST","CREATE"], "Entity_Two": []},#空のリストはエンティティ上のすべての操作がサポートされていることを意味します。 actions=["action1"], #TODO: アクションに置き換えてください service_account_credentials='{...}', # 任意。サービスアカウントキーの文字列化されたJSON tool_name_prefix="tool_prefix2", tool_instructions="..." )
注: - サービスアカウントキーを生成し、サービスアカウントに適切なApplication IntegrationとIntegration ConnectorのIAMロールを付与することで、デフォルトの認証情報の代わりに使用するサービスアカウントを提供できます。 - 接続でサポートされているエンティティとアクションのリストを見つけるには、コネクタAPIを使用します: listActions または listEntityTypes
ApplicationIntegrationToolset
は、Integration Connectors向けの動的なOAuth2認証のためにauth_scheme
とauth_credential
の提供もサポートするようになりました。これを使用するには、tools.py
ファイル内に次のようなツールを作成します。from google.adk.tools.application_integration_tool.application_integration_toolset import ApplicationIntegrationToolset from google.adk.tools.openapi_tool.auth.auth_helpers import dict_to_auth_scheme from google.adk.auth import AuthCredential from google.adk.auth import AuthCredentialTypes from google.adk.auth import OAuth2Auth oauth2_data_google_cloud = { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://accounts.google.com/o/oauth2/auth", "tokenUrl": "https://oauth2.googleapis.com/token", "scopes": { "https://www.googleapis.com/auth/cloud-platform": ( "Google Cloud Platformサービス全体のデータを表示および管理します" ), "https://www.googleapis.com/auth/calendar.readonly": "カレンダーを表示します" }, } }, } oauth_scheme = dict_to_auth_scheme(oauth2_data_google_cloud) auth_credential = AuthCredential( auth_type=AuthCredentialTypes.OAUTH2, oauth2=OAuth2Auth( client_id="...", #TODO: client_idに置き換えてください client_secret="...", #TODO: client_secretに置き換えてください ), ) connector_tool = ApplicationIntegrationToolset( project="test-project", # TODO: 接続のGCPプロジェクトに置き換えてください location="us-central1", #TODO: 接続のロケーションに置き換えてください connection="test-connection", #TODO: 接続名に置き換えてください entity_operations={"Entity_One": ["LIST","CREATE"], "Entity_Two": []},#空のリストはエンティティ上のすべての操作がサポートされていることを意味します。 actions=["GET_calendars/%7BcalendarId%7D/events"], #TODO: アクションに置き換えてください。これはイベントを一覧表示するためのものです。 service_account_credentials='{...}', # 任意。サービスアカウントキーの文字列化されたJSON tool_name_prefix="tool_prefix2", tool_instructions="...", auth_scheme=oauth_scheme, auth_credential=auth_credential )
-
ツールをエージェントに追加します。
agent.py
ファイルを更新します。 -
__init__.py
を設定してエージェントを公開します。 -
Google ADK Web UIを起動し、エージェントを試します。
次に、http://localhost:8000にアクセスし、 my_agentエージェント(エージェントフォルダ名と同じ)を選択します。
App Integrationワークフローの使用¶
既存の Application Integration ワークフローをエージェントのツールとして使用するか、新しいものを作成します。
手順:
-
tools.py
ファイル内にApplicationIntegrationToolset
を使用してツールを作成します。integration_tool = ApplicationIntegrationToolset( project="test-project", # TODO: 接続のGCPプロジェクトに置き換えてください location="us-central1", #TODO: 接続のロケーションに置き換えてください integration="test-integration", #TODO: 統合名に置き換えてください triggers=["api_trigger/test_trigger"],#TODO: トリガーIDに置き換えてください。空のリストは統合内のすべてのAPIトリガーが考慮されることを意味します。 service_account_credentials='{...}', #任意。サービスアカウントキーの文字列化されたJSON tool_name_prefix="tool_prefix1", tool_instructions="..." )
注:サービスアカウントキーを生成し、サービスアカウントに適切なApplication IntegrationとIntegration ConnectorのIAMロールを付与することで、デフォルトの認証情報の代わりに使用するサービスアカウントを提供できます。
-
ツールをエージェントに追加します。
agent.py
ファイルを更新します。 -
__init__.py
を設定してエージェントを公開します。 -
Google ADK Web UIを起動し、エージェントを試します。
次に、http://localhost:8000にアクセスし、 my_agentエージェント(エージェントフォルダ名と同じ)を選択します。
データベース向けToolboxツール¶
MCP Toolbox for Databasesは、 データベース向けのオープンソースMCPサーバーです。エンタープライズグレードと 本番品質を念頭に置いて設計されています。接続プーリング、 認証などの複雑さを処理することで、ツールの開発をより簡単に、より速く、 より安全に行うことができます。
GoogleのAgent Development Kit (ADK)は、Toolboxを組み込みでサポートしています。 Toolboxの利用開始や 設定 に関する詳細については、 ドキュメントを参照してください。
設定とデプロイ¶
Toolboxは、自分でデプロイして管理するオープンソースサーバーです。 デプロイと設定に関する詳細な手順については、公式のToolboxドキュメントを参照してください。
クライアントSDKのインストール¶
ADKは、Toolboxを使用するためにtoolbox-core
Pythonパッケージに依存しています。
始める前にパッケージをインストールしてください。
Toolboxツールの読み込み¶
Toolboxサーバーが設定され、稼働したら、 ADKを使用してサーバーからツールを読み込むことができます。
from google.adk.agents import Agent
from toolbox_core import ToolboxSyncClient
toolbox = ToolboxSyncClient("https://127.0.0.1:5000")
# 特定のツールセットを読み込む
tools = toolbox.load_toolset('my-toolset-name'),
# 単一のツールを読み込む
tools = toolbox.load_tool('my-tool-name'),
root_agent = Agent(
...,
tools=tools # Agentにツールのリストを提供する
)
高度なToolbox機能¶
Toolboxには、データベース向けのGen AIツール開発を容易にするさまざまな機能があります。 詳細については、以下の機能についてお読みください。
- 認証済みパラメータ: ツールの入力をOIDCトークンの値に自動的にバインドし、データ漏洩の可能性なしに機密性の高いクエリを簡単に実行できます。
- 認可された呼び出し: ユーザーのAuthトークンに基づいてツールの使用を制限します。
- OpenTelemetry: OpenTelemetryを使用してToolboxからメトリクスとトレースを取得します。