Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Agenci sztucznej inteligencji często muszą wykonywać zapytania o dane ustrukturyzowane lub manipulować nimi, aby odpowiedzieć na pytania, aktualizować rekordy lub tworzyć potoki danych.
Usługa Databricks oferuje wiele podejść do łączenia agentów z danymi ustrukturyzowanymi w tabelach katalogu Unity Catalog i zewnętrznych magazynach danych. Użyj wstępnie skonfigurowanych serwerów MCP, aby uzyskać natychmiastowy dostęp do przestrzeni Genie i magazynów SQL, lub tworzyć niestandardowe narzędzia dla wyspecjalizowanych przepływów pracy.
Na tej stronie pokazano, jak:
Zapytania danych w tabelach Unity Catalog
Jeśli twoje agent musi wysyłać zapytania o dane w tabelach Unity Catalog, usługa Databricks zaleca używanie przestrzeni Genie. Obszar Genie to kolekcja do 25 tabel Unity Catalog, które Genie może utrzymać w kontekście i przeszukiwać za pomocą języka naturalnego. Agenci mogą uzyskać dostęp do obszaru Genie przy użyciu wstępnie skonfigurowanego adresu URL MCP.
Aby nawiązać połączenie z przestrzenią Genie:
- Utwórz przestrzeń Genie z tabelami, których chcesz użyć do zapytań, i udostępnij przestrzeń użytkownikom lub jednostkom usługi, które muszą uzyskać do niej dostęp. Zobacz Konfigurowanie obszaru Genie i zarządzanie nim.
- Utwórz agenta i połącz go ze wstępnie skonfigurowanym adresem URL zarządzanego protokołu MCP dla przestrzeni:
https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}.
Uwaga / Notatka
Zarządzany serwer MCP dla Genie wywołuje Genie jako narzędzie MCP, co oznacza, że historia nie jest przekazywana podczas wywoływania interfejsów API Genie.
Dodawanie narzędzia obszaru Genie do agenta
W poniższych przykładach pokazano, jak połączyć agenta z serwerem MCP genie space. Zastąp <genie-space-id> identyfikatorem obszaru Genie.
Zestaw SDK agentów OpenAI (aplikacje)
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)
Udziel aplikacji dostępu do obszaru Genie w databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
LangGraph (aplikacje)
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)
Udziel aplikacji dostępu do obszaru Genie w databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
Modelowa obsługa
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(),
)
Aby wdrożyć agenta, zobacz Deploy an agent for generative AI applications (Model Serving) (Wdrażanie agenta na potrzeby generowania aplikacji sztucznej inteligencji (obsługa modeli). Aby uzyskać szczegółowe informacje na temat rejestrowania agentów z zasobami MCP, zobacz Use Databricks managed MCP servers (Korzystanie z zarządzanych serwerów MCP usługi Databricks).
Genie system wieloagentowy
Ważne
Ta funkcja jest dostępna w publicznej wersji testowej.
W przypadku zaawansowanych systemów wieloagentowych można również użyć Genie jako agenta zamiast integrować go z usługą MCP. Wywołując Genie jako agenta, można deterministycznie przekazać obecny kontekst rozmowy do Genie.
Aby zapoznać się z podejściem opartym na kodzie, zobacz Use Genie in multi-agent systems (Model Serving) (Używanie usługi Genie w systemach wieloa agentowych (obsługa modelu). Aby uzyskać podejście oparte na interfejsie użytkownika, zobacz Używanie agenta nadzorcy do tworzenia skoordynowanego systemu wielu agentów.
Zapytanie danych z wykorzystaniem funkcji SQL Katalogu Unity
Utwórz narzędzie do strukturalnego pobierania przy użyciu funkcji SQL Katalogu Unity, gdy zapytanie jest znane z wyprzedzeniem, a agent przekazuje parametry.
Poniższy przykład tworzy funkcję Unity Catalog o nazwie lookup_customer_info, która umożliwia agentowi sztucznej inteligencji pobieranie danych strukturalnych z hipotetycznej tabeli customer_data.
Uruchom następujący kod w edytorze 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;
Po utworzeniu narzędzia Unity Catalog dodaj je do agenta. Zobacz Utwórz funkcję dla Katalogu Unity.