Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Агенты ИИ часто должны запрашивать структурированные данные или управлять ими, чтобы отвечать на вопросы, обновлять записи или создавать конвейеры данных.
Databricks предоставляет несколько подходов для подключения агентов к структурированным данным в таблицах каталога Unity и внешних хранилищах данных. Используйте предварительно настроенные серверы MCP для немедленного доступа к хранилищам Genie Spaces и SQL или создавайте пользовательские средства для специализированных рабочих процессов.
На этой странице показано, как:
Запрос данных в таблицах каталога Unity
Если агенту нужно запрашивать данные в таблицах каталога Unity, Databricks рекомендует использовать пространства Genie. Пространство Genie — это коллекция до 25 таблиц каталога Unity, которые Genie может хранить в контексте и запрашивать с помощью естественного языка. Агенты могут получить доступ к пространству Genie с помощью предварительно настроенного URL-адреса MCP.
Чтобы подключиться к пространству Genie, выполните приведенные действия.
- Создайте пространство Genie с таблицами, к которым вы хотите делать запросы, и поделитесь пространством с пользователями или сервисными учетными записями, которым необходим доступ. См. статью "Настройка и управление пространством Genie".
- Создайте агент и подключите его к предварительно настроенном URL-адресу MCP для пространства:
https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}
Замечание
Управляемый сервер MCP для Genie вызывает Genie в качестве средства MCP, что означает, что журнал не передается при вызове API Genie.
Добавьте инструмент пространства Genie к агенту.
В следующих примерах показано, как подключить агент к серверу MCP компании Genie. Замените <genie-space-id> идентификатором пространства Genie.
Пакет SDK для агентов OpenAI (приложения)
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)
Предоставьте приложению доступ к пространству Genie в databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
LangGraph (приложения)
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)
Предоставьте приложению доступ к пространству Genie в databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
Обслуживание моделей
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(),
)
Сведения о развертывании агента см. в статье "Развертывание агента для создания приложений ИИ (обслуживание моделей)". Дополнительные сведения об агентах ведения журнала с ресурсами MCP см. в разделе "Использование управляемых серверов MCP Databricks".
Система с несколькими агентами Genie
Это важно
Эта функция доступна в общедоступной предварительной версии.
Для расширенных многоагентных систем можно также использовать Genie в качестве агента, а не интегрировать его с помощью MCP. При вызове Genie в качестве агента вы можете детерминированно передать существующий контекст беседы в Genie.
Для подхода с написанием кода в первую очередь, см. Использование Genie в системах с несколькими агентами (Обслуживание моделей). Для подхода с ориентацией на пользовательский интерфейс, см. Использование агента руководителя для создания координированной системы с несколькими агентами.
Запрос данных с помощью средства функции SQL каталога Unity
Создайте структурированное средство извлечения с помощью функций SQL каталога Unity, когда запрос известен заранее, а агент предоставляет параметры.
В следующем примере создается функция каталога Unity, которая позволяет lookup_customer_info агенту ИИ извлекать структурированные данные из гипотетической таблицы customer_data.
Выполните следующий код в редакторе 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;
После того как вы создадите инструмент Unity Catalog, добавьте его в програмный агент. См. статью "Создание средства функции каталога Unity".