Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
DevUI — это упрощенное автономное приложение для выполнения агентов и рабочих процессов в Microsoft Agent Framework. Он предоставляет веб-интерфейс для интерактивного тестирования вместе с серверной частью API, совместимой с OpenAI, что позволяет визуально отлаживать, тестировать и выполнять итерацию агентов и рабочих процессов перед интеграцией их в приложения.
Important
DevUI — это пример приложения для визуализации и отладки агентов и рабочих процессов во время разработки. Он не предназначен для использования в рабочей среде.
Установка пакетов
Для одной службы .NET установите пакет DevUI. Для приложения Aspire AppHost, который объединяет несколько служб агентов, также установите интеграцию размещения Aspire.
dotnet add package Microsoft.Agents.AI.DevUI --prerelease
dotnet add package Aspire.Hosting.AgentFramework.DevUI --prerelease
Использование DevUI с Aspire
Каждая служба агента предоставляет конечные точки OpenAI Responses и Conversations. Приложение Aspire AppHost добавляет один ресурс DevUI и подключает службы агента.
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);
Имена, передаваемые agents: в WithAgentService соответствии с именами, зарегистрированными AddAIAgent(...) в каждой службе.
Предоставление конечных точек службы агента
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
Агрегатор DevUI объединяет сущности из всех настроенных служб и направляет ответы и запросы бесед в правильную серверную часть.
Features
- Веб-интерфейс: интерактивный пользовательский интерфейс для тестирования агентов и рабочих процессов
- Гибкие типы входных данных: поддержка отправки текста, файлов и пользовательских типов входных данных на основе первого исполнителя рабочего процесса
- Обнаружение на основе каталогов: Автоматическое обнаружение агентов и рабочих процессов из структуры каталогов
- Регистрация в памяти: программная регистрация сущностей без настройки файловой системы
- Совместимый с OpenAI API: Используйте OpenAI Python SDK для взаимодействия с вашими агентами
- Примерная галерея: Просматривайте и скачивайте курированные примеры, когда не обнаружено сущностей.
- Трассировка: просмотр трассировок OpenTelemetry для отладки и наблюдаемости
Типы входных данных
DevUI адаптирует свой входной интерфейс на основе типа сущности:
- Агенты: поддержка текстовых входных и файловых вложений (изображений, документов и т. д.) для многомодальных взаимодействий
- Рабочие процессы: входной интерфейс автоматически создается на основе типа ввода первого исполнителя. DevUI интроспектирует рабочий процесс и отражает ожидаемую схему ввода, что упрощает тестирование рабочих процессов со структурированными или настраиваемыми типами входных данных.
Эта динамическая обработка входных данных позволяет тестировать агенты и рабочие процессы точно так же, как они будут получать входные данные в приложении.
Installation
Установите DevUI из PyPI:
pip install agent-framework-devui --pre
Краткое руководство
Вариант 1. Программная регистрация
Запустите DevUI с агентами, зарегистрированными в памяти:
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. Обнаружение каталогов (CLI)
Если у вас есть агенты и рабочие процессы, организованные в структуре каталогов, запустите DevUI из командной строки:
# Launch web UI + API server
devui ./agents --port 8080
# Web UI: http://localhost:8080
# API: http://localhost:8080/v1/*
Дополнительные сведения о требуемой структуре каталогов см. в статье "Обнаружение каталогов ".
Использование пакета SDK OpenAI
DevUI предоставляет API ответов, совместимых с OpenAI. С помощью пакета SDK Для Python OpenAI можно взаимодействовать с агентами:
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)
Дополнительные сведения об API см. в справочнике по API.
Параметры командной строки
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
Замечание
Поддержка Go для этой функции скоро появится. Сведения о последнем состоянии см. в репозитории Agent Framework Go .
Дальнейшие действия
Вернитесь глубже: