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

エージェントを構造化データに接続する

AIエージェントは、質問に答えたり、レコードを更新したり、データ パイプラインを作成したりするために、構造化データをクエリまたは操作する必要があることがよくあります。

Databricks 、エージェントをUnity Catalogテーブルおよび外部データ ストア内の構造化データに接続するための複数のアプローチを提供します。 事前構成された MCP サーバーを使用してGenie spacesやSQLウェアハウスにすぐにアクセスしたり、特殊なワークフロー用のカスタム ツールを構築したりできます。

このページでは、次の方法を説明します。

Unity Catalogテーブル内のデータのクエリ

エージェントがUnity Catalogテーブル内のデータをクエリする必要がある場合、 Databricks Genie spaces使用を推奨します。 Genieスペースは、 Genieコンテキスト内で保持し、自然言語を使用してクエリを実行できる最大 25 個のUnity Catalogテーブルのコレクションです。 エージェントは、事前設定された MCP URL を使用してGenieにアクセスできます。

Genieスペースに接続するには:

  1. クエリを実行するテーブルを含むGenieスペースを作成し、そのスペースにアクセスする必要があるユーザーまたはサービスプリンシパルとスペースを共有します。 Genieスペースのセットアップと管理」を参照してください。
  2. エージェントを作成し、スペースhttps://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}用に事前に構成された管理対象 MCP URL に接続します。
注記

Genieの管理対象 MCP サーバーはGenie MCP ツールとして呼び出します。つまり、 Genie APIs呼び出すときに履歴は渡されません。

エージェントにGenieスペースツールを追加する

以下の例は、エージェントをGenie MCPサーバーに接続する方法を示しています。 <genie-space-id> Genieスペースの ID に置き換えます。

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/genie/<genie-space-id>",
name="genie-space",
workspace_client=workspace_client,
) as genie_server:
agent = Agent(
name="Data analyst agent",
instructions="You are a data analyst. Use the Genie tool to query structured data and answer questions.",
model="databricks-claude-sonnet-4-5",
mcp_servers=[genie_server],
)
result = await Runner.run(agent, "What were the top 10 customers by revenue last quarter?")
print(result.final_output)

アプリにdatabricks.ymlのGenieスペースへのアクセス権限を付与してください。

YAML
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'

Unity Catalog SQL 関数ツールを使用したデータのクエリ

クエリが事前にわかっていて、エージェントが を提供する場合は、 Unity Catalog SQL関数を使用して構造化検索ツールを作成します。

次の例では、 lookup_customer_infoという Unity Catalog 関数を作成します。これにより、AI エージェントは仮想のcustomer_dataテーブルから構造化データを取得できるようになります。

SQL エディターで次のコードを実行します。

SQL
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up'
)
RETURNS STRING
COMMENT 'Returns metadata about a particular customer, given the customer's name, including the customer's email and ID. The
customer ID can be used for other queries.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;

Unity Catalogツールを作成したら、それをエージェントに追加してください。 Unity Catalog機能ツールの作成を参照してください。