Поделиться через


Обнаружение каталогов

DevUI может автоматически обнаруживать агенты и рабочие процессы из структуры каталогов. Это позволяет упорядочивать несколько сущностей и запускать их с помощью одной команды.

Ожидается в скором времени

В ближайшее время ожидается документация по DevUI для C#. Вернитесь позже или ознакомьтесь с документацией по 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 файлы при наличии:

  1. Уровень .envсущности: размещается в каталоге агента или рабочего процесса и загружается только для этой сущности.
  2. Родительский уровень .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 флага для получения изменений во время разработки

Дальнейшие шаги