DevUI 是一個輕量級、獨立的範例應用程式,用於在 Microsoft Agent Framework 中執行代理程式與工作流程。 它提供互動式測試的網頁介面,並搭配相容 OpenAI 的 API 後端,讓你能視覺化除錯、測試並迭代你所建置的代理與工作流程,然後再將它們整合進應用程式。
這很重要
DevUI 是一個 範例應用程式 ,幫助你在開發過程中視覺化和除錯代理程式與工作流程。 它 並非 用於生產環境中使用。
即將推出
C# 的 DevUI 文件即將推出。 請稍後回來查看,或參考 Python 文件以獲得概念指引。
Features
- 網頁介面:用於測試代理與工作流程的互動式使用者介面
- 彈性輸入類型:支援文字、檔案上傳,以及根據你工作流程第一個執行器的自訂輸入類型
- 「以目錄為基礎」發現:自動從目錄結構中發現代理與工作流程
- In-Memory 註冊:無需設定檔案系統即可透過程式方式註冊實體
- OpenAI-Compatible API:使用 OpenAI Python SDK 與您的代理人互動
- 範例畫廊:當沒有發現實體時,瀏覽並下載精選範例
- 追蹤:查看 OpenTelemetry 追蹤紀錄以進行除錯和可觀察性
輸入類型
DevUI 會根據實體類型調整輸入介面:
- 代理:支援文字輸入及檔案附件(圖片、文件等),以促進多模態互動
- 工作流程:輸入介面會根據第一個執行者的輸入類型自動產生。 DevUI 會檢視工作流程並反映預期的輸入結構,使得測試結構化或自訂輸入類型的工作流程變得容易。
這種動態輸入處理讓你能精確測試代理和工作流程,就像他們在應用程式中接收輸入一樣。
Installation
從 PyPI 安裝 DevUI:
pip install agent-framework-devui --pre
快速入門
選項一:程式化註冊
啟動 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
選項二:目錄發現(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 的回應 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