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 als Beispielanwendung für die lokale Entwicklung konzipiert. Diese Seite behandelt Sicherheitsaspekte und bewährte Methoden, wenn Sie DevUI über localhost hinaus verfügbar machen müssen.
Warnung
DevUI ist nicht für die Produktionsverwendung vorgesehen. Erstellen Sie für Produktionsbereitstellungen ihre eigene benutzerdefinierte Schnittstelle mit dem Agent Framework SDK mit entsprechenden Sicherheitsmaßnahmen.
Bald verfügbar
DevUI-Dokumentation für C# wird in Kürze verfügbar sein. Bitte schauen Sie später wieder vorbei, oder lesen Sie die Python-Dokumentation, um konzeptionelle Anleitungen zu erhalten.
Benutzeroberflächenmodi
DevUI bietet zwei Modi, die den Zugriff auf Features steuern:
Entwicklermodus (Standard)
Vollzugriff auf alle Features:
- Debug-Panel mit Trace-Informationen
- Hot reload für schnelle Entwicklung (
/v1/entities/{id}/reload) - Bereitstellungstools (
/v1/deployments) - Ausführliche Fehlermeldungen für das Debuggen
devui ./agents # Developer mode is the default
Benutzermodus
Vereinfachte, eingeschränkte Schnittstelle:
- Chatschnittstelle und Unterhaltungsverwaltung
- Entitätsauflistung und grundlegende Informationen
- Deaktivierte Entwickler-APIs (Heißneuladen, Bereitstellung)
- Generische Fehlermeldungen (serverseitig protokolliert)
devui ./agents --mode user
Authentication
Die Bearertokenauthentifizierung ist standardmäßig aktiviert. Für eine Loopbackbindung generiert DevUI ein Token und zeigt es in der Konsole an:
devui ./agents
Legen Sie für ein wiederholbares Token --auth-token fest oder verwenden Sie DEVUI_AUTH_TOKEN. Eine Nicht-Loopback-Bindung erfordert ein explizites Token und schlägt ohne eins fehl:
# Custom token via CLI
devui ./agents --auth-token "your-secure-token"
# Custom token via environment variable
export DEVUI_AUTH_TOKEN="your-secure-token"
devui ./agents --host 0.0.0.0
Alle API-Anforderungen müssen das Token im Authorization Header enthalten:
curl http://localhost:8080/v1/entities \
-H "Authorization: Bearer your-secure-token"
Nur für die isolierte Loopbackentwicklung --no-auth verwenden. DevUI lehnt nicht authentifizierte Nicht-Loopback-Verbindungen ab, und selbst im Loopback-Modus ohne Authentifizierung bleibt der Schutz vor Anfragen, die von böswilligen Websites gesendet werden, unwirksam.
Empfohlene Bereitstellungskonfiguration
Wenn Sie DevUI für Endbenutzer verfügbar machen müssen (nicht für die Produktion empfohlen):
DEVUI_AUTH_TOKEN="<secure-dev-token>" devui ./agents --mode user --host 0.0.0.0
Diese Konfiguration:
- Beschränkt entwicklerorientierte APIs
- Authentifizierung erforderlich
- Bindet an alle Netzwerkschnittstellen
Sicherheitsfeatures
DevUI umfasst mehrere Sicherheitsmaßnahmen:
| Funktion | Description |
|---|---|
| Localhost-Bindung | Bindet standardmäßig an 127.0.0.1 |
| Benutzermodus | Schränkt Entwickler-APIs ein |
| Authentication | Die Bearertokenauthentifizierung ist standardmäßig aktiviert. |
| Modus ohne Authentifizierung | Nur auf localhost oder 127.0.0.1 zulässig |
| Netzwerkbindungen | Erfordert DEVUI_AUTH_TOKEN oder --auth-token |
| Lokale Entität lädt | Nur Entitäten aus lokalen Verzeichnissen oder im Arbeitsspeicher werden geladen. |
| Keine Remoteausführung | Keine Remotecodeausführungsfunktionen |
Bewährte Methoden
Verwaltung von Anmeldeinformationen
- Speichern von API-Schlüsseln und geheimen Schlüsseln in
.envDateien - Committen Sie niemals
.env-Dateien in die Quellcodeverwaltung - Verwenden von
.env.exampleDateien zum Dokumentieren erforderlicher Variablen
# .env.example (safe to commit)
OPENAI_API_KEY=your-api-key-here
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
# .env (never commit)
OPENAI_API_KEY=sk-actual-key
AZURE_OPENAI_ENDPOINT=https://my-resource.openai.azure.com/
Netzwerksicherheit
- DevUI für die Entwicklung an localhost gebunden halten
- Verwenden eines Reverseproxys (nginx, Caddy), wenn externer Zugriff erforderlich ist
- Aktivieren von HTTPS über den Reverseproxy
- Implementieren der richtigen Authentifizierung auf Proxyebene
Entitätssicherheit
- Überprüfen des gesamten Agent-/Workflowcodes vor der Ausführung
- Laden Sie nur Entitäten aus vertrauenswürdigen Quellen
- Seien Sie vorsichtig mit Tools, die Nebenwirkungen haben (Dateizugriff, Netzwerkaufrufe)
Ressourcenbereinigung
Registrieren Sie Bereinigungs-Hooks, um Anmeldeinformationen und Ressourcen beim Herunterfahren ordnungsgemäß zu schließen:
import os
from azure.identity.aio import DefaultAzureCredential
from agent_framework import Agent
from agent_framework.openai import OpenAIChatCompletionClient
from agent_framework_devui import register_cleanup, serve
credential = DefaultAzureCredential()
client = OpenAIChatCompletionClient(
model=os.environ["AZURE_OPENAI_CHAT_COMPLETION_MODEL"],
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version=os.getenv("AZURE_OPENAI_API_VERSION"),
credential=credential,
)
agent = Agent(name="MyAgent", client=client)
# Register cleanup hook - credential will be closed on shutdown
register_cleanup(agent, credential.close)
serve(entities=[agent])
Überlegungen zu MCP-Tools
Bei Verwendung von MCP-Tools (Model Context Protocol) mit DevUI:
# Correct - DevUI handles cleanup automatically
mcp_tool = MCPStreamableHTTPTool(url="http://localhost:8011/mcp", client=chat_client)
agent = Agent(tools=mcp_tool)
serve(entities=[agent])
Important
Verwenden Sie die async with Kontextmanager nicht, wenn Sie Agents mit MCP-Tools für DevUI erstellen. Verbindungen werden vor der Ausführung geschlossen. MCP-Tools verwenden bei der ersten Nutzung verzögerte Initialisierung und automatische Verbindung.
Note
Go-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
- Beispiele – Durchsuchen von Beispiel-Agents und Workflows
- API-Referenz – Erfahren Sie mehr über die API-Endpunkte