DevUI

DevUI je jednoduchá samostatná ukázková aplikace pro spouštění agentů a pracovních postupů v rozhraní Microsoft Agent Framework. Poskytuje webové rozhraní pro interaktivní testování spolu s back-endem rozhraní API kompatibilním s OpenAI, které umožňuje vizuálně ladit, testovat a iterovat agenty a pracovní postupy, které sestavíte před jejich integrací do vašich aplikací.

Important

DevUI je ukázková aplikace , která vám pomůže vizualizovat a ladit agenty a pracovní postupy během vývoje. Není určen pro produkční použití.

Instalace balíčků

Pro jednu službu .NET nainstalujte balíček DevUI. Pro Aspire AppHost, který agreguje více služeb agentů, nainstalujte také integraci hostování Aspire.

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

Použití DevUI s Aspire

Každá služba agenta zveřejňuje koncové body odpovědí OpenAI a konverzací. Aspire AppHost přidá jeden prostředek DevUI a připojí služby agenta.

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

Názvy agents: předané musí WithAgentService odpovídat názvům registrovaným v každé službě AddAIAgent(...) .

Zveřejnění koncových bodů služby agenta


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

Agregátor DevUI kombinuje entity ze všech nakonfigurovaných služeb a směruje požadavky na odpovědi a konverzace do správného back-endu.

Řídicí panel Agent Framework DevUI zobrazující adresář agenta a trasování

Features

  • Webové rozhraní: Interaktivní uživatelské rozhraní pro testování agentů a pracovních postupů
  • Flexibilní typy zadávání: Podpora pro text, nahrávání souborů a vlastní typy zadávání na základě prvního vykonavatele pracovního postupu
  • Adresářové zjišťování: Automaticky zjišťovat agenty a pracovní postupy z adresářové struktury
  • In-Memory registrace: Registrace entit programově bez nutnosti nastavení systému souborů
  • rozhraní APIOpenAI-Compatible: Interakce s agenty pomocí sady OpenAI Python SDK
  • Ukázková galerie: Procházení a stahování kurátorovaných příkladů, když se nezjistí žádné entity
  • Trasování: Zobrazení trasování OpenTelemetry pro ladění a pozorovatelnost

Vstupní typy

DevUI přizpůsobí své vstupní rozhraní na základě typu entity:

  • Agenti: Podpora textového zadávání a příloh souborů (obrázky, dokumenty atd.) pro multimodální interakce
  • Pracovní postupy: Vstupní rozhraní se automaticky generuje na základě vstupního typu prvního exekutoru. DevUI introspektuje pracovní postup a odráží očekávané vstupní schéma, což usnadňuje testování pracovních postupů pomocí strukturovaných nebo vlastních typů vstupu.

Toto dynamické zpracování vstupu umožňuje otestovat agenty a pracovní postupy přesně tak, jak by přijímaly vstupy ve vaší aplikaci.

Instalace

Nainstalujte DevUI z PyPI:

pip install agent-framework-devui --pre

rychlé zprovoznění

Možnost 1: Programová registrace

Spusťte DevUI s agenty registrovanými v paměti:

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

Možnost 2: Zjišťování adresářů (CLI)

Pokud máte agenty a pracovní postupy uspořádané do adresářové struktury, spusťte DevUI z příkazového řádku:

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

Podrobnosti o požadované struktuře adresářů najdete v tématu Zjišťování adresářů .

Použití sady OpenAI SDK

DevUI poskytuje rozhraní API pro odpovědi kompatibilní s OpenAI. Sadu OpenAI Python SDK můžete použít k interakci s vašimi agenty:

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)

Další podrobnosti o rozhraní API najdete v referenčních informacích k rozhraní API.

Možnosti rozhraní příkazového řádku

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

Podpora této funkce v Go již brzy. Nejnovější stav najdete v úložišti Agent Framework Go .

Další kroky

Jděte hlouběji: