Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
A menudo, los agentes de inteligencia artificial necesitan consultar o manipular datos estructurados para responder a preguntas, actualizar registros o crear canalizaciones de datos.
Databricks proporciona varios enfoques para conectar agentes a datos estructurados en tablas de Catálogo de Unity y almacenes de datos externos. Use servidores MCP preconfigurados para el acceso inmediato a espacios de Genie y almacenes de SQL, o cree herramientas personalizadas para flujos de trabajo especializados.
En esta página se muestra cómo:
Consulta de datos en tablas de Catálogo de Unity
Si el agente necesita consultar datos en tablas de Catálogo de Unity, Databricks recomienda usar espacios de Genie. Un espacio de Genie es una colección de hasta 25 tablas de catálogo de Unity que Genie puede mantener en contexto y consultar mediante lenguaje natural. Los agentes pueden acceder al espacio de Genie mediante una dirección URL de MCP preconfigurada.
Para conectarse a un espacio de Genie:
- Cree un espacio de Genie con las tablas que desea consultar y comparta el espacio con los usuarios o entidades de servicio que necesiten acceder. Consulte Configuración y administración de un espacio de Genie.
- Cree un agente y conéctelo a la dirección URL de MCP administrada preconfigurada para el espacio:
https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}.
Nota:
El servidor MCP administrado para Genie invoca a Genie como una herramienta MCP, lo que significa que el historial no se pasa al invocar las API de Genie.
Añade una herramienta de espacio de Genie al agente
En los ejemplos siguientes se muestra cómo conectar el agente a un servidor MCP de espacio de Genie. Reemplace <genie-space-id> por el identificador del espacio de Genie.
SDK de agentes de OpenAI (aplicaciones)
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)
Conceda a la aplicación acceso al espacio de Genie en databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
LangGraph (Aplicaciones)
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)
Conceda a la aplicación acceso al espacio de Genie en databricks.yml:
resources:
apps:
my_agent_app:
resources:
- name: 'my_genie_space'
genie_space:
space_id: '<genie-space-id>'
permission: 'CAN_RUN'
Servicio de modelos
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(),
)
Para implementar el agente, consulte Deploy an agent for generative AI applications (Model Serving). Para más información sobre el registro de agentes con recursos de MCP, consulte Uso de servidores MCP administrados de Databricks.
Sistema multiagente de Genie
Importante
Esta característica está en versión preliminar pública.
Para sistemas avanzados y multiagente, también puede usar Genie como agente en lugar de integrarlo mediante MCP. Al llamar a Genie como agente, puede pasar de manera determinista el contexto existente de la conversación a Genie.
Para obtener un enfoque de código primero, consulte Uso de Genie en sistemas multiagente (Servicio de modelos). Para obtener un enfoque primero en la interfaz de usuario, consulte Uso del agente supervisor para crear un sistema multiagente coordinado.
Consultar datos usando la herramienta de funciones SQL del catálogo de Unity
Cree una herramienta de recuperación estructurada mediante funciones SQL del catálogo de Unity cuando la consulta se conozca con antelación y el agente proporcione los parámetros.
En el ejemplo siguiente se crea una función de catálogo de Unity denominada lookup_customer_info, que permite a un agente de IA recuperar datos estructurados de una tabla hipotética customer_data .
Ejecute el código siguiente en un editor de 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;
Después de crear una herramienta de catálogo de Unity, agréguela al agente. Consulte Creación de una herramienta de función de Catálogo de Unity.