メインコンテンツまでスキップ

AI エージェント ツールを外部サービスに接続する

備考

プレビュー

この機能は パブリック プレビュー段階です。

AIエージェントツールをSlack、Googleカレンダー、またはHTTPリクエストを使用してAPIを使用する任意のサービスなどの外部アプリケーションに接続する方法を学びます。エージェントは、外部に接続されたツールを使用して、タスクの自動化、メッセージの送信、およびサードパーティプラットフォームからのデータの取得を行うことができます。

必要条件

  • 外部アプリケーション用の Unity Catalog HTTP 接続を作成します。Unity Catalog接続は、安全で統制された認証情報管理を提供し、複数の標準規格をサポートします。 OAuth 2.0 ユーザー対マシン認証およびマシン対マシン認証を含む認証方法。

外部MCPサーバーのツールを使用する

接続先の外部サービスで MCP サーバーが利用できる場合、エージェントを接続する最も簡単な方法は外部 MCP サーバーを使用することです。このアプローチにより、次のことが実現されます。

  • 自動ツール検出 : MCP サーバーは、標準APIs使用して利用可能なすべてのツールを公開します。
  • 簡素化された統合 : 標準の SDK を使用してツールを接続および実行します。
  • メンテナンスの軽減 : ツール定義は外部の MCP サーバーによって集中管理されます。

詳細な手順については、 「外部 MCP サーバーの使用」を参照してください。

エージェント コードでツールを作成する

Python を使用して外部サービスに HTTP リクエストを送信するには、databricks-sdk ライブラリの http_request 関数を使用します。この関数は、Unity Catalog 接続を使用して外部サービスに HTTP 要求を送信し、認証を行います。

必要な権限: 接続オブジェクトに対する USE CONNECTION

次の例では、エージェントコード内から外部 HTTP リクエストを作成します。

Python
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod

WorkspaceClient().serving_endpoints.http_request(
conn="connection_name",
method=ExternalFunctionRequestHttpMethod.POST,
path="/api/v1/resource",
json={"key": "value"},
headers={"extra_header_key": "extra_header_value"},
)
  • conn: ホスト、ポート、base_path、およびアクセス資格情報を指定する接続オブジェクト。
  • method: 呼び出しを行うために使用される HTTP 要求メソッド。 例: GETPOSTPUTDELETE
  • path: サービス・リソースを呼び出す base_path の後に連結するパス。
  • json: リクエストと共に送信する JSON 本文。
  • headers: リクエストヘッダーを指定するマップ。

Unity Catalog 関数ツールを作成する

注記

http_requestを使用した SQL アクセスは、ユーザーからマシンごとの接続タイプではブロックされます。代わりに Python Databricks SDK を使用してください。

HTTP 接続を作成し、正しく動作することを確認したら、接続を使用する Unity Catalog 関数を作成します。次の例では、エージェントが Slack にメッセージを投稿するために使用できる Unity Catalog 関数ツールを作成します。

SQL
CREATE OR REPLACE FUNCTION main.default.slack_post_message(
text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
conn => 'test_sql_slack',
method => 'POST',
path => '/api/chat.postMessage',
json => to_json(named_struct(
'channel', "C032G2DAH3",
'text', text
))
)).text

CREATE FUNCTION (SQL と Python)を参照してください。

ノートブックの例

エージェントを Slack に接続する

AI エージェントを Slack に接続する」を参照してください。

外部接続ツール

次のノートブックは、Slack、OpenAI、Azure AI 検索に接続する AI エージェント ツールの作成を示しています。

Slackメッセージングエージェントツール

Open notebook in new tab

Microsoft Graph API エージェント ツール

Open notebook in new tab

Azure AI Search エージェント ツール

Open notebook in new tab

制限事項