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

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

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 Spaceの設定と管理については、「Genie Spaceの設定と管理」を参照してください。
  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機能ツールの作成を参照してください。