Dela via


Ansluta agenter till strukturerade data

AI-agenter behöver ofta fråga eller manipulera strukturerade data för att besvara 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-utrymmen 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-blanksteg. Ett Genie-utrymme ä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-utrymmet med hjälp av en förkonfigurerad MCP-URL.

Så här ansluter du till ett Genie-utrymme:

  1. Skapa ett Genie-utrymme med de tabeller som du vill fråga efter och dela utrymmet med de användare eller tjänstens huvudnamn som måste komma åt det. Se Konfigurera och hantera ett Genie-utrymme.
  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}.

Anmärkning

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ägg till ett Genie-utrymmesverktyg i din agent

I följande exempel visas hur du ansluter din agent till en Genie Space MCP-server. Ersätt <genie-space-id> med ID:t för ditt Genie-utrymme.

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-utrymmet 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-utrymmet 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 space 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 space
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 generativa AI-program (modellservering). Mer information om loggningsagenter med MCP-resurser finns i Använda Databricks-hanterade MCP-servrar.

Genie multiagentssystem

Viktigt!

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.

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 AI-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 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;

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.