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

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

備考

プレビュー

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

AIエージェントをSlack、Googleカレンダー、またはAPIを備えたあらゆるサービスなどの外部アプリケーションに接続します。Databricks 、外部サービスにMCPサーバーがあるかどうか、ユーザーごとの認証が必要かどうか、またはエージェントコードから直接APIsを呼び出すことを希望するかどうかに応じて、いくつかの方法を提供しています。 すべてのアプローチはUnity Catalog HTTP接続を利用して、認証情報を安全に管理し、外部サービスへのアクセスを制御します。

アプローチ

推奨される使用例

外部MCPサーバー

MCPサーバーを公開するサービスには、この方法を使用してください。自動ツール検出機能を提供し、標準的なSDKと連携します。

マネージドOAuth

GoogleドライブやSharePointとの連携には、この方法を使用してください。DatabricksがOAuth認証情報を管理するため、アプリの登録は不要です。

UC接続プロキシ

この方法を使用すると、外部サービスのクライアントSDKを使用して、エージェントコードから直接REST API呼び出しを行うことができます。

UC機能ツール

http_request()関数をラップする SQL ベースのツール定義には、この方法を使用してください。

必要条件

  • 外部アプリケーションへのUnity Catalog HTTP接続。 Unity Catalog接続は、安全で統制された認証情報管理を提供し、 OAuth 2.0によるユーザー対マシン認証やマシン対マシン認証など、複数の認証方法を可能にします。

外部MCPサーバー

外部サービスにMCPサーバーが利用可能な場合、Databricksは外部MCPサーバー経由での接続を推奨します。MCPサーバーは、ツールの自動検出、統合の簡素化、およびユーザーごとの認証機能を提供します。インストール方法、プログラムによる使用方法、認証の詳細については、「外部MCPサーバーの使用」を参照してください。

エージェントに外部MCPサーバーを追加する

Unity Catalog接続として外部MCPサーバーを登録した後、管理対象MCP URLを使用してエージェントを接続します: https://<workspace-hostname>/api/2.0/mcp/external/{connection_name}<connection-name> 、 Unity Catalog接続の名前に置き換えてください。

Python
from agents import Agent, Runner
from databricks.sdk import WorkspaceClient
from databricks_openai.agents import McpServer

workspace_client = WorkspaceClient()
host = workspace_client.config.host

async with McpServer(
url=f"{host}/api/2.0/mcp/external/<connection-name>",
name="external-service",
workspace_client=workspace_client,
) as external_server:
agent = Agent(
name="Connected agent",
instructions="You are a helpful assistant with access to external services.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[external_server],
)
result = await Runner.run(agent, "Send a Slack message to the team about the deployment")
print(result.final_output)

アプリにdatabricks.ymlのUnity Catalog接続へのアクセス権限を付与します。

YAML
resources:
apps:
my_agent_app:
resources:
- name: 'my_connection'
uc_securable:
securable_full_name: '<connection-name>'
securable_type: 'CONNECTION'
permission: 'USE_CONNECTION'

マネージドOAuth

Databricksは、一部のAPIツールプロバイダー向けにマネージドOAuthフローを提供しています。独自のOAuthアプリを登録したり、資格情報を管理したりする必要はありません。 Databricksは、開発およびテストにはマネージドOAuthを推奨しています。本番運用のユースケースでカスタムOAuth認証情報の生成が必要な場合、詳細についてはプロバイダーのドキュメントを参照してください。

以下の連携機能は、バックエンドに安全に保存されているDatabricksが管理するOAuth認証情報を使用します。

プロバイダー

構成に関する注意事項

サポートされているスコープ

説明

Google Drive API

なし

https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access

Googleドライブファイルへの読み取り専用アクセス。

SharePoint API

なし

https://graph.microsoft.com/Sites.Read.All offline_access openid profile

SharePointサイトへの読み取り専用アクセス。

マネージドOAuthを設定するには、 OAuthユーザーからマシンへのユーザー 単位の認証タイプでHTTP接続を作成し、 OAuthプロバイダーの ドロップダウンメニューからプロバイダーを選択します。詳細なステップについては、 「外部 MCP サーバーのインストール」を参照してください。

各ユーザーは、初回利用時にプロバイダーへの認証を求められます。

必要に応じて、マネージドOAuthで使用される以下のリダイレクトURIを許可リストに追加してください。

クラウド

リダイレクトURI

AWS

https://oregon.cloud.databricks.com/api/2.0/http/oauth/redirect

Azure

https://westus.azuredatabricks.net/api/2.0/http/oauth/redirect

GCP

https://us-central1.gcp.databricks.com/api/2.0/http/oauth/redirect

UC接続プロキシエンドポイント

Unity Catalog接続プロキシエンドポイントを外部サービスのクライアントSDKと組み合わせて使用することで、エージェントコードからREST APIs直接呼び出すことができます。 SDKのベース URL をプロキシ エンドポイントに指定し、 DatabricksをAPIキーとして使用します。 Databricksリクエストを認証し、 Unity Catalog接続から外部サービスの認証情報を自動的に挿入します。 あなたのコードは、外部サービスのトークンを直接処理していません。

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

DatabricksOpenAI使用すると、Unity Catalog の接続プロキシ経由で外部 OpenAI への呼び出しをルーティングできます。まず、 Databricksシークレットとして保存されているOpenAI APIキーを使用して、 Unity Catalog HTTP接続を作成します。

SQL
CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
host 'https://api.openai.com',
base_path '/v1',
bearer_token secret ('<secret-scope>', '<secret-key>')
);

次に、 databricks-openaiパッケージをインストールし、エージェントコード内でプロキシ URL とワークスペース クライアントを使用します。

Bash
pip install databricks-openai
Python
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = DatabricksOpenAI(
workspace_client=w,
base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)

response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

HTTP接続を備えたUC機能ツール

注記

Databricksは、新規統合にはMCPサーバーまたはUC接続プロキシの使用を推奨しています。http_requestを含む UC 機能ツールは引き続きサポートされますが、推奨される方法ではなくなりました。

Unity Catalog関数を作成してhttp_request()をラップし、外部サービスを呼び出すことができます。この方法は、SQLベースのツール定義に役立ちます。UC関数ツールの作成方法の詳細については、 Unity Catalog関数を使用したAIエージェントツールの作成」を参照してください。

次の例では、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)を参照してください。

注記

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

ノートブックの例

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

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

外部接続ツール

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

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

ノートブックを新しいタブで開く

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

ノートブックを新しいタブで開く

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

ノートブックを新しいタブで開く

制限事項

  • 外部MCP接続は、プライベートサービスコネクトを使用したVPC内のリソースへのプライベート接続をサポートしていません。AIエージェントがVPC内のリソースに接続する必要がある場合は、サポートチームにお問い合わせください。