- 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
8.3 KiB
8.3 KiB
Agent Cabinet Enhancement - Complete ✅
Summary
Успішно додано всі необхідні компоненти до кабінету агента:
- ✅ Метрики агента
- ✅ Таблиця команди для оркестраторів
- ✅ Підключення команди через CrewAI
- ✅ Вікно чату з агентом
✅ 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
fixed_monitor.py:- Додано endpoint
/api/agent/{agent_id}/metrics - Додано endpoint
/api/agent/{agent_id}/chat - Оновлено HTML кабінету агента:
- Додано секцію метрик
- Замінено картки команди на таблицю
- Додано кнопку підключення CrewAI
- Додано вікно чату
- Додано JavaScript функції:
loadMetrics()- завантаження метрикtoggleChat()- показ/приховування чатуsendChatMessage()- відправка повідомленняconnectCrewAI()- підключення через CrewAI
- Додано endpoint
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)
-
Real Metrics:
- Підключити реальні метрики з системи моніторингу
- Додати графіки використання
- Додати історію запитів
-
Chat Enhancements:
- Додати збереження історії чату
- Додати можливість завантаження файлів
- Додати voice input/output
-
CrewAI Integration:
- Додати відображення статусу crew
- Додати можливість запуску tasks
- Додати відображення результатів виконання
Status: ✅ Complete Date: 2025-01-XX Version: DAGI Monitor V5.1