Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Nachdem Sie Ihren Agent erstellt haben, müssen Sie ihn hosten, damit Benutzer und andere Agents damit interagieren können.
Hostingoptionen
| Option | Description | Am besten geeignet für |
|---|---|---|
| A2A-Protokoll | Agenten über das Agent-zu-Agent-Protokoll freigeben | Multi-Agent-Systeme |
| OpenAI-Compatible Endpunkte | Verfügbarmachen von Agents über Chatabschluss- oder Antwort-APIs | OpenAI-kompatible Klienten |
| Azure-Funktionen (dauerhaft) | Ausführen von Agents als dauerhafte Azure-Funktionen | Serverlose, lange ausgeführte Aufgaben |
| AG-UI Protokoll | Erstellen webbasierter KI-Agent-Anwendungen | Web-Frontends |
Hosting in ASP.NET Core
Das Agent Framework bietet Hostingbibliotheken, mit denen Sie KI-Agents in ASP.NET Core-Anwendungen integrieren können. Diese Bibliotheken vereinfachen das Registrieren, Konfigurieren und Verfügbarmachen von Agents über verschiedene Protokolle.
Wie in der Übersicht der Agents beschrieben, AIAgent ist das grundlegende Konzept des Agent Frameworks. Es definiert einen "LLM-Wrapper", der Benutzereingaben verarbeitet, Entscheidungen trifft, Tools aufruft und zusätzliche Aufgaben ausführt, um Aktionen auszuführen und Antworten zu generieren. Das Exposieren von KI-Agents aus Ihrer ASP.NET Core-Anwendung ist nicht trivial. Die Hostingbibliotheken lösen dies durch das Registrieren von KI-Agenten in einen Dependency Injection-Container, sodass Sie sie in Ihren Anwendungsdiensten auflösen und anwenden können. Außerdem können Sie Agentabhängigkeiten wie Tools und Sitzungsspeicher aus demselben Container verwalten. Agents können zusammen mit Ihrer Anwendungsinfrastruktur gehostet werden, unabhängig von den verwendeten Protokollen. Ebenso können Workflows gehostet werden und die gemeinsame Infrastruktur Ihrer Anwendung nutzen.
Kernhostingbibliothek
Die Microsoft.Agents.AI.Hosting Bibliothek ist die Grundlage für das Hosten von KI-Agents in ASP.NET Core. Es bietet Erweiterungen, um KI-Agents und -Workflows zu registrieren und zu konfigurieren. In ASP.NET Core ist der grundlegende Typ IHostApplicationBuilder, der den Builder für gehostete Anwendungen und Dienste darstellt, der Konfiguration, Protokollierung, Lebensdauer und mehr verwaltet.
Registrieren Sie einen IChatClient im Abhängigkeitsinjektionscontainer, bevor Sie Agents oder Workflows konfigurieren. In den folgenden Beispielen wird es als Keyed Singleton unter dem Namen chat-modelregistriert:
// 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);
AddAIAgent
Registrieren eines KI-Agents mit Abhängigkeitsinjektion:
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");
Die AddAIAgent() Methode gibt eine IHostedAgentBuilder, die Erweiterungsmethoden zum Konfigurieren des Agents bereitstellt. Sie können dem Agent z. B. Tools hinzufügen:
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
Den Sitzungsspeicher (Speicher für Gesprächsdaten) können Sie auch konfigurieren.
var pirateAgent = builder.AddAIAgent("pirate", instructions: "You are a pirate. Speak like a pirate")
.WithInMemorySessionStore();
AddWorkflow
Registrieren Sie Workflows, die mehrere Agents koordinieren. Ein Workflow ist im Wesentlichen ein "Diagramm", in dem jeder Knoten ein AIAgentist, und die Agents kommunizieren miteinander.
In diesem Beispiel arbeiten zwei Agents sequenziell. Die Benutzereingabe wird zuerst an agent-1 gesendet, welches eine Antwort erzeugt und an agent-2 sendet. Der Workflow gibt dann die endgültige Antwort aus. Es gibt auch eine BuildConcurrent Methode, mit der ein gleichzeitiger Agent-Workflow erstellt wird.
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]);
});
Verfügbarmachen von Workflow als AIAgent
Um Protokollintegrationen (z. B. A2A oder OpenAI) mit einem Workflow zu verwenden, konvertieren Sie sie in einen eigenständigen Agent. Derzeit stellen Workflows keine ähnlichen Integrationsfunktionen selbst bereit, daher ist dieser Konvertierungsschritt erforderlich:
var workflowAsAgent = builder
.AddWorkflow("science-workflow", (sp, key) => { ... })
.AddAsAIAgent(); // Now the workflow can be used as an agent
Implementierungsdetails
Die Hostingbibliotheken fungieren als Protokolladapter, die externe Kommunikationsprotokolle und die interne AIAgent Implementierung des Agent-Frameworks überbrücken. Wenn Sie eine Hostintegrationsbibliothek verwenden, ruft die Bibliothek die registrierte AIAgent aus der Abhängigkeitsinjektion ab, umschließt sie mit protokollspezifischer Middleware, um eingehende Anforderungen und ausgehende Antworten zu übersetzen, und ruft AIAgent zur Verarbeitung der Anforderungen auf. Diese Architektur sorgt dafür, dass Ihre Agentenimplementierung protokollunabhängig bleibt.
Verwenden Sie beispielsweise die ASP.NET Core-Hostingbibliothek mit dem A2A-Protokolladapter:
// 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();
Tipp
In den Beispielen für dauerhafte Azure-Funktionen finden Sie Serverlose Hostingbeispiele.
Installieren Sie das Azure Functions-Hostingpaket:
pip install agent-framework-azurefunctions --pre
Erstellen eines Agents:
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.",
)
Registrieren Sie den Agent bei 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)
Lokal mit Azure Functions Core Tools ausführen:
func start
Rufen Sie dann Folgendes auf:
curl -X POST http://localhost:7071/api/agents/Joker/run \
-H "Content-Type: text/plain" \
-d "Tell me a short joke about cloud computing."
Tipp
Im vollständigen Beispiel finden Sie die vollständige runnable Datei und die Azure Functions-Hostingbeispiele für weitere Muster.
Nächste Schritte
Gehen Sie tiefer:
- A2A-Protokoll – Bereitstellen und Verwenden von Agents über A2A
- Azure-Funktionen – Serverloses Agenthosting
- AG-UI Protokoll – webbasierte Agent-UIs
- Dokumentation zu Foundry Hosted Agents – Verständnis von gehosteten Agents in Azure AI Foundry
- Foundry Hosted Agents-Beispiel (Python) – Ausführen eines End-to-End-Beispiels für ein Agenten-Framework mit gehosteten Agenten.