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.
Usługa DevUI została zaprojektowana jako przykładowa aplikacja do programowania lokalnego. Na tej stronie opisano zagadnienia dotyczące zabezpieczeń i najlepsze rozwiązania, jeśli musisz uwidocznić interfejs DevUI poza hostem lokalnym.
Ostrzeżenie
Interfejs DevUI nie jest przeznaczony do użytku produkcyjnego. W przypadku wdrożeń produkcyjnych utwórz własny interfejs niestandardowy przy użyciu zestawu SDK platformy Agent z odpowiednimi środkami zabezpieczeń.
Wkrótce
Dokumentacja usługi DevUI dla języka C# jest dostępna wkrótce. Sprawdź ponownie później lub przejrzyj dokumentację języka Python, aby uzyskać wskazówki koncepcyjne.
Tryby interfejsu użytkownika
Interfejs DevUI oferuje dwa tryby kontrolujące dostęp do funkcji:
Tryb dewelopera (ustawienie domyślne)
Pełny dostęp do wszystkich funkcji:
- Panel debugowania z informacjami o śledzeniu
- Gorące przeładowywanie dla szybkiego rozwoju (
/v1/entities/{id}/reload) - Narzędzia wdrażania (
/v1/deployments) - Pełne komunikaty o błędach na potrzeby debugowania
devui ./agents # Developer mode is the default
Tryb użytkownika
Uproszczony, ograniczony interfejs:
- Interfejs czatu i zarządzanie konwersacjami
- Lista jednostek i podstawowe informacje
- Interfejsy API dla programistów są wyłączone (ponowne ładowanie, wdrażanie)
- Ogólne komunikaty o błędach (szczegóły rejestrowane po stronie serwera)
devui ./agents --mode user
Authentication
Włącz uwierzytelnianie tokenu elementu nośnego z flagą --auth :
devui ./agents --auth
Po włączeniu uwierzytelniania:
- W przypadku hosta lokalnego: token jest generowany automatycznie i wyświetlany w konsoli programu
- W przypadku wdrożeń narażonych na dostęp z sieci : należy podać token za pomocą
DEVUI_AUTH_TOKENzmiennej środowiskowej lub--auth-tokenflagi
# Auto-generated token (localhost only)
devui ./agents --auth
# Custom token via CLI
devui ./agents --auth --auth-token "your-secure-token"
# Custom token via environment variable
export DEVUI_AUTH_TOKEN="your-secure-token"
devui ./agents --auth --host 0.0.0.0
Wszystkie żądania interfejsu API muszą zawierać prawidłowy Bearer token w nagłówku Authorization :
curl http://localhost:8080/v1/entities \
-H "Authorization: Bearer your-token-here"
Zalecana konfiguracja wdrożenia
Jeśli musisz uwidocznić interfejs DevUI użytkownikom końcowym (niezalecane w środowisku produkcyjnym):
devui ./agents --mode user --auth --host 0.0.0.0
Ta konfiguracja:
- Ogranicza interfejsy API dostępne dla deweloperów
- Wymaga uwierzytelnienia
- Wiąże się ze wszystkimi interfejsami sieciowymi
Funkcje zabezpieczeń
Interfejs DevUI obejmuje kilka środków zabezpieczeń:
| Funkcja | Opis |
|---|---|
| Powiązanie hosta lokalnego | Domyślnie wiąże się z 127.0.0.1 |
| Tryb użytkownika | Ogranicza API programistyczne |
| Uwierzytelnianie elementu nośnego | Opcjonalne uwierzytelnianie oparte na tokenach |
| Ładowanie jednostek lokalnych | Ładuje tylko jednostki z katalogów lokalnych lub w pamięci |
| Brak zdalnego wykonywania | Brak możliwości zdalnego wykonywania kodu |
Najlepsze praktyki
Zarządzanie poświadczeniami
- Przechowywanie kluczy interfejsu API i sekretów w plikach
.env - Nigdy nie zatwierdzaj
.envplików do kontroli źródła - Używanie
.env.exampleplików do dokumentowania wymaganych zmiennych
# .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/
Bezpieczeństwo sieci
- Zachowaj powiązanie interfejsu DevUI z hostem lokalnym na potrzeby programowania
- Użyj zwrotnego serwera proxy (nginx, Caddy), jeśli wymagany jest dostęp zewnętrzny
- Włączanie protokołu HTTPS za pośrednictwem zwrotnego serwera proxy
- Implementowanie prawidłowego uwierzytelniania na poziomie serwera proxy
Zabezpieczenia jednostek
- Przed uruchomieniem przejrzyj cały kod agenta/przepływu pracy
- Wczytuj tylko jednostki z zaufanych źródeł
- Należy zachować ostrożność przy użyciu narzędzi, które mają skutki uboczne (dostęp do plików, wywołania sieciowe)
Oczyszczanie zasobów
Zarejestruj hooki czyszczące, aby prawidłowo zamknąć poświadczenia i zasoby w trakcie wyłączania systemu.
from azure.identity.aio import DefaultAzureCredential
from agent_framework import Agent
from agent_framework.azure import AzureOpenAIChatClient
from agent_framework_devui import register_cleanup, serve
credential = DefaultAzureCredential()
client = AzureOpenAIChatClient()
agent = Agent(name="MyAgent", chat_client=client)
# Register cleanup hook - credential will be closed on shutdown
register_cleanup(agent, credential.close)
serve(entities=[agent])
Zagadnienia dotyczące narzędzi MCP
W przypadku korzystania z narzędzi MCP (Model Context Protocol) z interfejsem DevUI:
# Correct - DevUI handles cleanup automatically
mcp_tool = MCPStreamableHTTPTool(url="http://localhost:8011/mcp", chat_client=chat_client)
agent = Agent(tools=mcp_tool)
serve(entities=[agent])
Ważne
Nie używaj async with menedżerów kontekstu podczas tworzenia agentów za pomocą narzędzi MCP dla devUI. Połączenia zostaną zamknięte przed wykonaniem. Narzędzia MCP używają inicjowania z opóźnieniem i łączą się automatycznie podczas pierwszego użycia.
Dalsze kroki
- Przykłady — przeglądanie przykładowych agentów i przepływów pracy
- Dokumentacja interfejsu API — informacje o punktach końcowych interfejsu API