- 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
215 lines
6.3 KiB
Markdown
215 lines
6.3 KiB
Markdown
# ✅ Monitor Agent - Автоматична інтеграція з системою
|
|
|
|
**Дата:** 2025-11-22
|
|
**Статус:** ✅ Готово до використання
|
|
|
|
---
|
|
|
|
## 🎉 Виконано
|
|
|
|
### ✅ 1. Event Logging System
|
|
- ✅ Автоматичне логування всіх змін в системі
|
|
- ✅ Зберігання останніх 1000 подій
|
|
- ✅ Типи подій: `node`, `agent`, `system`
|
|
- ✅ Дії: `created`, `updated`, `deleted`, `status_changed`, `swapper_updated`
|
|
|
|
### ✅ 2. Real-time Updates
|
|
- ✅ WebSocket endpoint: `/ws/events`
|
|
- ✅ Server-Sent Events: `/api/events/stream`
|
|
- ✅ Автоматичне підключення Monitor Agent до подій
|
|
- ✅ Broadcast подій всім підписникам
|
|
|
|
### ✅ 3. Автоматичний моніторинг
|
|
- ✅ Background task для моніторингу змін
|
|
- ✅ Перевірка статусу нод кожні 30 секунд
|
|
- ✅ Перевірка Swapper Service кожні 30 секунд
|
|
- ✅ Автоматичне виявлення змін
|
|
|
|
### ✅ 4. Event Log на Dashboard
|
|
- ✅ Відображення останніх 20 подій
|
|
- ✅ Real-time оновлення через WebSocket
|
|
- ✅ Автоматичне оновлення кожні 10 секунд
|
|
- ✅ Візуальні індикатори для різних типів подій
|
|
|
|
---
|
|
|
|
## 🚀 Як працює
|
|
|
|
### Автоматичне логування подій
|
|
|
|
1. **Зміни в агентах:**
|
|
- Створення/оновлення агента
|
|
- Додавання/видалення агента з команди
|
|
- Зміна system prompt
|
|
|
|
2. **Зміни в нодах:**
|
|
- Зміна статусу ноди (online/offline/degraded)
|
|
- Оновлення Swapper Service
|
|
- Зміна активної моделі
|
|
|
|
3. **Системні події:**
|
|
- Запуск/зупинка Monitor Agent
|
|
- Очищення логу
|
|
- Інші системні події
|
|
|
|
### Real-time оновлення
|
|
|
|
1. **WebSocket підключення:**
|
|
- Автоматичне підключення при завантаженні dashboard
|
|
- Автоматичне переподключення при розриві
|
|
- Broadcast нових подій всім підписникам
|
|
|
|
2. **Event Stream:**
|
|
- Server-Sent Events для fallback
|
|
- Останні 20 подій при підключенні
|
|
- Нові події в реальному часі
|
|
|
|
---
|
|
|
|
## 📊 Event Log на Dashboard
|
|
|
|
### Відображення
|
|
|
|
1. **Секція "System Activity Log":**
|
|
- Останні 20 подій
|
|
- Real-time оновлення
|
|
- Візуальні індикатори:
|
|
- 🔵 Agent events (blue)
|
|
- 🟢 Node events (green)
|
|
- 🟣 System events (purple)
|
|
|
|
2. **Формат події:**
|
|
- Іконка типу події
|
|
- Повідомлення
|
|
- Час події
|
|
- Деталі (якщо є)
|
|
|
|
3. **Автоматичне оновлення:**
|
|
- WebSocket для real-time
|
|
- Polling кожні 10 секунд (fallback)
|
|
- Анімація нових подій
|
|
|
|
---
|
|
|
|
## 🔧 API Endpoints
|
|
|
|
### Events API
|
|
|
|
```bash
|
|
# Отримати останні події
|
|
GET /api/events?limit=50
|
|
|
|
# WebSocket для real-time
|
|
WS /ws/events
|
|
|
|
# Server-Sent Events
|
|
GET /api/events/stream
|
|
|
|
# Очистити лог
|
|
POST /api/events/clear
|
|
```
|
|
|
|
### Приклад події
|
|
|
|
```json
|
|
{
|
|
"timestamp": "2025-11-22T12:34:56.789",
|
|
"type": "agent",
|
|
"action": "sub_agent_added",
|
|
"message": "Додано агента 'Product Manager' в команду GREENFOOD Assistant",
|
|
"details": {
|
|
"agent_id": "greenfood",
|
|
"agent_name": "GREENFOOD Assistant",
|
|
"sub_agent": {
|
|
"name": "Product Manager",
|
|
"role": "Manages products"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔄 Автоматичні правила
|
|
|
|
### 1. Моніторинг нод
|
|
- ✅ Перевірка статусу кожні 30 секунд
|
|
- ✅ Логування змін статусу
|
|
- ✅ Відстеження Swapper Service
|
|
|
|
### 2. Моніторинг агентів
|
|
- ✅ Логування всіх змін в агентах
|
|
- ✅ Відстеження змін в командах оркестраторів
|
|
- ✅ Логування оновлень system prompt
|
|
|
|
### 3. Моніторинг Swapper Service
|
|
- ✅ Перевірка кожні 30 секунд
|
|
- ✅ Відстеження змін активної моделі
|
|
- ✅ Логування оновлень
|
|
|
|
---
|
|
|
|
## 📋 Типи подій
|
|
|
|
### Agent Events
|
|
- `created` - Створено агента
|
|
- `updated` - Оновлено агента
|
|
- `sub_agent_added` - Додано агента в команду
|
|
- `sub_agent_removed` - Видалено агента з команди
|
|
|
|
### Node Events
|
|
- `status_changed` - Змінено статус ноди
|
|
- `swapper_updated` - Оновлено Swapper Service
|
|
- `model_changed` - Змінено активну модель
|
|
|
|
### System Events
|
|
- `monitor_started` - Запущено Monitor Agent
|
|
- `log_cleared` - Очищено лог подій
|
|
|
|
---
|
|
|
|
## 🧪 Тестування
|
|
|
|
### 1. Перевірити Event Log
|
|
|
|
```bash
|
|
# Отримати останні події
|
|
curl http://localhost:8899/api/events?limit=10
|
|
```
|
|
|
|
### 2. Тестувати WebSocket
|
|
|
|
```javascript
|
|
const ws = new WebSocket('ws://localhost:8899/ws/events');
|
|
ws.onmessage = (event) => {
|
|
console.log('Event:', JSON.parse(event.data));
|
|
};
|
|
```
|
|
|
|
### 3. Створити тестову подію
|
|
|
|
- Додати агента в команду оркестратора
|
|
- Змінити system prompt агента
|
|
- Перевірити відображення в Event Log
|
|
|
|
---
|
|
|
|
## ✅ Готово!
|
|
|
|
**Monitor Agent автоматично інтегровано з системою!** 🎉
|
|
|
|
- ✅ Автоматичне логування всіх змін
|
|
- ✅ Real-time оновлення через WebSocket
|
|
- ✅ Event Log на dashboard
|
|
- ✅ Автоматичний моніторинг нод та агентів
|
|
- ✅ Background task для відстеження змін
|
|
|
|
**Можна використовувати прямо зараз!**
|
|
|
|
---
|
|
|
|
**Last Updated:** 2025-11-22
|
|
**Status:** ✅ Готово до використання
|
|
**URL:** `http://localhost:8899`
|
|
|