Compartilhar via


Usar o SDK do Microsoft Purview com o Agent Framework

O Microsoft Purview fornece recursos de segurança, conformidade e governança de dados de nível empresarial para aplicativos de IA. Ao integrar as APIs do Purview no SDK do Agent Framework, os desenvolvedores podem criar agentes inteligentes seguros por design, ao mesmo tempo em que garantem que dados confidenciais em prompts e respostas estejam protegidos e em conformidade com as políticas organizacionais.

Por que integrar o Purview ao Agent Framework?

  • Evitar vazamentos de dados confidenciais: bloqueio embutido de conteúdo confidencial com base em políticas de Prevenção contra Perda de Dados (DLP).
  • Habilitar a governança: Registrar interações de IA no Purview para Auditoria, Conformidade de Comunicação, Gerenciamento de Risco Interno, Descoberta Eletrônica e Gerenciamento de Ciclo de Vida de Dados.
  • Acelerar a adoção: os clientes empresariais exigem conformidade para aplicativos de IA. A integração do Purview desbloqueia a implantação.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Assinatura do Microsoft Azure com o Microsoft Purview configurado.
  • Assinatura Microsoft 365 com licença E5 e configuração de cobrança sob demanda.
  • SDK do Agent Framework: para instalar o SDK do Agent Framework:
    • Python: Executar pip install agent-framework --pre.
    • .NET: Instalar do NuGet.

Como integrar o Microsoft Purview ao seu agente

No pipeline de middleware do fluxo de trabalho do agente, você pode adicionar o middleware de política do Microsoft Purview para interceptar prompts e respostas e determinar se eles atendem às políticas definidas no Microsoft Purview. O SDK do Agent Framework é capaz de interceptar solicitações e respostas de cliente de chat de usuário final ou de agente para agente.

O exemplo de código a seguir demonstra como adicionar o middleware de política do Microsoft Purview ao código do agente. Se você for novo no Agent Framework, consulte Criar e executar um agente com o Agent Framework.


using Azure.AI.OpenAI;
using Azure.Core;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Purview;
using Microsoft.Extensions.AI;
using OpenAI;

string endpoint = Environment.GetEnvironmentVariable("AZURE_OPENAI_ENDPOINT") ?? throw new InvalidOperationException("AZURE_OPENAI_ENDPOINT is not set.");
string deploymentName = Environment.GetEnvironmentVariable("AZURE_OPENAI_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
string purviewClientAppId = Environment.GetEnvironmentVariable("PURVIEW_CLIENT_APP_ID") ?? throw new InvalidOperationException("PURVIEW_CLIENT_APP_ID is not set.");

TokenCredential browserCredential = new InteractiveBrowserCredential(
    new InteractiveBrowserCredentialOptions
    {
        ClientId = purviewClientAppId
    });

AIAgent agent = new AzureOpenAIClient(
    new Uri(endpoint),
    new DefaultAzureCredential())
    .GetChatClient(deploymentName)
    .AsAIAgent("You are a secure assistant.")
    .AsBuilder()
    .WithPurview(browserCredential, new PurviewSettings("My Secure Agent"))
    .Build();

AgentResponse response = await agent.RunAsync("Summarize zero trust in one sentence.").ConfigureAwait(false);
Console.WriteLine(response);

Aviso

DefaultAzureCredential é conveniente para o desenvolvimento, mas requer uma consideração cuidadosa na produção. Em produção, considere o uso de uma credencial específica (por exemplo, ManagedIdentityCredential) para evitar problemas de latência, investigação de credenciais não intencionais e possíveis riscos de segurança de mecanismos de fallback.

import asyncio
import os
from agent_framework import Agent, Message, Role
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework.microsoft import PurviewPolicyMiddleware, PurviewSettings
from azure.identity import AzureCliCredential, InteractiveBrowserCredential

# Set default environment variables if not already set
os.environ.setdefault("AZURE_OPENAI_ENDPOINT", "<azureOpenAIEndpoint>")
os.environ.setdefault("AZURE_OPENAI_CHAT_DEPLOYMENT_NAME", "<azureOpenAIChatDeploymentName>")

async def main():
    chat_client = AzureOpenAIChatClient(credential=AzureCliCredential())
    purview_middleware = PurviewPolicyMiddleware(
        credential=InteractiveBrowserCredential(
            client_id="<clientId>",
        ),
        settings=PurviewSettings(app_name="My Secure Agent")
    )
    agent = Agent(
        chat_client=chat_client,
        instructions="You are a secure assistant.",
        middleware=[purview_middleware]
    )
    response = await agent.run(Message(role='user', contents=["Summarize zero trust in one sentence."]))
    print(response)

  if __name__ == "__main__":
    asyncio.run(main())

Próximas etapas

Agora que você adicionou o código acima ao agente, execute as seguintes etapas para testar a integração do Microsoft Purview ao seu código:

  1. Entra registration: registre seu agente e adicione as permissões necessárias do Microsoft Graph (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) ao Principal de Serviço. Para obter mais informações, consulte Registrar um aplicativo no Microsoft Entra ID e tipo de recurso dataSecurityAndGovernance. Você precisará da ID do aplicativo Microsoft Entra na próxima etapa.
  2. Políticas do Purview: configurar políticas do Purview usando a ID do aplicativo Microsoft Entra para permitir que os dados de comunicação do agente fluam para o Purview. Para obter mais informações, consulte Configurar o Microsoft Purview.

Recursos