- 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
191 lines
9.1 KiB
Markdown
191 lines
9.1 KiB
Markdown
# ✅ Monitor Agent - Повна архітектура та функціональність
|
||
|
||
## 🎯 Структура чатів
|
||
|
||
### 1. Головний Monitor Agent (на всіх сторінках)
|
||
|
||
**Компонент:** `MonitorChat`
|
||
**Розташування:** Всі сторінки `http://localhost:8899/`
|
||
**Agent ID:** `monitor`
|
||
**Пам'ять:** Загальна пам'ять (`monitor`) + всі події системи
|
||
|
||
**Функціональність:**
|
||
- ✅ Кругляшок на всіх сторінках (правый нижній кут)
|
||
- ✅ Відкривається діалогове вікно з головним Monitor Agent
|
||
- ✅ Відображає ВСІ події з усіх НОД та мікроДАО
|
||
- ✅ Автоматично показує зміни в проєкті в реальному часі
|
||
- ✅ Всі події записуються в пам'ять
|
||
- ✅ Може відповідати на питання про метрики та історію
|
||
|
||
### 2. Monitor Agent для НОДИ (в кабінетах НОД)
|
||
|
||
**Компонент:** `NodeMonitorChat`
|
||
**Розташування:** Кабінети НОД (`/nodes/:nodeId`)
|
||
**Agent ID:** `monitor-node-{node_id}`
|
||
**Пам'ять:** Загальна пам'ять (`monitor`) + пам'ять ноди (`monitor-node-{node_id}`)
|
||
|
||
**Функціональність:**
|
||
- ✅ Окремий чат діалогове вікно з Monitor Agent прив'язаним до НОДИ
|
||
- ✅ Фільтрує події тільки для цієї НОДИ
|
||
- ✅ Має доступ до загальної пам'яті + пам'яті своєї НОДИ
|
||
- ✅ Може відповідати на питання про конкретну НОДУ
|
||
|
||
### 3. Monitor Agent для мікроДАО (в кабінетах мікроДАО)
|
||
|
||
**Компонент:** `MicroDaoMonitorChat`
|
||
**Розташування:** Кабінети мікроДАО (`/microdao/:microDaoId`)
|
||
**Agent ID:** `monitor-microdao-{microdao_id}`
|
||
**Пам'ять:** Загальна пам'ять (`monitor`) + пам'ять мікроДАО (`monitor-microdao-{microdao_id}`)
|
||
|
||
**Функціональність:**
|
||
- ✅ Окремий чат діалогове вікно з Monitor Agent прив'язаним до мікроДАО
|
||
- ✅ Фільтрує події тільки для цього мікроДАО
|
||
- ✅ Має доступ до загальної пам'яті + пам'яті свого мікроДАО
|
||
- ✅ Може відповідати на питання про конкретне мікроДАО
|
||
|
||
### 4. Monitor Agent для DAARION (в кабінеті DAARION)
|
||
|
||
**Компонент:** `DaarionMonitorChat`
|
||
**Розташування:** Кабінет DAARION (`/microdao/daarion`)
|
||
**Agent ID:** `monitor` (загальний)
|
||
**Пам'ять:** Загальна пам'ять (`monitor`) - агрегація всіх НОД та мікроДАО
|
||
|
||
**Функціональність:**
|
||
- ✅ Головний чат з Monitor Agent в кабінеті DAARION
|
||
- ✅ Відображає ВСІ зміни в логах проєкту `http://localhost:8899/`
|
||
- ✅ Реальні відображення змін що робляться на `http://localhost:8899/`
|
||
- ✅ Агрегує події з усіх НОД та мікроДАО
|
||
- ✅ Всі події записуються в пам'ять
|
||
- ✅ Може відповідати на питання про метрики та історію розвитку проєкту
|
||
|
||
## 📊 Автоматичне збереження подій
|
||
|
||
### Структура пам'яті
|
||
|
||
1. **Загальна пам'ять:** `monitor`
|
||
- Всі події системи
|
||
- Агрегація з усіх НОД та мікроДАО
|
||
- Доступна всім Monitor Agent
|
||
|
||
2. **Пам'ять для НОДИ:** `monitor-node-{node_id}`
|
||
- Події конкретної НОДИ
|
||
- Доступна Monitor Agent цієї ноди
|
||
|
||
3. **Пам'ять для мікроДАО:** `monitor-microdao-{microdao_id}`
|
||
- Події конкретного мікроДАО
|
||
- Доступна Monitor Agent цього мікроДАО
|
||
|
||
### Як працює збереження
|
||
|
||
1. **WebSocket події** → `useMonitorEvents` hook
|
||
2. **Батчинг** → `addMonitorEventToBatch` (10 подій або 5 секунд)
|
||
3. **Збереження** → Memory Service `/api/memory/monitor-events/batch`
|
||
4. **Розподіл:**
|
||
- Загальна пам'ять: `monitor` (всі події)
|
||
- Специфічна пам'ять: `monitor-node-{node_id}` або `monitor-microdao-{microdao_id}`
|
||
|
||
## 🔄 Відображення подій
|
||
|
||
### Головний Monitor Agent (MonitorChat)
|
||
|
||
- ✅ Показує ВСІ події (не фільтрує)
|
||
- ✅ Відображає події з усіх НОД та мікроДАО
|
||
- ✅ Автоматично додає нові події в чат
|
||
- ✅ Показує шлях до файлу (якщо є)
|
||
|
||
### Monitor Agent для НОДИ (NodeMonitorChat)
|
||
|
||
- ✅ Фільтрує події тільки для цієї НОДИ
|
||
- ✅ Показує інформацію про НОДУ в подіях
|
||
- ✅ Має доступ до загальної пам'яті + пам'яті ноди
|
||
|
||
### Monitor Agent для мікроДАО (MicroDaoMonitorChat)
|
||
|
||
- ✅ Фільтрує події тільки для цього мікроДАО
|
||
- ✅ Показує інформацію про мікроДАО в подіях
|
||
- ✅ Має доступ до загальної пам'яті + пам'яті мікроДАО
|
||
|
||
### Monitor Agent для DAARION (DaarionMonitorChat)
|
||
|
||
- ✅ Показує ВСІ події (агрегує)
|
||
- ✅ Відображає події з усіх НОД та мікроДАО
|
||
- ✅ Показує інформацію про НОДУ в подіях
|
||
- ✅ Відображає реальні зміни в проєкті
|
||
|
||
## 💬 Відповіді на питання
|
||
|
||
### Monitor Agent може відповідати на:
|
||
|
||
1. **Питання про пам'ять:**
|
||
- "Чи запам'ятовуєш зміни?"
|
||
- "Що зберігається в пам'яті?"
|
||
- "Скільки подій зафіксовано?"
|
||
|
||
2. **Питання про статус:**
|
||
- "Який статус системи?"
|
||
- "Як справи?"
|
||
- "Що відбувається?"
|
||
|
||
3. **Питання про агентів:**
|
||
- "Скільки агентів на НОДА2?"
|
||
- "Який статус деплою?"
|
||
- "Які агенти активні?"
|
||
|
||
4. **Питання про історію/метрики:**
|
||
- "Яка історія розвитку проєкту?"
|
||
- "Які зміни були зроблені?"
|
||
- "Покажи метрики"
|
||
- "Що змінилося в проєкті?"
|
||
|
||
### Як працює відповідь
|
||
|
||
1. **Monitor Agent отримує запит**
|
||
2. **Запитує пам'ять:**
|
||
- Загальна пам'ять (`monitor`) - 50% контексту
|
||
- Специфічна пам'ять (якщо є) - 50% контексту
|
||
3. **Формує відповідь** на основі контексту з пам'яті
|
||
4. **Використовує Mistral на НОДА2** для генерації відповіді
|
||
|
||
## ✅ Перевірка функціональності
|
||
|
||
### На всіх сторінках `http://localhost:8899/`:
|
||
|
||
- ✅ Кругляшок Monitor Agent (правый нижній кут)
|
||
- ✅ Відкривається діалогове вікно
|
||
- ✅ Відображаються всі події
|
||
- ✅ Всі події записуються в пам'ять
|
||
|
||
### В кабінетах НОД:
|
||
|
||
- ✅ Окремий чат з Monitor Agent ноди
|
||
- ✅ Фільтрує події по ноді
|
||
- ✅ Має доступ до пам'яті ноди
|
||
|
||
### В кабінетах мікроДАО:
|
||
|
||
- ✅ Окремий чат з Monitor Agent мікроДАО
|
||
- ✅ Фільтрує події по мікроДАО
|
||
- ✅ Має доступ до пам'яті мікроДАО
|
||
|
||
### В кабінеті DAARION:
|
||
|
||
- ✅ Головний чат з Monitor Agent
|
||
- ✅ Відображає всі зміни в проєкті
|
||
- ✅ Реальні відображення змін
|
||
- ✅ Всі події записуються в пам'ять
|
||
- ✅ Може відповідати на питання про метрики та історію
|
||
|
||
## 🎯 Результат
|
||
|
||
✅ **На всіх сторінках** є кругляшок з головним Monitor Agent
|
||
✅ **В кабінетах НОД та мікроДАО** є окремі чати з відповідними Monitor Agent
|
||
✅ **В головному чаті в кабінеті DAARION** відображаються всі зміни в логах проєкту
|
||
✅ **Всі події записуються в пам'ять** Monitor Agent
|
||
✅ **Можна запитати за всі метрики та історію** розвитку проєкту і Monitor Agent все відповість
|
||
|
||
---
|
||
|
||
**Last Updated:** 2025-01-27
|
||
**Status:** ✅ Повна функціональність реалізована
|
||
|