Ansluta agenter till strukturerade data

Agenter behöver ofta fråga eller manipulera strukturerade data för att svara på frågor, uppdatera poster eller skapa datapipelines.

Databricks tillhandahåller flera metoder för att ansluta agenter till strukturerade data i Unity Catalog-tabeller och externa datalager. Använd förkonfigurerade MCP-servrar för omedelbar åtkomst till Genie-agenter och SQL-lager, eller skapa anpassade verktyg för specialiserade arbetsflöden.

Den här sidan visar hur du:

Fråga efter data i Unity Catalog-tabeller

Om din agent behöver fråga efter data i Unity Catalog-tabeller rekommenderar Databricks att du använder Genie-agenter. En Genie-agent är en samling med upp till 25 Unity Catalog-tabeller som Genie kan behålla i kontext och fråga med naturligt språk. Agenter kan komma åt Genie-agenten med hjälp av en förkonfigurerad MCP-URL.

Så här ansluter du till en Genie-agent:

  1. Skapa en Genie-agent med de tabeller som du vill fråga mot och dela agenten med de användare eller tjänsthuvudkonton som behöver ha åtkomst till den. Se Skapa och hantera en Genie-agent.
  2. Skapa en agent och anslut den till den förkonfigurerade hanterade MCP-URL:en för utrymmet: https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}.

Note

Den hanterade MCP-servern för Genie anropar Genie som ett MCP-verktyg, vilket innebär att historiken inte skickas när genie-API:er anropas.

Lägga till ett Genie Agent-verktyg i din agent

Följande exempel visar hur du ansluter din agent till en Genie Agent MCP-server. Ersätt <genie-space-id> med ID:t för din Genie-agent.

OpenAI Agents SDK (appar)

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)

Ge appen åtkomst till Genie-agenten i databricks.yml:

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

LangGraph (appar)

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)

Ge appen åtkomst till Genie-agenten i databricks.yml:

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

Modellhantering

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(),
)

Information om hur du distribuerar agenten finns i Distribuera en agent för AI-program (modellservering). Mer information om loggningsagenter med MCP-resurser finns i Azure Databricks hanterade MCP-servrar.

Genie multiagentssystem

Important

Den här funktionen finns som allmänt tillgänglig förhandsversion.

För avancerade system med flera agenter kan du också använda Genie som agent i stället för att integrera det med MCP. När du anropar Genie som agent kan du deterministiskt överföra befintlig konversationskontext till Genie.

För en kod-först-ansats, se Använda Genie i system med flera agenter (modellbetjäning). För en UI-första metod, se Använd övervakaragent för att skapa ett samordnat system med flera agenter.

Kör SQL mot Unity Catalog-tabeller med Databricks SQL MCP-server

När din agent behöver köra AI-genererad SQL mot Unity Catalog-tabeller via ett SQL-lager, koppla den till Azure Databricks hanterade Databricks SQL MCP-server istället för att bygga ett eget verktyg. Servern exponerar SQL-exekvering som ett verktyg, och åtkomsten styrs av Unity Catalog-behörigheter. Koppla din agent till den förkonfigurerade hanterade MCP-URL:n: https://<workspace-hostname>/api/2.0/mcp/sql.

För URL-mönstret, OAuth-scope, _meta parametrar (såsom att fästa en specifik warehouse_id) och anslutningsexempel, se Databricks SQL.

Hämta data med Unity Catalogs SQL-funktionsverktyg

Skapa ett strukturerat hämtningsverktyg med hjälp av SQL-funktioner i Unity Catalog när frågan är känd i förväg och agenten tillhandahåller parametrarna.

I följande exempel skapas en Unity Catalog-funktion med namnet lookup_customer_info, som gör att en agent kan hämta strukturerade data från en hypotetisk customer_data tabell.

Kör följande kod i en SQL-redigerare.

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;

När du har skapat ett Unity Catalog-verktyg lägger du till det i din agent. Se Skapa ett funktionsverktyg för Unity Catalog.