DevUI 是一个轻型独立示例应用程序,用于在 Microsoft Agent Framework 中运行代理和工作流。 它提供了一个 Web 界面,用于交互式测试以及与 OpenAI 兼容的 API 后端,使你能够在将代理和工作流集成到应用程序之前直观地调试、测试和迭代生成的代理和工作流。
重要
DevUI 是一个 示例应用 ,可帮助你在开发过程中可视化和调试代理和工作流。 它 不适用于 生产用途。
即将推出
即将推出适用于 C# 的 DevUI 文档。 请稍后查看或参阅 Python 文档了解概念指南。
Features
- Web 界面:用于测试代理和工作流的交互式 UI
- 灵活的输入类型:支持基于工作流的第一个执行程序的文本、文件上传和自定义输入类型
- 基于目录的发现:从目录结构中自动发现代理和工作流
- In-Memory 注册:在不设置文件系统的情况下以编程方式注册实体
- OpenAI-Compatible API:使用 OpenAI Python SDK 与代理交互
- 示例库:在未发现实体时浏览和下载特选示例
- Tracing:查看 OpenTelemetry 追踪信息,用于调试和可观测性
输入类型
DevUI 根据实体类型调整其输入接口:
- 代理:支持文本输入和文件附件(图像、文档等)进行多模式交互
- 工作流:输入接口基于第一个执行程序的输入类型自动生成。 DevUI 审视工作流并反映预期的输入结构,使工作流能够轻松地使用结构化或自定义输入类型进行测试。
通过此动态输入处理,可以像在应用程序中接收输入一样测试代理和工作流。
安装
从 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 兼容的响应 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