Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O Fabric data agent Python SDK fornece acesso programático aos artefactos do Fabric data agent. Foi concebido para utilizadores que privilegiam o código e que pretendem criar, configurar, atualizar e publicar agentes de dados sem recorrer ao portal Fabric. Podes executar o SDK dentro de um portátil Microsoft Fabric, ou a partir do teu próprio ambiente depois de te autenticares no Fabric.
Importante
O Fabric Data Agent SDK está a transitar da API OpenAI Assistants para a OpenAI Responses API, para consultar agentes de dados. Se consultar um agente de dados junto do cliente Fabric OpenAI, pode começar a migrar para o cliente Fabric OpenAI Responses a partir de 11 de agosto de 2026, antes da descontinuação da API dos Assistentes entrar em vigor a 26 de agosto de 2026. Apenas o seu código de consulta muda — criar, configurar e publicar agentes de dados — permanece igual. Para passos de migração e um exemplo executável, consulte o caderno de exemplo da API Responses.
Importante
Este recurso está em pré-visualização.
Plano de gestão e tempo de execução
O SDK é uma ferramenta de plano de gestão. Use-o para gerir o ciclo de vida de um agente de dados: crie o artefacto, adicione e configure fontes de dados, defina instruções e consultas de exemplo, e publique. Corre na API pública REST do Fabric, que é a mesma superfície que já usas para outros espaços de trabalho e itens, por isso autenticação e padrões de pedido são os mesmos.
O plano de gestão está separado da forma como se consulta o agente de dados em tempo de execução. Depois de publicar um agente de dados, consulte-o através do respetivo ponto final do Model Context Protocol (MCP) a partir de ferramentas, aplicações e outras experiências com agentes. Para mais informações, veja Agente de dados como servidor de Protocolo de Contexto de Modelo.
Pré-requisitos
- Um espaço de trabalho Fabric com capacidade que suporta agentes de dados.
- Uma fonte de dados suportada no espaço de trabalho, como uma casa de lago, armazém, modelo semântico Power BI ou base de dados KQL.
- Python 3.10 ou posterior.
- Para executar fora de um notebook do Fabric, é necessária uma forma de autenticação no Fabric, como a CLI do Azure ou uma entidade de serviço.
Instalação
O SDK é publicado no PyPI como fabric-data-agent-sdk. Instale-o usando pip:
%pip install fabric-data-agent-sdk
Autenticar-se no Fabric
Quando executas o SDK dentro de um notebook Fabric, o notebook trata da autenticação por ti.
Quando executares o SDK fora do Fabric, inicia sessão no Fabric primeiro. O exemplo seguinte inicia sessão com a credencial CLI do Azure e define-a como padrão para a sessão. Pode usar uma conta de utilizador ou um principal de serviço.
from azure.identity import AzureCliCredential
from fabric.analytics.environment.credentials import (
SetFabricAnalyticsDefaultTokenCredentialsGlobally,
)
credential = AzureCliCredential()
SetFabricAnalyticsDefaultTokenCredentialsGlobally(credential)
Note
A conta ou o principal de serviço com a qual se autentica deve ter permissão para criar e gerir itens no espaço de trabalho de destino.
Criar um agente de dados
Crie um agente de dados num espaço de trabalho. Substitua o ID do espaço de trabalho pelo ID do espaço de trabalho onde existe o agente de dados.
from fabric.dataagent.client import create_data_agent
workspace_id = "<your-workspace-id>"
agent = create_data_agent(
data_agent_name="Quickstart data agent",
workspace_id=workspace_id,
)
Configure o agente de dados e adicione fontes de dados
Define as instruções do agente e depois adiciona uma fonte de dados. Use o ID de artefacto de uma casa de lago, armazém, modelo semântico ou base de dados KQL existente.
agent_instructions = "<your agent instructions>"
datasource_id = "<your-datasource-id>"
agent.update_settings(ai_instructions=agent_instructions)
agent.add_staging_datasource(
artifact_name_or_id=datasource_id,
workspace_id_or_name=workspace_id,
)
Também pode adicionar instruções de fonte de dados e exemplos de consultas para melhorar a qualidade das respostas do agente de dados. Para saber mais, consulte os exemplos do SDK do Fabric data agent no GitHub.
Publicar o agente de dados
Publique a configuração em fases para disponibilizar o agente de dados para consultas.
agent.publish_staging(description="Initial publish")
Note
Publicar através do SDK funciona tanto dentro como fora do Fabric. Publicar um agente de dados para o Microsoft 365 Copilot ainda não usa a API pública, por isso fazes isso dentro do Fabric, seja no portal ou ao correr o SDK num notebook Fabric.
Consultar um agente de dados publicado
Depois de publicar o agente de dados, consulte-o através do seu endpoint MCP. O endpoint MCP é a superfície de execução e consumo do agente de dados. Pode ligar-se a ela através de ferramentas, aplicações e outros agentes para consultar o agente de dados, colocar questões e receber respostas. Para passos de configuração e clientes suportados, veja Agente de dados como servidor de Protocolo de Contexto de Modelo.
Importante
O agente de dados só funciona como servidor MCP depois de o publicar. Se não publicares o data agent, o endpoint MCP não funciona.
Obtenha a URL do endpoint
Pode obter a URL do endpoint MCP de duas formas:
Copie-o nas definições do agente de dados. Depois de publicar o agente de dados, abra o separador Model Context Protocol nas definições do agente e copie a URL do servidor MCP. Para mais detalhes, veja Agente de dados como servidor de Protocolo de Contexto de Modelo.
Constrói-o manualmente. Constrói a URL a partir do ID do teu espaço de trabalho e ID do agente de dados (artefacto) usando o seguinte formato:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agentSubstitua os marcadores de posição por valores do seu agente de dados publicado:
Marcador de posição Description {WorkspaceId}O ID do espaço de trabalho Fabric que contém o agente de dados. {DataAgentId}O ID do agente de dados publicado. Uma URL construída manualmente só funciona depois de publicar o agente de dados. Se o agente de dados não for publicado, o endpoint devolve um erro mesmo quando a URL está correta.
Authentication
Os pedidos ao endpoint MCP devem ser autenticados no Fabric. Certifique-se de que o seu cliente inclui um token portador válido com permissões para aceder ao espaço de trabalho alvo e ao agente de dados. O token pode representar uma identidade de utilizador ou um principal de serviço (SPN).
Ferramentas disponíveis
O agente de dados Fabric expõe um servidor MCP que fornece uma única ferramenta. Os clientes recorrem a esta ferramenta para enviar uma pergunta ao agente de dados e receber a resposta gerada.
Consultar o agente de dados a partir do Python
O exemplo seguinte liga-se ao endpoint MCP, descobre a ferramenta, envia uma pergunta e imprime a resposta. Reutiliza o credential do passo Autenticar no Fabric e utiliza o MCP Python SDK. Instala primeiro o SDK:
%pip install mcp
import asyncio
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
workspace_id = "<your-workspace-id>"
data_agent_id = "<your-data-agent-id>"
question = "<your question>"
mcp_url = (
f"https://api.fabric.microsoft.com/v1/mcp/workspaces/{workspace_id}"
f"/dataagents/{data_agent_id}/agent"
)
def get_auth_headers():
token = credential.get_token("https://api.fabric.microsoft.com/.default")
return {"Authorization": f"Bearer {token.token}"}
async def query_data_agent(question):
headers = get_auth_headers()
async with streamablehttp_client(mcp_url, headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
# The data agent exposes a single tool. Discover it, then call it.
tools = await session.list_tools()
tool = tools.tools[0]
question_arg = next(iter(tool.inputSchema["properties"]))
result = await session.call_tool(tool.name, {question_arg: question})
answers = [block.text for block in result.content if block.type == "text"]
return "\n".join(answers)
answer = asyncio.run(query_data_agent(question))
print(answer)