Bien sabemos que una buena estrategia para IA esta acompañada previamente de una buena estrategia con tus datos. En una actualidad que revienta de IA vamos a cruzar los mundos con el de datos.
En este artículo aprenderemos a construir un agente, asistente, chat, bot o como quieran decirle para que responderá preguntas basadas en nuestros datos almacenados en Fabric lakehouse, warehouse o semantic models usando Fabric Data Agents.
Antes de iniciarnos en la construcción o proceso, necesitamos comprender los requerimientos previos para poder lograrlo dado que son varios. Les dejo los pre requisitos:
Prerrequisitos
- Un recurso de capacidad de Fabric de pago F2 o superior
- La configuración del inquilino (tenant settings) de Fabric Data Agents está habilitada.
- El switch de Copilot está habilitado en el tenant.
- El procesamiento entre ubicaciones geográficas para IA está habilitado (en caso de regiones diferentes entre power bi, capacidades, etc)
- El almacenamiento entre ubicaciones geográficas para IA está habilitado (en caso de regiones diferentes entre power bi, capacidades, etc)
- Al menos uno de estos: un warehouse, lakehouse, uno o más modelos semánticos de Power BI o una base de datos KQL con datos.
- Switch de modelos semánticos de Power BI a través de tenant settings de puntos de conexión XMLA está habilitado para orígenes de datos del modelo semántico de Power BI.
Conceptos
Tal como nos gusta hacer en LaDataWeb comenzaremos definiendo que son los Fabric Data Agents según Microsoft:
Es una característica que le permite crear sus propios sistemas de preguntas y respuestas conversacionales mediante inteligencia artificial generativa. Un agente de datos de Fabric hace que la información de datos sea más accesible y procesable para todos los usuarios de su organización. Con un agente de datos de Fabric, el equipo puede tener conversaciones, con preguntas en inglés sin formato, sobre los datos almacenados en Fabric OneLake y, a continuación, recibir respuestas pertinentes.
Dicho de otro modo es un nuevo ítem, recurso o componente que podemos crear en Fabric que tiene un motor de IA generativa con contexto a datos almacenados en Fabric para responder o conversar frente al usuario. El recurso se presenta en modo de chat.
Ahora, ¿Cómo se diferencia esto de Fabric Copilot? Si bien ambos agentes y copilotos de Fabric usan IA generativa para procesar y razonar los datos, los agentes son altamente configurables. Pueden proporcionar instrucciones y ejemplos personalizados para adaptar su comportamiento a escenarios específicos. Los copilotos, están preconfigurados y estan diseñados para ayudar con tareas dentro de Microsoft Fabric.
Creando nuestro primer agente
Lo primero que haremos será abrir un workspace con capacidad de Fabric y crear un nuevo ítem. Allí encontraremos los agentes de datos:

Solo nos pedirá un nombre para crearlo:

Para poder generar un agente que responda asertivamente, no bastará con apuntar a los lugares que tiene que leer, sino que tendremos que trabajar en un proceso de tres pasos. Veamos la siguiente imágen para guiarnos:

El proceso se realiza de la siguiente manera:
- Seleccionar el origen de datos y las tablas que verá nuestra IA según nuestro almacenamiento.
- Brindarle instrucciones que pensamos que debería tener presente nuestro agente basados en nuestra experiencia de la audiencia.
- Brindar ejemplos de preguntas y respuestas basadas en consultas a datos. Mostrar que texto responde a que código.
Para ver esta nueva característica vamos a construir dos agentes. Por un lado uno que responda a partir de un modelo semántico y por otro lado respondiendo a partir de un lakehouse.
Agente contra modelo semántico
En este caso tengo un tradicional modelo de ventas de adventure works donde voy a involucrar tablas de ventas, productos, categorias, tiendas, clientes y glosario de medidas (métricas y descripciones). Si bien en la definición del producto aclara que esta solo en inglés, las pruebas las vengo haciendo en castellano y las respuestas son aceptables.
Veamos un ejemplo de instrucciones que le di al modelo

Aquí expuse tres tipos de instrucciones. Por un lado, explicarle a que tabla nos referimos cuando hablamos de X palabra. Por otro lado, explicarle que columna o medida buscar cuando estamos hablando venta, costo, etc. Finalmente, material adicional de como debería interactuar como por ejemplo que use la tablafecha cuando necesitamos hablar del tiempo o que puede leer el glosario para definir una medida.
Éstas no son las únicas formas. Hay muchas más. Todo lo que pensemos que aporte a explicar la respuesta que debería buscar a partir de como lo usaría un usuario aporta. Por ejemplo, si sabemos que suele pedirse un determinado análisis como combinación de productos en ventas o comparaciones contra otros periodos. Se podría tranquilamente aclarar como tiene que buscarlo el modelo.
NOTA: Al mes de agosto 2025 los agentes con modelo semántico no permiten configurar ejemplos de consultas DAX. Bastaría con esa configuración
Veamoslo en acción escribiendo "Hola. Podrías decirme cuales son las 2 tiendas que más vendieron en el año 2007"

