Připojení agentů ke strukturovaným datům

Agenti umělé inteligence často potřebují dotazovat se na strukturovaná data nebo s nimi manipulovat, aby mohli odpovídat na otázky, aktualizovat záznamy nebo vytvářet datové kanály.

Databricks poskytuje několik přístupů pro připojení agentů ke strukturovaným datům v tabulkách Katalogu Unity a externích úložištích dat. Pomocí předem nakonfigurovaných serverů MCP můžete okamžitě přistupovat k agentům Genie a skladům SQL nebo vytvářet vlastní nástroje pro specializované pracovní postupy.

Na této stránce se dozvíte, jak:

Dotazování dat v tabulkách katalogu Unity

Pokud váš agent potřebuje dotazovat data v tabulkách Katalogu Unity, doporučuje Databricks používat agenty Genie. Agent Genie je kolekce až 25 tabulek služby Unity Catalog, které může Genie udržovat v kontextu a dotazovat se na ně pomocí přirozeného jazyka. Agenti mají přístup k agentu Genie pomocí předem nakonfigurované adresy URL MCP.

Připojení k agentu Genie:

  1. Vytvořte agenta Genie s tabulkami, které chcete dotazovat a sdílet agenta s uživateli nebo instančními objekty, které k němu musí přistupovat. Viz Vytvoření a správa agenta Genie.
  2. Vytvořte agenta a připojte ho k předem nakonfigurované spravované adrese URL MCP pro prostor: https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}

Note

Spravovaný server MCP pro Genie vyvolává Genie jako nástroj MCP, což znamená, že historie se nepředává při volání Genie API.

Přidejte do svého agenta nástroj Genie Agent

Následující příklady ukazují, jak připojit agenta k serveru McP Agent Genie. Nahraďte <genie-space-id> ID vašeho agenta Genie.

OpenAI Agents SDK (Aplikace)

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)

Udělte aplikaci přístup agentu Genie v databricks.yml:

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

LangGraph (Aplikace)

from databricks.sdk import WorkspaceClient
from databricks_langchain import ChatDatabricks, DatabricksMCPServer, DatabricksMultiServerMCPClient
from langgraph.prebuilt import create_react_agent

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

mcp_client = DatabricksMultiServerMCPClient([
    DatabricksMCPServer(
        name="genie-space",
        url=f"{host}/api/2.0/mcp/genie/<genie-space-id>",
        workspace_client=workspace_client,
    ),
])

async with mcp_client:
    tools = await mcp_client.get_tools()
    agent = create_react_agent(
        ChatDatabricks(endpoint="databricks-claude-sonnet-4-5"),
        tools=tools,
    )
    result = await agent.ainvoke(
        {"messages": [{"role": "user", "content": "What were the top 10 customers by revenue last quarter?"}]}
    )
    print(result["messages"][-1].content)

Udělte aplikaci přístup agentu Genie v databricks.yml:

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

Poskytnutí Modelu

from databricks.sdk import WorkspaceClient
from databricks_mcp import DatabricksMCPClient
import mlflow

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

# Connect to the Genie Agent MCP server
mcp_client = DatabricksMCPClient(
    server_url=f"{host}/api/2.0/mcp/genie/<genie-space-id>",
    workspace_client=workspace_client,
)

# List available tools from the Genie Agent
tools = mcp_client.list_tools()

# Log the agent with the required resources for deployment
mlflow.pyfunc.log_model(
    "agent",
    python_model=my_agent,
    resources=mcp_client.get_databricks_resources(),
)

Pokud chcete nasadit agenta, přečtěte si téma Nasazení agenta pro generování aplikací umělé inteligence (obsluha modelů). Podrobnosti o agentech pro protokolování využívajících prostředky MCP najdete v tématu Spravované servery MCP ve službě Azure Databricks.

Systém s více agenty Genie

Important

Tato funkce je ve verzi Public Preview.

V případě pokročilých systémů s více agenty můžete Genie použít také jako agenta a neintegrovat ho pomocí MCP. Když zavoláte Genie jako agenta, můžete deterministicky předat existující kontext konverzace.

Přístup založený na kódu najdete v tématu Použití Genie v systémech s více agenty (obsluha modelů). Přístup založený na uživatelském rozhraní najdete v tématu Použití agenta supervisora k vytvoření koordinovaného systému s více agenty.

Dotazování dat pomocí nástroje funkce SQL katalogu Unity

Vytvořte nástroj pro strukturované načítání pomocí funkcí SQL katalogu Unity, pokud je dotaz známý předem a agent poskytuje parametry.

Následující příklad vytvoří funkci Unity Catalog s názvem lookup_customer_info, která umožňuje agentu AI načíst strukturovaná data z hypotetické customer_data tabulky.

V editoru SQL spusťte následující kód.

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;

Po vytvoření nástroje Katalogu Unity ho přidejte do svého agenta. Viz Vytvoření nástroje pro funkce Unity Catalogu.