Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O SDK do Python para o agente de dados do Fabric fornece acesso programático aos artefatos do agente de dados do Fabric. Ele foi projetado para usuários de primeiro código que desejam criar, configurar, atualizar e publicar agentes de dados sem usar o portal Fabric. Você pode executar o SDK dentro de um bloco de anotações Microsoft Fabric ou em seu próprio ambiente depois de autenticar para Fabric.
Importante
O Fabric Data Agent SDK está em transição da API OpenAI Assistants para a OpenAI Responses API, para consultar agentes de dados. Se você consultar um agente de dados com o cliente Fabric OpenAI, pode começar a migrar para o cliente Fabric OpenAI Responses a partir de 11 de agosto de 2026, antes que a descontinuação da API dos Assistentes entre em vigor em 26 de agosto de 2026. Apenas seu código de consulta muda — criar, configurar e publicar agentes de dados — permanece o mesmo. Para etapas de migração e um exemplo executável, veja o caderno de exemplo da API Responses.
Importante
Esse recurso está na versão prévia.
Plano de gerenciamento e tempo de execução
O SDK é uma ferramenta de plano de gerenciamento. Use-o para gerenciar o ciclo de vida de um agente de dados: crie o artefato, adicione e configure fontes de dados, defina instruções e consultas de exemplo e publique. Ele funciona com base na API REST pública do Fabric, que é a mesma interface que você já usa para outros workspaces e itens, portanto, a autenticação e os padrões de requisição são os mesmos.
O plano de gerenciamento é separado de como você consulta o agente de dados em runtime. Depois de publicar um agente de dados, consulte-o por meio do endpoint MCP (Protocolo de Contexto de Modelo) em ferramentas, aplicativos e outras experiências agênticas. Para obter mais informações, consulte o agente de dados como um servidor de protocolo de contexto de modelo.
Pré-requisitos
- Um workspace do Fabric com uma capacidade que oferece suporte a agentes de dados.
- Uma fonte de dados compatível no workspace, como um lakehouse, um warehouse, um modelo semântico do Power BI ou um banco de dados KQL.
- Python 3.10 ou posterior.
- Para execução fora de um notebook do Fabric, uma forma de se autenticar 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 você executa o SDK dentro de um notebook do Fabric, o notebook cuida da autenticação para você.
Quando você executar o SDK fora do Fabric, entre no Fabric primeiro. O exemplo a seguir entra com a credencial CLI do Azure e a define como o padrão para a sessão. Você pode usar uma conta de usuário ou uma entidade de serviço.
from azure.identity import AzureCliCredential
from fabric.analytics.environment.credentials import (
SetFabricAnalyticsDefaultTokenCredentialsGlobally,
)
credential = AzureCliCredential()
SetFabricAnalyticsDefaultTokenCredentialsGlobally(credential)
Note
A conta ou principal de serviço com a qual você se autentica deve ter permissão para criar e gerenciar itens no espaço de trabalho de destino.
Criar um agente de dados
Crie um agente de dados em um workspace. Substitua o ID do espaço de trabalho pelo ID do espaço de trabalho onde o agente de dados está.
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,
)
Configurar o agente de dados e adicionar fontes de dados
Defina as instruções do agente e adicione uma fonte de dados. Use o ID do artefato de um lakehouse, warehouse, modelo semântico ou banco 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,
)
Você também pode adicionar instruções de fonte de dados e consultas de exemplo para melhorar a qualidade das respostas do agente de dados. Para saber mais, confira os exemplos do SDK do agente de dados Fabric no GitHub.
Publicar o agente de dados
Publique a configuração em etapas para disponibilizar o agente de dados para consulta.
agent.publish_staging(description="Initial publish")
Note
A publicação por meio do SDK funciona dentro e fora do Fabric. Publicar um agente de dados no Microsoft 365 Copilot ainda não usa a API pública, portanto, isso ainda é feito no Fabric, seja no portal ou executando o SDK em um notebook do Fabric.
Consultar um agente de dados publicado
Depois de publicar o agente de dados, consulte-o por seu endpoint MCP. O endpoint MCP é a interface de tempo de execução e consumo para o agente de dados. Você pode se conectar a ele por meio de ferramentas, aplicativos e outros agentes para consultar o agente de dados, fazer perguntas e receber respostas. Para ver as etapas de configuração e os clientes compatíveis, consulte o agente de dados como um servidor do Model Context Protocol.
Importante
O agente de dados funciona como um servidor MCP somente depois de publicá-lo. Se você não publicar o agente de dados, o endpoint MCP não funciona.
Obter a URL do ponto de extremidade
Você pode obter a URL do ponto de extremidade MCP de duas maneiras:
Copie-o das configurações do agente de dados. Depois de publicar o agente de dados, abra a guia Protocolo de Contexto do Modelo nas configurações do agente e copie a URL do servidor MCP. Para obter detalhes, consulte o agente de dados como um servidor de protocolo de contexto de modelo.
Compile-o manualmente. Construa a URL a partir da ID do seu workspace e da ID do agente de dados (artefato), usando o seguinte formato:
https://api.fabric.microsoft.com/v1/mcp/workspaces/{WorkspaceId}/dataagents/{DataAgentId}/agentSubstitua os marcadores pelos valores do seu agente de dados publicado:
Espaço reservado Description {WorkspaceId}O ID do workspace do Fabric que contém o agente de dados. {DataAgentId}O identificador do agente de dados publicado. Uma URL criada manualmente só funciona depois que você publica o agente de dados. Se o agente de dados não estiver publicado, o endpoint retornará um erro mesmo quando a URL estiver correta.
Authentication
As solicitações ao endpoint MCP devem ser autenticadas no Fabric. Verifique se o cliente inclui um token de portador válido com permissões para acessar o workspace de destino e o agente de dados. O token pode representar uma identidade de usuário ou um SPN (entidade de serviço).
Ferramentas disponíveis
O agente de dados Fabric expõe um servidor MCP que fornece uma única ferramenta. Os clientes chamam essa ferramenta para enviar uma pergunta ao agente de dados e receber a resposta gerada.
Consultar o agente de dados de Python
O exemplo a seguir conecta-se ao ponto de extremidade MCP, descobre a ferramenta, envia uma pergunta e imprime a resposta. Reutiliza o credential da etapa Autenticação no Fabric e usa o SDK do MCP para Python. Instale o SDK primeiro:
%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)