DevUI 可以从目录结构自动发现代理和工作流。 这使你可以组织多个实体,并使用单个命令启动它们。
即将推出
即将推出适用于 C# 的 DevUI 文档。 请稍后查看或参阅 Python 文档了解概念指南。
目录结构
若要让 DevUI 发现代理和工作流,必须在特定的目录结构中组织它们。 每个实体都必须有一个 __init__.py 导出所需变量(agent 或 workflow) 的文件。
entities/
weather_agent/
__init__.py # Must export: agent = Agent(...)
agent.py # Agent implementation (optional, can be in __init__.py)
.env # Optional: API keys, config vars
my_workflow/
__init__.py # Must export: workflow = WorkflowBuilder(start_executor=...)...
workflow.py # Workflow implementation (optional)
.env # Optional: environment variables
.env # Optional: shared environment variables
代理示例
为代理创建一个目录,并满足以下条件 __init__.py:
weather_agent/__init__.py:
from agent_framework import Agent
from agent_framework.openai import OpenAIChatClient
def get_weather(location: str) -> str:
"""Get weather for a location."""
return f"Weather in {location}: 72F and sunny"
agent = Agent(
name="weather_agent",
chat_client=OpenAIChatClient(),
tools=[get_weather],
instructions="You are a helpful weather assistant."
)
关键要求是__init__.py文件必须导出名为(代理)或agent(对于工作流)的workflow变量。
工作流示例
my_workflow/__init__.py:
from agent_framework.workflows import WorkflowBuilder
workflow = (
WorkflowBuilder(start_executor="my_executor")
.add_executor(...)
.add_edge(...)
.build()
)
环境变量
如果存在,DevUI 会自动加载 .env 文件:
-
实体级别
.env:放置在代理/工作流目录中,仅针对该实体加载 -
父级
.env:放置在实体根目录中,为所有实体加载
示例 .env 文件:
OPENAI_API_KEY=sk-...
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com/
小窍门
创建文件 .env.example 来记录所需的环境变量,而无需公开实际值。 切勿将具有真实凭据的文件提交到 .env 源代码管理。
通过目录发现进行启动
设置目录结构后,启动 DevUI:
# Discover all entities in ./entities directory
devui ./entities
# With custom port
devui ./entities --port 9000
# With auto-reload for development
devui ./entities --reload
示例库
当 DevUI 以未发现的实体开头时,它会显示一个 示例库 ,其中包含来自 Agent Framework 存储库的特选示例。 您可以:
- 浏览可用的示例代理和工作流
- 下载用于查看和自定义的示例
- 在本地运行示例以快速开始
故障排除
未发现实体
-
__init__.py确保文件导出agent或workflow变量 - 检查 Python 文件中的语法错误
- 验证目录是否直接位于传递给
devui的路径下
未加载环境变量
-
.env确保文件位于正确的位置 - 检查文件权限
- 使用
--reload标志在开发过程中选取更改