DevUI は、Microsoft Agent Framework でエージェントとワークフローを実行するための軽量のスタンドアロン サンプル アプリケーションです。 OpenAI と互換性のある API バックエンドと共に対話型テスト用の Web インターフェイスを提供します。これにより、アプリケーションに統合する前に、構築したエージェントとワークフローを視覚的にデバッグ、テスト、反復処理できます。
Important
DevUI は、開発中にエージェントとワークフローを視覚化およびデバッグするのに役立つ サンプル アプリ です。 運用環境での使用を目的とした ものではありません 。
近日公開
C# の DevUI ドキュメントは近日公開予定です。 概念ガイダンスについては、後でもう一度確認するか、Python のドキュメントを参照してください。
Features
- Web インターフェイス: エージェントとワークフローをテストするための対話型 UI
- 柔軟な入力の種類: ワークフローの最初の実行者に基づくテキスト、ファイルアップロード、およびカスタム入力タイプのサポート
- Directory-Based 検出: ディレクトリ構造からエージェントとワークフローを自動的に検出する
- In-Memory 登録: ファイル システムのセットアップなしでエンティティをプログラムで登録する
- OpenAI-Compatible API: OpenAI Python SDK を使用してエージェントを操作する
- サンプル ギャラリー: エンティティが検出されない場合にキュレーションされた例を参照してダウンロードする
- トレース: デバッグと監視のために OpenTelemetry トレースを表示する
入力の種類
DevUI は、エンティティ型に基づいて入力インターフェイスを調整します。
- エージェント: マルチモーダル操作のためのテキスト入力と添付ファイル (画像、ドキュメントなど) をサポートします
- ワークフロー: 入力インターフェイスは、最初の Executor の入力の種類に基づいて自動的に生成されます。 DevUI はワークフローをイントロスペクトし、予想される入力スキーマを反映するため、構造化された入力型またはカスタム入力型のワークフローを簡単にテストできます。
この動的な入力処理を使用すると、エージェントとワークフローを、アプリケーションで入力を受け取るのとまったく同じようにテストできます。
Installation
PyPI から DevUI をインストールします。
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",
chat_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/*
必要なディレクトリ構造の詳細については、 ディレクトリ探索 を参照してください。
OpenAI SDK の使用
DevUI には、OpenAI と互換性のある Responses API が用意されています。 OpenAI Python SDK を使用して、エージェントを操作できます。
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 リファレンスを 参照してください。
CLI オプション
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
次のステップ
- ディレクトリ探索 - 自動検出のためにエージェントを構成する方法について説明します
- API リファレンス - OpenAI と互換性のある API エンドポイントを調べる
- トレースと可観測性 - DevUI で OpenTelemetry トレースを表示する
- セキュリティとデプロイ - DevUI をセキュリティで保護するためのベスト プラクティス
- サンプル - サンプル エージェントとワークフローを参照する