Fíjense que la respuesta es texto y tiene un pequeño expandir para entender como llega al resultado. Allí podremos chequear la consulta ejecutada contra el origen:

Si validamos contra un reporte veremos que los valores coinciden:

Veamos algo más complejo. Vamos a preguntar "Cuales son los clientes que compraron el último día cargado en la base y que productos se vendieron?"

Como vemos la respuesta es más compleja pero nos muestra todos los clientes que compraron y los dos productos más vendidos.
Recordemos que es crucial tener una buena capa semántica para que el modelo encuentre mejores resultados a las consultas de los usuarios. A mejor capa semántica, menor será el bloque de instrucciones.
Agente contra lakehouse o warehouse
En este ejemplo vamos a asumir que ya seleccionamos las tablas. A diferencia del agente anterior, aquí podemos separar las instrucciones en dos, para la IA y para los orígenes de datos. Las de IA son generales del agente y se envían en cada consulta. Podes usarlas para explicarle al agente cómo abordar una pregunta, que orígenes usar según las preguntas o que términos conceptuales de negocio conocer. Las de orígenes de datos solo se ejecutan cuando el data source es usado para responder. Aquí se puede agregar notas de tablas, columnas, relaciones, esquemas o metadatos. Ejemplo de instrucciones de IA:
- Cuando las preguntas sean sobre ladrillos, legos, colores, temas o sets, debes usar la tabla Lego_Sets para responder.
- Cuando la pregunta sea sobre música, canciones, artistas, baile, velocidad, energía o popularidad, usa la tabla Spotify_Tracks.
Ejemplo de instrucciones de origen de datos:
- El tema, tipo o categoría de un lego normalmente debe responderse con theme_name.
- Si el usuario habla sobre el tamaño de un set de lego, se mide con piece_count. Cuantas más piezas tenga, más grande es.
- Cuando el usuario hable sobre canciones, se está refiriendo a tracks.
- Las tracks se consideran bailables cuando su valor en danceability es mayor a 0.5.
NOTA: esta categoría no esta disponible para semantic models sino que se configurarían todas las instrucciones en la IA
Culminado eso podemos enfocarnos en como se hacen las consultas SQL de ejemplo.


Una vez configurado veamos preguntas de ejemplo:




Presentación
Una vez finalizado el agente, damos en publicar para que esté disponible. Hay distintas formas de presentarlos a los usuarios finales.
- La más simple sería compartir el recurso. No olvidemos que el data agent no es distinto a un notebook o reporte de power bi. Podemos darle compartir uno a uno o pueden usarlo usuarios participantes del área de trabajo.
- Si queremos integrarlo en otro lugar, hoy Copilot Studio ha liberado nuevas formas de posicionar dichos agentes. Podemos incorporarlos en Azure AI Foundry, Teams, etc. Pueden leer más al respecto aquí: https://learn.microsoft.com/en-us/fabric/data-science/data-agent-microsoft-copilot-studio
- Finalmente, para usuarios más avanzados podemos construir el acceso por código. Fabric data agents tiene una SDK en python, lo que permitiría llevarlo a donde querramos siempre y cuando conozcamos de código: https://learn.microsoft.com/en-us/fabric/data-science/fabric-data-agent-sdk
Limitaciones
- Fabric Data Agent no admite datos no estructurados (.pdf, .docxo .txt). No se puede usar el agente de datos de Fabric para acceder a recursos de datos no estructurados. Estos recursos incluyen archivos .pdf, .docx o .txt, por ejemplo.
- El agente de datos de Fabric no admite actualmente idiomas que no son de inglés. Para obtener un rendimiento óptimo, proporcione preguntas, instrucciones y consultas de ejemplo en inglés.
- No se puede cambiar el LLM que usa el agente de datos de Fabric.
Eso sería todo, espero que no haya sido muy extenso y hayan podido conocer la potencia que nos brindan los Fabric Data Agents como gran alternativa para llegar a información a usuarios mediante lenguaje natural. Como siempre, les dejo en mi Github el material de las instrucciones y consultas creadas para estos conjuntos de datos gratuitos del ejemplo de lakehouse que son más completas. Espero que les guste.