Files
microdao-daarion/AGENT-CABINET-ENHANCEMENT-COMPLETE.md
Apple 3de3c8cb36 feat: Add presence heartbeat for Matrix online status
- matrix-gateway: POST /internal/matrix/presence/online endpoint
- usePresenceHeartbeat hook with activity tracking
- Auto away after 5 min inactivity
- Offline on page close/visibility change
- Integrated in MatrixChatRoom component
2025-11-27 00:19:40 -08:00

8.3 KiB
Raw Blame History

Agent Cabinet Enhancement - Complete

Summary

Успішно додано всі необхідні компоненти до кабінету агента:

  1. Метрики агента
  2. Таблиця команди для оркестраторів
  3. Підключення команди через CrewAI
  4. Вікно чату з агентом

1. Метрики агента

API Endpoint:

  • /api/agent/{agent_id}/metrics - отримати метрики агента

Відображається:

  • Uptime - час роботи агента в годинах
  • Total Requests - загальна кількість запитів
  • Success Rate - відсоток успішних запитів
  • Avg Response Time - середній час відповіді в мілісекундах
  • Status - поточний статус агента
  • Last Active - час останньої активності

Розташування:

Метрики відображаються в верхній частині кабінету агента, перед System Prompt.


2. Таблиця команди для оркестраторів

Для оркестраторів:

Якщо агент має is_orchestrator: true та sub_agents, відображається таблиця з командою.

Колонки таблиці:

  • Name - ім'я агента команди
  • Role - роль агента
  • ID - ідентифікатор агента
  • Actions - кнопка видалення з команди

Функціонал:

  • Додавання агентів до команди (кнопка "Add Agent")
  • Видалення агентів з команди (кнопка видалення в таблиці)
  • Модальне вікно для додавання нового агента

3. Підключення команди через CrewAI

Для оркестраторів з workspace:

Якщо агент має workspace в метриках, відображається кнопка "Connect via CrewAI".

Функціонал:

  • Кнопка "Connect via CrewAI" в секції Team Agents
  • При натисканні створюється CrewAI crew з workspace агента
  • Показується підтвердження з кількістю агентів та tasks
  • Автоматичне оновлення статусу після створення

API Integration:

  • Використовує /api/crewai/create_crew/{workspace_id}
  • Автоматично знаходить workspace агента з метрик

4. Вікно чату з агентом

UI:

  • Кнопка "Chat with Agent" в заголовку кабінету
  • Плаваюче вікно чату (fixed bottom-right)
  • Розмір: 384px × 600px
  • Темна тема з slate кольорами

Функціонал:

  • Відправка повідомлень агенту через DAGI Router
  • Відображення повідомлень користувача (сині) та агента (сірі)
  • Індикатор завантаження під час обробки
  • Обробка помилок з відображенням повідомлень
  • Автоматичне прокручування до останнього повідомлення
  • Підтримка Enter для відправки

API Integration:

  • Endpoint: /api/agent/{agent_id}/chat
  • Метод: POST
  • Відправляє запит до DAGI Router (http://localhost:9102/v1/chat/completions)
  • Використовує system prompt агента
  • Логує події чату в систему

Повідомлення:

  • Користувач: синій фон, вирівнювання справа
  • Агент: сірий фон, вирівнювання зліва
  • Помилки: червоний фон з рамкою

API Endpoints

1. Get Agent Metrics

GET /api/agent/{agent_id}/metrics

Response:

{
  "agent_id": "agent-monitor",
  "agent_name": "Monitor Agent",
  "status": "active",
  "uptime_hours": 150,
  "total_requests": 2500,
  "successful_requests": 2400,
  "failed_requests": 100,
  "avg_response_time_ms": 450.5,
  "last_active": "2025-01-XXT12:00:00",
  "model": "qwen3:8b",
  "model_backend": "ollama",
  "node": "node2",
  "is_orchestrator": false,
  "team_size": 0,
  "workspace": "core_founders_room",
  "workspace_info": {...}
}

2. Send Chat Message

POST /api/agent/{agent_id}/chat
Content-Type: application/json

{
  "agent_id": "agent-monitor",
  "message": "Hello, how are you?"
}

Response:

{
  "status": "success",
  "reply": "Hello! I'm doing well, thank you for asking...",
  "agent_id": "agent-monitor",
  "agent_name": "Monitor Agent"
}

Структура кабінету агента

┌─────────────────────────────────────────────────┐
│ Agent Header (Name, Description, Chat Button)   │
├─────────────────────────────────────────────────┤
│ Agent Metrics (Uptime, Requests, Success Rate) │
├─────────────────────────────────────────────────┤
│ System Prompt                                    │
│                                                 │
│ Team Agents Table (for orchestrators)          │
│ - Connect via CrewAI button                     │
│ - Add Agent button                              │
│                                                 │
│ Knowledge Base                                  │
└─────────────────────────────────────────────────┘
│ Configuration Sidebar                          │
│ - Model                                         │
│ - Backend                                       │
│ - Node                                          │
│ - Workspace                                     │
└─────────────────────────────────────────────────┘

Files Modified

  1. fixed_monitor.py:
    • Додано endpoint /api/agent/{agent_id}/metrics
    • Додано endpoint /api/agent/{agent_id}/chat
    • Оновлено HTML кабінету агента:
      • Додано секцію метрик
      • Замінено картки команди на таблицю
      • Додано кнопку підключення CrewAI
      • Додано вікно чату
    • Додано JavaScript функції:
      • loadMetrics() - завантаження метрик
      • toggleChat() - показ/приховування чату
      • sendChatMessage() - відправка повідомлення
      • connectCrewAI() - підключення через CrewAI

Testing

Test Metrics:

curl http://localhost:8899/api/agent/agent-monitor/metrics

Test Chat:

curl -X POST http://localhost:8899/api/agent/agent-monitor/chat \
  -H "Content-Type: application/json" \
  -d '{"agent_id": "agent-monitor", "message": "Hello!"}'

Next Steps (Optional)

  1. Real Metrics:

    • Підключити реальні метрики з системи моніторингу
    • Додати графіки використання
    • Додати історію запитів
  2. Chat Enhancements:

    • Додати збереження історії чату
    • Додати можливість завантаження файлів
    • Додати voice input/output
  3. CrewAI Integration:

    • Додати відображення статусу crew
    • Додати можливість запуску tasks
    • Додати відображення результатів виконання

Status: Complete Date: 2025-01-XX Version: DAGI Monitor V5.1