DevUI

A DevUI egy egyszerű, különálló mintaalkalmazás, amely ügynököket és munkafolyamatokat futtat a Microsoft Agent Frameworkben. Egy webes felületet biztosít az interaktív teszteléshez, valamint egy OpenAI-kompatibilis API-háttérrendszert, amellyel vizuálisan hibakeresést, tesztelést és iterálást végezhet az alkalmazásokba való integráció előtt létrehozott ügynökökön és munkafolyamatokon.

Important

A DevUI egy mintaalkalmazás , amely segít az ügynökök és munkafolyamatok vizualizációjában és hibakeresésében a fejlesztés során. Nem éleskörnyezetbeli használatra szánták.

A csomagok telepítése

Egyetlen .NET szolgáltatáshoz telepítse a DevUI-csomagot. A több ügynökszolgáltatást összesítő Aspire AppHost esetében telepítse az Aspire üzemeltetési integrációt is.

dotnet add package Microsoft.Agents.AI.DevUI --prerelease
dotnet add package Aspire.Hosting.AgentFramework.DevUI --prerelease

A DevUI és az Aspire használata

Minden ügynökszolgáltatás openAI-válaszokat és beszélgetéseket tesz elérhetővé. Az Aspire AppHost hozzáad egy DevUI-erőforrást, és csatlakoztatja az ügynökszolgáltatásokat.

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);

Az agents: átadott neveknek WithAgentService meg kell egyeznie az egyes szolgáltatásokban regisztrált AddAIAgent(...) névvel.

Az ügynökszolgáltatás végpontjának felfedése


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

A DevUI-összesítő egyesíti az összes konfigurált szolgáltatás entitásait, és a válaszok és beszélgetések kéréseit a megfelelő háttérrendszerre irányítja.

Agent Framework DevUI irányítópult, amely megjeleníti az ügynöki könyvtárat és a nyomkövetést

Features

  • Webes felület: Interaktív felhasználói felület ügynökök és munkafolyamatok teszteléséhez
  • Rugalmas beviteli típusok: Szöveg, fájlfeltöltések és egyéni beviteli típusok támogatása a munkafolyamat első végrehajtója alapján
  • Könyvtár alapú felderítés: Ügynökök és munkafolyamatok automatikus felderítése könyvtárstruktúrából
  • In-Memory Regisztráció: Entitások programozott regisztrálása fájlrendszerbeállítás nélkül
  • OpenAI-Compatible API: Az OpenAI Python SDK használata az ügynökökkel való interakcióhoz
  • Mintagyűjtemény: Válogatott példák tallózása és letöltése, ha nem találhatók entitások
  • Nyomkövetés: OpenTelemetry-nyomkövetések megtekintése hibakereséshez és megfigyelhetőséghez

Bemeneti típusok

A DevUI a bemeneti felületét az entitás típusa alapján igazítja:

  • Ügynökök: Támogatja a szöveges bevitelt és a fájlmellékleteket (képeket, dokumentumokat stb.) a multimodális interakciókhoz
  • Munkafolyamatok: A bemeneti felület automatikusan létrejön az első végrehajtó bemeneti típusa alapján. A DevUI bevezetőként vizsgálja meg a munkafolyamatot, és tükrözi a várt bemeneti sémát, így könnyen tesztelheti a munkafolyamatokat strukturált vagy egyéni bemeneti típusok használatával.

Ez a dinamikus beviteli kezelés lehetővé teszi, hogy az ügynököket és munkafolyamatokat pontosan úgy tesztelje, ahogyan azok bemenetet kapnának az alkalmazásban.

Telepítés

Telepítse a DevUI-t a PyPI-ból:

pip install agent-framework-devui --pre

gyorskonfigurálás

1. lehetőség: Programozott regisztráció

Indítsa el a DevUI-t a memóriában regisztrált ügynökökkel:

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

2. lehetőség: Címtárfelderítés (CLI)

Ha az ügynökök és munkafolyamatok címtárstruktúrában vannak rendszerezve, indítsa el a DevUI-t a parancssorból:

# Launch web UI + API server
devui ./agents --port 8080
# Web UI: http://localhost:8080
# API: http://localhost:8080/v1/*

A szükséges címtárstruktúra részleteiért tekintse meg a Címtárfelderítést .

Az OpenAI SDK használata

A DevUI egy OpenAI-kompatibilis Válasz API-t biztosít. Az OpenAI Python SDK-val kezelheti az ügynököket:

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)

Az API-val kapcsolatos további részletekért tekintse meg az API-referencia című témakört.

Parancssori felület beállításai

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

Megjegyzés:

A funkció Go-támogatása hamarosan érkezik. A legújabb állapotot az Agent Framework Go-adattárában tekinthet meg.

Következő lépések

Mélyedjen el: