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.
DevUI ist eine einfache, eigenständige Beispielanwendung für die Ausführung von Agents und Workflows im Microsoft Agent Framework. Es stellt eine Webschnittstelle für interaktive Tests zusammen mit einem openAI-kompatiblen API-Back-End bereit, sodass Sie agents und Workflows, die Sie erstellen, visuell debuggen, testen und durchlaufen können, bevor Sie sie in Ihre Anwendungen integrieren.
Important
DevUI ist eine Beispiel-App , mit der Sie Ihre Agents und Workflows während der Entwicklung visualisieren und debuggen können. Es ist nicht für den Produktionseinsatz vorgesehen.
Installieren der Pakete
Installieren Sie für einen einzelnen .NET-Dienst das DevUI-Paket. Für einen Aspire AppHost, der mehrere Agent-Dienste aggregiert, installieren Sie auch die Aspire-Hosting-Integration.
dotnet add package Microsoft.Agents.AI.DevUI --prerelease
dotnet add package Aspire.Hosting.AgentFramework.DevUI --prerelease
Verwenden von DevUI mit Aspire
Jeder Agentdienst macht OpenAI-Antworten und Unterhaltungsendpunkte verfügbar. Der Aspire AppHost fügt eine DevUI-Ressource hinzu und verbindet die Agent-Dienste.
var writerAgent = builder.AddProject<Projects.WriterAgent>("writer-agent", launchProfileName: "https")
.WithHttpHealthCheck("/health", endpointName: "https")
.WithReference(foundry).WaitFor(foundry);
// Add the editor agent service
var editorAgent = builder.AddProject<Projects.EditorAgent>("editor-agent")
.WithHttpHealthCheck("/health")
.WithReference(foundry).WaitFor(foundry);
// Add DevUI integration that aggregates agents from all agent services.
// Agent metadata is declared here so backends don't need a /v1/entities endpoint.
_ = builder.AddDevUI("devui")
.WithAgentService(writerAgent, agents: [new("writer")]) // the name of the agent should match the agent declaration in WriterAgent/Program.cs
.WithAgentService(editorAgent, agents: [new("editor")]) // the name of the agent should match the agent declaration in EditorAgent/Program.cs
.WaitFor(writerAgent)
.WaitFor(editorAgent);
Die agents: übergebenen WithAgentService Namen müssen mit den in jedem Dienst registrierten AddAIAgent(...) Namen übereinstimmen.
Verfügbarmachen der Agentdienstendpunkte
var builder = WebApplication.CreateBuilder(args);
builder.AddServiceDefaults();
builder.AddAzureChatCompletionsClient(connectionName: "foundry",
configureSettings: settings =>
{
// WARNING: DefaultAzureCredential is convenient for development but requires careful consideration in production.
// In production, consider using a specific credential (e.g., ManagedIdentityCredential) to avoid
// latency issues, unintended credential probing, and potential security risks from fallback mechanisms.
settings.TokenCredential = new DefaultAzureCredential();
settings.EnableSensitiveTelemetryData = builder.Environment.IsDevelopment();
})
.AddChatClient("gpt41");
builder.AddAIAgent("writer", "You write short stories (300 words or less) about the specified topic.");
// Register services for OpenAI responses and conversations
builder.Services.AddOpenAIResponses();
builder.Services.AddOpenAIConversations();
var app = builder.Build();
app.UseHttpsRedirection();
// Map OpenAI API endpoints — DevUI aggregator routes requests here
Der DevUI-Aggregator kombiniert Entitäten aus allen konfigurierten Diensten und leitet Antworten und Unterhaltungen Anforderungen an das richtige Back-End weiter.
Features
- Webschnittstelle: Interaktive Benutzeroberfläche zum Testen von Agents und Workflows
- Flexible Eingabetypen: Unterstützung für Text, Dateiuploads und benutzerdefinierte Eingabetypen basierend auf dem ersten Executor Ihres Workflows
- Directory-Based Discovery: Automatisches Ermitteln von Agents und Workflows aus einer Verzeichnisstruktur
- In-Memory Registrierung: Registrieren von Entitäten programmgesteuert ohne Dateisystemeinrichtung
- OpenAI-Compatible-API: Verwenden des OpenAI Python SDK für die Interaktion mit Ihren Agents
- Beispielkatalog: Durchsuchen und Herunterladen kuratierter Beispiele, wenn keine Entitäten gefunden werden
- Ablaufverfolgung: Anzeigen von OpenTelemetry-Ablaufverfolgungen für Debugging und Beobachtbarkeit
Eingabetypen
DevUI passt seine Eingabeschnittstelle basierend auf dem Entitätstyp an:
- Agents: Unterstützung von Text- und Dateieingabe (Bilder, Dokumente usw.) bei multimodalen Interaktionen
- Workflows: Die Eingabeschnittstelle wird automatisch basierend auf dem Eingabetyp des ersten Executors generiert. DevUI untersucht den Workflow und spiegelt das erwartete Eingabeschema wider, wodurch es einfach wird, Workflows mit strukturierten oder benutzerdefinierten Eingabetypen zu testen.
Mit dieser dynamischen Eingabebehandlung können Sie Ihre Agents und Workflows genau so testen, wie sie in Ihrer Anwendung Eingaben erhalten würden.
Installation
Installieren Sie DevUI von PyPI:
pip install agent-framework-devui --pre
Quick Start
Option 1: Programmgesteuerte Registrierung
Starten Sie DevUI mit im Arbeitsspeicher registrierten Agents:
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient
from agent_framework.devui import serve
def get_weather(location: str) -> str:
"""Get weather for a location."""
return f"Weather in {location}: 72F and sunny"
# Create your agent
agent = Agent(
name="WeatherAgent",
client=OpenAIChatClient(),
tools=[get_weather]
)
# Launch DevUI
serve(entities=[agent], auto_open=True)
# Opens browser to http://localhost:8080
Option 2: Directory Discovery (CLI)
Wenn Sie Agents und Workflows in einer Verzeichnisstruktur organisiert haben, starten Sie DevUI über die Befehlszeile:
# Launch web UI + API server
devui ./agents --port 8080
# Web UI: http://localhost:8080
# API: http://localhost:8080/v1/*
Details zur erforderlichen Verzeichnisstruktur finden Sie unter Verzeichnisermittlung .
Verwenden des OpenAI SDK
DevUI stellt eine openAI-kompatible Antwort-API bereit. Sie können das OpenAI Python SDK verwenden, um mit Ihren Agents zu interagieren:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed" # API key not required for local DevUI
)
response = client.responses.create(
metadata={"entity_id": "weather_agent"}, # Your agent/workflow name
input="What's the weather in Seattle?"
)
# Extract text from response
print(response.output[0].content[0].text)
Weitere Informationen zur API finden Sie in der API-Referenz.
CLI-Optionen
devui [directory] [options]
Options:
--port, -p Port (default: 8080)
--host Host (default: 127.0.0.1)
--headless API only, no UI
--no-open Don't automatically open browser
--tracing Enable OpenTelemetry tracing
--reload Enable auto-reload
--mode developer|user (default: developer)
--auth Enable Bearer token authentication
--auth-token Custom authentication token
Note
Unterstützung für dieses Feature wird in Kürze verfügbar sein. Den neuesten Status finden Sie im Agent Framework Go-Repository .
Nächste Schritte
Gehen Sie tiefer: