Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento kurz ukazuje, jak integrovat agenty AI do pracovních postupů pomocí rozhraní Agent Framework. Naučíte se vytvářet pracovní postupy, které využívají sílu specializovaných agentů umělé inteligence pro vytváření, kontrolu a další úlohy spolupráce.
Co budete vytvářet
Vytvoříte pracovní postup, který:
- Používá službu agenta Azure Foundry k vytváření inteligentních agentů.
- Implementuje francouzského překladového agenta, který překládá vstup do francouzštiny.
- Implementuje agenta překladu španělštiny, který překládá francouzštinu do španělštiny.
- Implementuje agenta překladu v angličtině, který překládá španělštinu zpět do angličtiny.
- Připojuje agenty v sekvenčním řetězci pracovního postupu.
- Streamuje aktualizace v reálném čase, když agenti zpracovávají požadavky.
- Demonstruje správné vyčištění prostředků pro agenty Azure Foundry.
Pokryté koncepty
Požadavky
- Sada .NET 8.0 SDK nebo novější
- Nakonfigurovaný koncový bod a model projektu Azure Foundry
- Nainstalované a ověřené rozhraní příkazového řádku Azure(pro ověřování přihlašovacích údajů Azure)
- Nová konzolová aplikace
Krok 1: Instalace balíčků NuGet
Nejprve nainstalujte požadované balíčky pro váš projekt .NET:
dotnet add package Azure.AI.Agents.Persistent --prerelease
dotnet add package Azure.Identity
dotnet add package Microsoft.Agents.AI.AzureAI --prerelease
dotnet add package Microsoft.Agents.AI.Workflows --prerelease
Krok 2: Nastavení klienta Azure Foundry
Nakonfigurujte klienta Azure Foundry s proměnnými prostředí a ověřováním:
using Azure.AI.Agents.Persistent;
using Azure.Identity;
using Microsoft.Agents.AI;
using Microsoft.Agents.AI.Workflows;
using Microsoft.Extensions.AI;
public static class Program
{
private static async Task Main()
{
// Set up the Azure OpenAI client
var endpoint = Environment.GetEnvironmentVariable("AZURE_AI_PROJECT_ENDPOINT")
?? throw new InvalidOperationException("AZURE_AI_PROJECT_ENDPOINT is not set.");
var deploymentName = Environment.GetEnvironmentVariable("AZURE_AI_MODEL_DEPLOYMENT_NAME") ?? "gpt-4o-mini";
var persistentAgentsClient = new PersistentAgentsClient(endpoint, new AzureCliCredential());
Krok 3: Vytvoření metody agenta factory
Implementujte pomocnou metodu pro vytvoření agentů Azure Foundry s konkrétními pokyny:
/// <summary>
/// Creates a translation agent for the specified target language.
/// </summary>
/// <param name="targetLanguage">The target language for translation</param>
/// <param name="persistentAgentsClient">The PersistentAgentsClient to create the agent</param>
/// <param name="model">The model to use for the agent</param>
/// <returns>A ChatClientAgent configured for the specified language</returns>
private static async Task<ChatClientAgent> GetTranslationAgentAsync(
string targetLanguage,
PersistentAgentsClient persistentAgentsClient,
string model)
{
var agentMetadata = await persistentAgentsClient.Administration.CreateAgentAsync(
model: model,
name: $"{targetLanguage} Translator",
instructions: $"You are a translation assistant that translates the provided text to {targetLanguage}.");
return await persistentAgentsClient.GetAIAgentAsync(agentMetadata.Value.Id);
}
}
Krok 4: Vytvoření specializovaných agentů Azure Foundry
Pomocí pomocné metody vytvořte tři agenty překladu:
// Create agents
AIAgent frenchAgent = await GetTranslationAgentAsync("French", persistentAgentsClient, deploymentName);
AIAgent spanishAgent = await GetTranslationAgentAsync("Spanish", persistentAgentsClient, deploymentName);
AIAgent englishAgent = await GetTranslationAgentAsync("English", persistentAgentsClient, deploymentName);
Krok 5: Sestavení pracovního postupu
Připojte agenty v sekvenčním pracovním postupu pomocí nástroje WorkflowBuilder:
// Build the workflow by adding executors and connecting them
var workflow = new WorkflowBuilder(frenchAgent)
.AddEdge(frenchAgent, spanishAgent)
.AddEdge(spanishAgent, englishAgent)
.Build();
Krok 6: Spuštění se streamováním
Spuštěním pracovního postupu se streamováním sledujte aktualizace ze všech agentů v reálném čase:
// Execute the workflow
await using StreamingRun run = await InProcessExecution.RunStreamingAsync(workflow, new ChatMessage(ChatRole.User, "Hello World!"));
// Must send the turn token to trigger the agents.
// The agents are wrapped as executors. When they receive messages,
// they will cache the messages and only start processing when they receive a TurnToken.
await run.TrySendMessageAsync(new TurnToken(emitEvents: true));
await foreach (WorkflowEvent evt in run.WatchStreamAsync())
{
if (evt is AgentResponseUpdateEvent executorComplete)
{
Console.WriteLine($"{executorComplete.ExecutorId}: {executorComplete.Data}");
}
}
Krok 7: Vyčištění prostředků
Po použití správně vyčistíte agenty Azure Foundry:
// Cleanup the agents created for the sample.
await persistentAgentsClient.Administration.DeleteAgentAsync(frenchAgent.Id);
await persistentAgentsClient.Administration.DeleteAgentAsync(spanishAgent.Id);
await persistentAgentsClient.Administration.DeleteAgentAsync(englishAgent.Id);
}
Jak to funguje
-
Nastavení klienta Azure Foundry: Používá
PersistentAgentsClientpomocí přihlašovacích údajů Azure CLI k autentizaci - Vytvoření agenta: Vytvoří v Azure Foundry trvalé agenty s konkrétními pokyny pro překlad.
- Sekvenční zpracování: Francouzský agent nejprve překládá vstup, pak španělského agenta, pak anglického agenta.
-
Vzor tokenu turn: Agenti ukládají zprávy do mezipaměti a zpracovávají pouze v případech, kdy obdrží
TurnToken -
Aktualizace přenosu:
AgentResponseUpdateEventUmožňuje aktualizace tokenů v reálném čase, zatímco agenti generují odpovědi. - Správa prostředků: Řádné vyčištění agentů Azure Foundry pomocí rozhraní API pro správu
Klíčové koncepty
- Služba agenta Azure Foundry: Cloudoví agenti umělé inteligence s pokročilými možnostmi odůvodnění
- PersistentAgentsClient: Klient pro vytváření a správu agentů v Azure Foundry
-
WorkflowEvent: Výstupní události (
type="output") obsahují výstupní data agenta (AgentResponseUpdatepro streamování,AgentResponsepro jiné než streamování) - TurnToken: Signál, který aktivuje zpracování agenta po ukládání zpráv do mezipaměti
- Sekvenční pracovní postup: Agenti připojeni v potrubí, kde výstup proudí od jednoho k dalšímu
Dokončení implementace
Kompletní pracovní implementaci tohoto pracovního postupu agentů Azure Foundry najdete v ukázce FoundryAgent Program.cs v úložišti Agent Framework.
Co budete vytvářet
Vytvoříte pracovní postup, který:
- Používá se k vytváření inteligentních agentů.
AzureOpenAIResponsesClient - Implementuje agenta Writer, který vytváří obsah na základě výzev.
- Implementuje agenta revidujících, který poskytuje zpětnou vazbu k obsahu.
- Připojuje agenty v sekvenčním řetězci pracovního postupu.
- Streamuje aktualizace v reálném čase, když agenti zpracovávají požadavky.
Pokryté koncepty
Požadavky
- Python 3.10 nebo novější
- Nainstalovaná architektura agenta:
pip install agent-framework --pre - Odpovědi Azure OpenAI nakonfigurované se správnými proměnnými prostředí
- Ověřování Azure CLI:
az login
Krok 1: Import požadovaných závislostí
Začněte importem potřebných komponent pro pracovní postupy a agenty odpovědí Azure OpenAI:
import asyncio
import os
from agent_framework import AgentResponseUpdate, WorkflowBuilder
from agent_framework.azure import AzureOpenAIResponsesClient
from azure.identity import AzureCliCredential
Krok 2: Vytvoření klienta odpovědí Azure OpenAI
Vytvořte jednoho sdíleného klienta, který můžete použít k vytvoření více agentů:
async def main() -> None:
client = AzureOpenAIResponsesClient(
project_endpoint=os.environ["AZURE_AI_PROJECT_ENDPOINT"],
deployment_name=os.environ["AZURE_AI_MODEL_DEPLOYMENT_NAME"],
credential=AzureCliCredential(),
)
Krok 3: Vytvoření specializovaných agentů
Vytvořte dva specializované agenty pro vytváření obsahu a kontrolu:
# Create a Writer agent that generates content
writer_agent = client.as_agent(
name="Writer",
instructions=(
"You are an excellent content writer. You create new content and edit contents based on the feedback."
),
)
# Create a Reviewer agent that provides feedback
reviewer_agent = client.as_agent(
name="Reviewer",
instructions=(
"You are an excellent content reviewer. "
"Provide actionable feedback to the writer about the provided content. "
"Provide the feedback in the most concise manner possible."
),
)
Krok 4: Sestavení pracovního postupu
Připojte agenty v sekvenčním pracovním postupu pomocí tvůrce:
# Build the workflow with agents as executors
workflow = WorkflowBuilder(start_executor=writer_agent).add_edge(writer_agent, reviewer_agent).build()
Krok 5: Spuštění se streamováním
Spusťte pracovní postup s přenosem dat, abyste mohli pozorovat aktualizace v reálném čase od obou agentů.
last_author: str | None = None
events = workflow.run("Create a slogan for a new electric SUV that is affordable and fun to drive.", stream=True)
async for event in events:
if event.type == "output" and isinstance(event.data, AgentResponseUpdate):
update = event.data
author = update.author_name
if author != last_author:
if last_author is not None:
print()
print(f"{author}: {update.text}", end="", flush=True)
last_author = author
else:
print(update.text, end="", flush=True)
Krok 6: Dokončení hlavní funkce
Zahrňte vše v hlavní funkci pomocí správného asynchronního spuštění.
if __name__ == "__main__":
asyncio.run(main())
Jak to funguje
-
Nastavení klienta: Pro ověřování se používá jeden
AzureOpenAIResponsesClients přihlašovacími údaji Azure CLI. - Vytvoření agenta: Vytvoří agenty Writer a Recenzent ze stejné klientské konfigurace.
- Sekvenční zpracování: Agent Writer nejprve vygeneruje obsah a pak ho předá reviznímu agentovi.
-
Streamovací aktualizace: Události výstupu (
type="output") s datyAgentResponseUpdateposkytují aktualizace tokenů v reálném čase, zatímco agenti generují odpovědi.
Klíčové koncepty
- AzureOpenAIResponsesClient: Sdílený klient používaný k vytváření agentů pracovních postupů s konzistentní konfigurací.
-
WorkflowEvent: Výstupní události (
type="output") obsahují výstupní data agenta (AgentResponseUpdatepro streamování,AgentResponsepro jiné než streamování). - Sekvenční pracovní postup: Agenti připojeni v řetězci, kde výstup plyne z jednoho do druhého.
Dokončení implementace
Kompletní funkční implementaci najdete v tématu azure_ai_agents_streaming.py v úložišti Agent Framework.