Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft Purview tillhandahåller datasäkerhets-, efterlevnads- och styrningsfunktioner i företagsklass för AI-program. Genom att integrera Purview-API:er i Agent Framework SDK kan utvecklare skapa intelligenta agenter som är säkra avsiktligt, samtidigt som känsliga data i frågor och svar skyddas och är kompatibla med organisationens principer.
Varför integrera Purview med Agent Framework?
- Förhindra känsliga dataläckor: Infogad blockering av känsligt innehåll baserat på principer för dataförlustskydd (DLP).
- Aktivera styrning: Logga AI-interaktioner i Purview för granskning, kommunikationsefterlevnad, hantering av insiderrisk, eDiscovery och datalivscykelhantering.
- Påskynda implementeringen: Företagskunder kräver efterlevnad för AI-appar. Purview-integrering avblockar distributionen.
Förutsättningar
Kontrollera att du har följande innan du börjar:
- Microsoft Azure-prenumeration med Microsoft Purview konfigurerad.
- Microsoft 365-prenumeration med en E5-licens och faktureringsplan med betala efter användning.
- För testning kan du använda en testmiljö för Microsoft 365 Developer Program. Mer information finns i Gå med i Microsoft 365 Developer Program.
- Agent Framework SDK: Så här installerar du Agent Framework SDK:
- Python: Kör
pip install agent-framework. - .NET: Installera från NuGet.
- Python: Kör
Integrera Microsoft Purview i din agent
I agentens pipeline för mellanprogram för arbetsflöden kan du lägga till Microsoft Purview-principmellanprogram för att fånga upp uppmaningar och svar för att avgöra om de uppfyller de principer som har konfigurerats i Microsoft Purview. Agent Framework SDK kan fånga upp uppmaningar och svar från agent till agent eller slutanvändarchattklient.
Följande kodexempel visar hur du lägger till Microsoft Purview-principmellanprogrammet i din agentkod. Om du är nybörjare på Agent Framework kan du läsa Skapa och köra en agent med Agent Framework.
using Azure.AI.Projects;
using Azure.Core;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Purview;
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 AIProjectClient(
new Uri(endpoint),
new DefaultAzureCredential())
.AsAIAgent(
model: deploymentName,
instructions: "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);
Varning
DefaultAzureCredential är praktiskt för utveckling men kräver noggrant övervägande i produktion. I produktion bör du överväga att använda en specifik autentiseringsuppgift (t.ex. ManagedIdentityCredential) för att undvika problem med svarstid, oavsiktlig avsökning av autentiseringsuppgifter och potentiella säkerhetsrisker från reservmekanismer.
import asyncio
import os
from agent_framework import Agent, Message
from agent_framework.openai import OpenAIChatCompletionClient
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_COMPLETION_MODEL", "<azureOpenAIChatDeploymentName>")
async def main():
chat_client = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=AzureCliCredential(),
)
purview_middleware = PurviewPolicyMiddleware(
credential=InteractiveBrowserCredential(
client_id="<clientId>",
),
settings=PurviewSettings(app_name="My Secure Agent")
)
agent = Agent(
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())
Utvärdering och efterlevnadskontroll av Python-innehåll
Mellanprogrammet utvärderar varje icke-tomt meddelandeinnehållsobjekt, inte bara oformaterad text. Text och resonemangstext utvärderas som text. Base64-data-URI-nyttolaster utvärderas som binärt innehåll. Data som inte är i base64-format, URI-innehåll, funktionsanrop, funktionsresultat och annat strukturerat innehåll serialiseras som text så att det inte hoppas över. Endast tomt innehåll och usage innehåll utelämnas.
Policyutvärderingen ger avslag om mellanprogrammet inte kan fastställa ett användar-ID, en klientorganisation eller programmets plats. Härled identitet från en validerad token på serversidan i stället för anroparstyrda meddelandefält. Ange ignore_exceptions endast när du avsiktligt föredrar tillgänglighet framför tillämpning. Den här inställningen kringgår tillämpningen för varje fel.
Välj placering för Python-middleware
PurviewPolicyMiddleware och PurviewChatPolicyMiddleware framtvingar samma principer vid olika pipelinegränser:
| Behavior | Mellanprogram för agent | middleware för chatt |
|---|---|---|
| Utvärderingsomfång | Utvärderar anroparens indata och slutligt svar en gång per agentkörning. | Utvärderar den förberedda begäran och det förberedda svaret för varje modellanrop. |
| Verktygs- och kontextdata | Utvärderar inte utdata från kontextprovidern eller ett modellverktygsanrop innan verktyget körs. | Utvärderar utdata från kontextprovidern, återspelad historik och modellverktygsanrop före körning. Verktygsresultat utvärderas vid nästa modellanrop. |
| Historik över blockerade svar | Det ursprungliga svaret kanske redan har lagrats innan mellanprogrammet ersätter det för anroparen. | Ersättningen är tillgänglig innan Agent Framework lagrar turen. Providerhanterad lagring kan fortfarande behålla det ursprungliga svaret. |
Använd PurviewChatPolicyMiddleware för dataförlustskydd när principen måste omfatta den fullständiga modellbegäran. Använd PurviewPolicyMiddleware när en enda kontroll vid agentkörningsgränsen räcker. Placera Purview-mellanprogrammet sist i någon av mellanprogramslistorna så att senare mellanprogram inte kan ersätta innehåll när Purview har utvärderat det.
Båda mellanprogramtyperna buffrar ett strömmat svar i sin helhet och utvärderar det innan någon uppdatering släpps. Strömning levererar därför inte innehåll stegvis medan Purview-mellanprogram är aktiverad.
Nästa steg
Nu när du har lagt till koden ovan i din agent utför du följande steg för att testa integreringen av Microsoft Purview i koden:
- Entra-registrering: Registrera din agent och lägg till nödvändiga Microsoft Graph-behörigheter (ProtectionScopes.Compute.All, ContentActivity.Write, Content.Process.All) i tjänstens huvudnamn. Mer information finns i Registrera en applikation i Microsoft Entra ID och resurstypen dataSecurityAndGovernance. Du behöver Microsoft Entra-app-ID:t i nästa steg.
- Purview-principer: Konfigurera Purview-principer med hjälp av Microsoft Entra-app-ID:t för att göra det möjligt för agentkommunikationsdata att flöda till Purview. Mer information finns i Konfigurera Microsoft Purview.
Resources
- Nuget: Microsoft. Agents.AI.Purview
- Github: Microsoft. Agents.AI.Purview
- Exempel: AgentWithPurview
Anmärkning
Go-stöd för den här funktionen kommer snart. Se Agent Framework Go-lagringsplatsen för den senaste statusen.