Aller au contenu principal

Connectez les agents aux données structurées.

Les agents IA ont souvent besoin de query ou de manipuler des données structurées pour répondre à des questions, mettre à jour des enregistrements ou créer des pipelines de données.

Databricks propose plusieurs approches pour connecter les agents aux données structurées dans les tables Unity Catalog et aux stockages de données externes. Utilisez des serveurs MCP préconfigurés pour un accès immédiat aux Genie Agents et aux SQL Warehouse, ou créez des outils personnalisés pour des workflows spécialisés.

Cette page montre comment faire :

Query des données dans les tables Unity Catalog

Si votre agent doit interroger des données dans des tables Unity Catalog, Databricks recommande d'utiliser les Genie Agents. Un Genie Agent est une collection de jusqu'à 25 tables Unity Catalog que Genie peut conserver en contexte et interroger en utilisant le langage naturel. Les agents peuvent accéder au Genie Agent en utilisant une URL MCP préconfigurée.

Pour se connecter à un Genie Agent :

  1. Créez un Genie Agent avec les tables que vous souhaitez query et partagez l'agent avec les utilisateurs, ou les Service Principals, qui doivent y accéder. Consulter Créer et gérer un Genie Agent.
  2. Créez un agent et connectez-le à l'URL MCP gérée préconfigurée pour l'espace : https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}.
remarque

Le serveur MCP géré pour Genie invoque Genie comme un outil MCP, ce qui signifie que l’historique n’est pas transmis lors de l’invocation des APIs Genie.

Ajouter un outil Genie Agent à votre agent

Les exemples suivants montrent comment connecter votre agent à un serveur MCP Genie Agent. Remplacez <genie-space-id> par l'ID de votre Genie Agent.

Python
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)

Accorder à l'application l'accès à l'agent Genie Agent dans databricks.yml:

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

Système multi-agents Genie

info

Aperçu

Cette fonctionnalité est en aperçu public.

Pour les systèmes avancés multi-agents, vous pouvez également utiliser Genie comme agent plutôt que de l’intégrer à l’aide de MCP. Lorsque vous appelez Genie comme agent, vous pouvez passer de manière déterministe le contexte de conversation existant à Genie.

Pour une approche « code-first », consultez Utiliser Genie dans les systèmes multi-agents (Model Serving). Pour une approche « UI-first », consultez Utiliser l'agent Supervisor pour créer un système multi-agent coordonné.

Interroger les données à l'aide de l'outil de fonction SQL de Unity Catalog

Créez un outil de récupération structurée à l'aide des fonctions SQL de Unity Catalog lorsque la query est connue à l'avance et que l'agent fournit les paramètres.

L'exemple suivant crée une fonction Unity Catalog appelée lookup_customer_info, qui permet à un agent d'IA de récupérer des données structurées à partir d'une table hypothétique customer_data.

Exécutez le code suivant dans un éditeur SQL.

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

Après avoir créé un outil Unity Catalog, ajoutez-le à votre agent. Voir Créer un outil de fonction Unity Catalog.