Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Po utworzeniu agenta należy go hostować, aby użytkownicy i inni agenci mogli z nim korzystać.
Opcje hostingu
| Option | Opis | Najlepsze dla |
|---|---|---|
| Protokół A2A | Uwidaczniaj agentów za pośrednictwem protokołu Agent-to-Agent | Systemy z wieloma agentami |
| Punkty końcowe kompatybilne z OpenAI | Uwidaczniaj agentów za pośrednictwem interfejsów API uzupełniania czatu lub odpowiedzi | Klienci zgodni z interfejsem OpenAI |
| Azure Functions (Durable) | Uruchamianie agentów jako trwałych funkcji platformy Azure | Zadania bezserwerowe, długotrwałe |
| protokółAG-UI | Tworzenie internetowych aplikacji agenta sztucznej inteligencji | Frontony internetowe |
Hosting w ASP.NET Core
Struktura agentów udostępnia biblioteki hostingu, które umożliwiają integrowanie agentów sztucznej inteligencji z aplikacjami ASP.NET Core. Te biblioteki upraszczają rejestrowanie, konfigurowanie i udostępnianie agentów za pomocą różnych protokołów.
Zgodnie z opisem w Omówienie agentów, AIAgent jest podstawową koncepcją Agent Framework. Definiuje "otokę LLM", która przetwarza dane wejściowe użytkownika, podejmuje decyzje, wywołuje narzędzia i wykonuje dodatkową pracę w celu wykonywania akcji i generowania odpowiedzi. Uwidacznianie agentów sztucznej inteligencji z aplikacji ASP.NET Core nie jest proste. Biblioteki hostingu rozwiążą ten problem, rejestrując agentów sztucznej inteligencji w kontenerze iniekcji zależności, umożliwiając rozpoznawanie i używanie ich w usługach aplikacji. Umożliwiają one również zarządzanie zależnościami agenta, takimi jak narzędzia i magazyn sesji, z tego samego kontenera. Agenci mogą być hostowani obok infrastruktury aplikacji niezależnie od używanych protokołów. Podobnie przepływy pracy mogą być hostowane i korzystać ze wspólnej infrastruktury aplikacji.
Podstawowa biblioteka hostingu
Biblioteka Microsoft.Agents.AI.Hosting jest podstawą hostowania agentów sztucznej inteligencji w ASP.NET Core. Udostępnia rozszerzenia IHostApplicationBuilder do rejestrowania i konfigurowania agentów i przepływów pracy AI. W ASP.NET Core IHostApplicationBuilder jest podstawowym typem reprezentującym konstruktora hostowanych aplikacji i usług, zarządzanie konfiguracją, rejestrowaniem, okresem istnienia i nie tylko.
Przed skonfigurowaniem agentów lub przepływów pracy zarejestruj IChatClient w kontenerze wstrzykiwania zależności. W poniższych przykładach jest on zarejestrowany jako kluczowy singleton pod nazwą chat-model:
// 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);
Dodaj agenta AI
Zarejestruj agenta sztucznej inteligencji za pomocą iniekcji zależności:
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() zwraca metodę IHostedAgentBuilder, która udostępnia metody rozszerzenia do konfigurowania agenta. Na przykład, możesz dodać narzędzia do agenta:
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
Możesz również skonfigurować magazyn sesji (magazyn danych konwersacji):
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Rejestrowanie przepływów pracy, które koordynują wielu agentów. Przepływ pracy to zasadniczo "graf", w którym każdy węzeł jest elementem AIAgent, a agenci komunikują się ze sobą.
W tym przykładzie dwóch agentów działa sekwencyjnie. Dane wejściowe użytkownika są najpierw wysyłane do agent-1elementu , który generuje odpowiedź i wysyła ją do elementu agent-2. Następnie przepływ pracy zwraca ostateczną odpowiedź. Istnieje również BuildConcurrent metoda, która tworzy współbieżny przepływ pracy 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]);
});
Uwidaczniaj przepływ pracy jako AIAgent
Aby używać integracji protokołów (takich jak A2A lub OpenAI) z przepływem pracy, przekonwertuj go na autonomicznego agenta. Obecnie przepływy pracy nie zapewniają samodzielnie podobnych możliwości integracji, więc ten krok konwersji jest wymagany:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Szczegóły implementacji
Biblioteki hostingu działają jako adaptery protokołów, które łączą zewnętrzne protokoły komunikacyjne i wewnętrzną AIAgent implementację ramy działania agenta. W przypadku korzystania z biblioteki integracji hostingu, biblioteka pobiera zarejestrowane AIAgent z iniekcji zależności, opakowuje je za pomocą oprogramowania middleware specyficznego dla protokołu w celu tłumaczenia przychodzących żądań i odpowiedzi wychodzących, a następnie wywołuje AIAgent w celu przetworzenia żądań. Ta architektura utrzymuje implementację agenta niezależną od protokołu.
Na przykład przy użyciu biblioteki hostingu ASP.NET Core z adapterem protokołu 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();
Tip
Zapoznaj się z przykładami Durable Azure Functions dotyczącymi hostingu bezserwerowego.
Zainstaluj pakiet hostingowy usługi Azure Functions:
pip install agent-framework-azurefunctions --pre
Utwórz 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.",
)
Zarejestruj agenta przy użyciu polecenia 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)
Uruchom lokalnie za pomocą narzędzi Azure Functions Core Tools:
func start
Następnie wywołaj:
curl -X POST http://localhost:7071/api/agents/Joker/run \
-H "Content-Type: text/plain" \
-d "Tell me a short joke about cloud computing."
Tip
Zapoznaj się z pełnym przykładem kompletnego pliku możliwego do uruchomienia i przykładami hostowania usługi Azure Functions , aby uzyskać więcej wzorców.
Dalsze kroki
Głębiej:
- Protokół A2A — udostępniaj i wykorzystuj agentów poprzez A2A
- Azure Functions — hostowanie bezserwerowego agenta
- AG-UI Protocol — internetowe interfejsy użytkownika agenta
- Dokumentacja agentów hostowanych w Foundry — zrozumieć agentów hostowanych w Azure AI Foundry
- Przykładowe agenty hostowane w Foundry (Python) — uruchomienie przykładu agenta hostowanego w frameworku Agentów typu end-to-end