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.
Jakmile vytvoříte agenta, musíte ho hostovat, aby s ním mohli pracovat uživatelé a další agenti.
Možnosti hostování
| Možnost | Description | Nejlepší pro |
|---|---|---|
| Protokol A2A | Expozice agentů prostřednictvím protokolu Agent-to-Agent | Systémy s více agenty |
| Koncové body kompatibilní s OpenAI | Zpřístupnění agentů pomocí rozhraní API pro dokončování chatu nebo odpovědi | Klienti kompatibilní s OpenAI |
| Azure Functions (Durable) | Spouštění agentů jako trvalých funkcí Azure | Bezserverové dlouhotrvající úlohy |
| Protokol AG-UI | Vytváření webových aplikací agenta AI | Webové front-endy |
Hostování v ASP.NET Core
Agent Framework poskytuje hostitelské knihovny, které umožňují integrovat agenty AI do aplikací ASP.NET Core. Tyto knihovny zjednodušují registraci, konfiguraci a zveřejnění agentů prostřednictvím různých protokolů.
Jak je popsáno v přehledu agentů, AIAgent je základním konceptem rozhraní Agent Framework. Definuje "obálku LLM", která zpracovává vstupy uživatelů, provádí rozhodnutí, volá nástroje a provádí další práci pro provádění akcí a generování odpovědí. Zveřejnění agentů AI z vaší aplikace ASP.NET Core není triviální. Hostitelské knihovny to řeší registrací agentů AI v kontejneru injektáže závislostí, což vám umožní je vyřešit a používat ve vašich aplikačních službách. Umožňují také spravovat závislosti agentů, jako jsou nástroje a úložiště relací, ze stejného kontejneru. Agenty je možné hostovat společně s infrastrukturou aplikací nezávisle na protokolech, které používají. Podobně je možné pracovní postupy hostovat a využívat společnou infrastrukturu vaší aplikace.
Základní knihovna hostování
Knihovna Microsoft.Agents.AI.Hosting je základem pro hostování agentů AI v ASP.NET Core. Poskytuje rozšíření pro registraci a konfiguraci agentů umělé inteligence a pracovních postupů pro IHostApplicationBuilder. V ASP.NET Core je IHostApplicationBuilder základním typem, který představuje tvůrce pro hostované aplikace a služby a spravuje konfiguraci, protokolování, životní cyklus a další.
Před konfigurací agentů nebo pracovních postupů zaregistrujte IChatClient v kontejneru pro injekci závislostí. V následujících příkladech je pod názvem chat-model registrován jako klíčový singleton:
// endpoint is of 'https://<your-own-foundry-endpoint>.openai.azure.com/' format
// deploymentName is 'gpt-4o-mini' for example
IChatClient chatClient = new AzureOpenAIClient(
new Uri(endpoint),
new DefaultAzureCredential())
.GetChatClient(deploymentName)
.AsIChatClient();
builder.Services.AddSingleton(chatClient);
PřidatAIAgent
Registrace agenta AI pomocí injektáže závislostí:
var pirateAgent = builder.AddAIAgent(
"pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.",
chatClientServiceKey: "chat-model");
Metoda AddAIAgent() vrátí metodu IHostedAgentBuilder, která poskytuje rozšiřující metody pro konfiguraci agenta. Do agenta můžete například přidat nástroje:
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithAITool(new MyTool()); // MyTool is a custom type derived from AITool
Můžete také nakonfigurovat úložiště relací (úložiště pro data konverzací):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Zaregistrujte pracovní postupy, které koordinuje více agentů. Pracovní postup je v podstatě "graf", kde každý uzel je AIAgent, a agenti spolu komunikují.
V tomto příkladu pracují dva agenti postupně. Uživatelský vstup se nejprve odešle agent-1, který vytvoří odpověď a odešle ji do agent-2. Pracovní postup pak vypíše konečnou odpověď. Existuje také BuildConcurrent metoda, která vytvoří souběžný pracovní postup agenta.
builder.AddAIAgent("agent-1", instructions: "you are agent 1!");
builder.AddAIAgent("agent-2", instructions: "you are agent 2!");
var workflow = builder.AddWorkflow("my-workflow", (sp, key) =>
{
var agent1 = sp.GetRequiredKeyedService<AIAgent>("agent-1");
var agent2 = sp.GetRequiredKeyedService<AIAgent>("agent-2");
return AgentWorkflowBuilder.BuildSequential(key, [agent1, agent2]);
});
Zpřístupnit pracovní postup jako agent AIAgent
Pokud chcete použít integrace protokolů (například A2A nebo OpenAI) s pracovním postupem, převeďte je na samostatného agenta. Pracovní postupy v současné době neposkytují podobné možnosti integrace sami, takže tento krok převodu je nutný:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Podrobnosti implementace
Hostitelské knihovny fungují jako adaptéry protokolu, které přemostňují externí komunikační protokoly a interní implementaci Agent Frameworku. Pokud používáte integrační knihovnu pro hostování, knihovna načte zaregistrovanou AIAgent z injektáže závislostí, obalí ji do middlewaru specifického pro protokol, jenž překládá příchozí požadavky a odchozí odpovědi, a volá AIAgent, aby zpracovalo požadavky. Tato architektura udržuje implementaci agenta nezávislou na protokolu.
Například pomocí knihovny hostování ASP.NET Core s adaptérem protokolu A2A:
// Register the agent
var pirateAgent = builder.AddAIAgent("pirate",
instructions: "You are a pirate. Speak like a pirate",
description: "An agent that speaks like a pirate.");
// Expose via a protocol (e.g. A2A)
builder.Services.AddA2AServer();
var app = builder.Build();
app.MapA2AServer();
app.Run();
Návod
Podívejte se na ukázky Durable Azure Functions pro hostování bez serveru.
Nainstalujte balíček pro hostování azure Functions:
pip install agent-framework-azurefunctions --pre
Vytvoření agenta:
from agent_framework.azure import AgentFunctionApp, AzureOpenAIChatClient
from azure.identity import AzureCliCredential
# 1. Instantiate the agent with the chosen deployment and instructions.
def _create_agent() -> Any:
"""Create the Joker agent."""
return AzureOpenAIChatClient(credential=AzureCliCredential()).as_agent(
name="Joker",
instructions="You are good at telling jokes.",
)
Zaregistrujte agenta v AgentFunctionApp:
# 2. Register the agent with AgentFunctionApp so Azure Functions exposes the required triggers.
app = AgentFunctionApp(agents=[_create_agent()], enable_health_check=True, max_poll_retries=50)
Spouštět místně pomocí nástrojů Azure Functions Core Tools:
func start
Pak volejte:
curl -X POST http://localhost:7071/api/agents/Joker/run \
-H "Content-Type: text/plain" \
-d "Tell me a short joke about cloud computing."
Návod
Podívejte se na úplnou ukázku kompletního spustitelného souboru a ukázky hostování Azure Functions pro další vzory.
Další kroky
Jděte hlouběji:
- Protokol A2A – zveřejnění a využívání agentů prostřednictvím A2A
- Azure Functions – hostování bezserverového agenta
- protokolAG-UI – uživatelská rozhraní agenta založená na webu
- Dokumentace k hostovaným agentům Foundry – vysvětlení hostovaných agentů v Azure AI Foundry
- Foundry Hosted Agents sample (Python) – spusťte kompletní ukázku hostovaného agenta pomocí Agent Framework