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

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

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

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

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

Unity Catalogテーブルでデータをクエリします。

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

Genie Agentに接続するには:

  1. クエリーするテーブルを使用してGenie Agentを作成し、それにアクセスする必要があるユーザー、またはService Principalとエージェントを共有します。Genie Agent の作成と管理を参照してください。
  2. エージェントを作成し、スペースの事前設定されたマネージドMCP URLに接続します: https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}
注記

Genie 用のマネージド MCP サーバーは、Genie を MCP ツールとして呼び出します。これは、Genie APIs を呼び出すときに履歴が渡されないことを意味します。

エージェントにGenie Agentツールを追加します。

以下の例では、エージェントをGenie Agent MCPサーバーに接続する方法を示します。<genie-space-id>をGenie Agentの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 Agentへのアクセスを許可します:

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

Genie マルチエージェント システム

備考

プレビュー

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

高度なマルチエージェントシステムでは、GenieをMCPを使用して統合するのではなく、エージェントとして使用することもできます。Genieをエージェントとして呼び出す場合、既存の会話コンテキストをGenieに決定的に渡すことができます。

コードファーストのアプローチについては、「マルチエージェントシステムでGenieを使用する (Model Serving)」を参照してください。UIファーストのアプローチについては、「スーパーバイザーエージェントを使用して、調整されたマルチエージェントシステムを作成する」を参照してください。

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_input 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_input
LIMIT 1;

Unity Catalog ツールを作成したら、エージェントに追加します。Unity Catalog 関数ツールを作成するを参照してください。