- 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
106 lines
3.2 KiB
Markdown
106 lines
3.2 KiB
Markdown
# Monitor Agent & NodeAgent - Архітектура та Інтеграція
|
||
|
||
## 📊 Поточна ситуація
|
||
|
||
### Monitor Agent:
|
||
- **НОДА1:** ✅ Задеплоєно (`agent-monitor`)
|
||
- **НОДА2:** ❌ Не знайдено (потрібно додати)
|
||
|
||
### NodeAgent:
|
||
- **НОДА2:** ✅ Створено як сервіс (`services/node2-nodeagent/`)
|
||
- **Роль:** Координатор ноди (не агент для відображення)
|
||
- **Функції:** Управління Swoper, Memory, Health checks, Self-healing
|
||
|
||
---
|
||
|
||
## 🎯 Правильна архітектура
|
||
|
||
### 1. Monitor Agent на кожній НОДА
|
||
|
||
**Призначення:**
|
||
- Збір подій та метрик з локальної ноди
|
||
- Відправка в єдиний Memory Service
|
||
- Локальне логування для швидкого доступу
|
||
|
||
**Архітектура:**
|
||
```
|
||
НОДА1 (Monitor Agent) ──┐
|
||
│
|
||
НОДА2 (Monitor Agent) ──┼──► Memory Service (PostgreSQL)
|
||
│ ├──► Qdrant (Vector)
|
||
НОДА3 (Monitor Agent) ──┘ ├──► Milvus (Long-range)
|
||
└──► Neo4j (Graph)
|
||
```
|
||
|
||
### 2. NodeAgent vs Monitor Agent
|
||
|
||
**NodeAgent (Сервіс):**
|
||
- Координатор ноди (backend service)
|
||
- Управління ресурсами
|
||
- Health checks
|
||
- Self-healing
|
||
- НЕ відображається як агент в UI
|
||
|
||
**Monitor Agent (Агент):**
|
||
- Збір та аналіз подій
|
||
- Інтеграція з Memory Service
|
||
- Чат з користувачем
|
||
- Відображається в UI як агент
|
||
|
||
**Рекомендація:**
|
||
- NodeAgent залишається як backend service
|
||
- Monitor Agent відображається в кабінеті НОДИ
|
||
- Monitor Agent використовує NodeAgent для доступу до ресурсів
|
||
|
||
---
|
||
|
||
## 🔧 План інтеграції
|
||
|
||
### Крок 1: Додати Monitor Agent на НОДА2
|
||
|
||
```typescript
|
||
// src/api/node2Agents.ts
|
||
{
|
||
id: 'agent-monitor-node2',
|
||
name: 'Monitor Agent',
|
||
role: 'System Monitoring & Event Logging (Node-2)',
|
||
model: 'local_qwen3_8b',
|
||
backend: 'local',
|
||
status: 'active',
|
||
node: 'node-2',
|
||
priority: 'high',
|
||
category: 'System',
|
||
type: 'worker',
|
||
department: 'System',
|
||
}
|
||
```
|
||
|
||
### Крок 2: Створити API для автоматичного збереження
|
||
|
||
**Endpoint:** `/api/memory/monitor-events`
|
||
|
||
**Функціональність:**
|
||
- Автоматичне збереження подій з WebSocket
|
||
- Батчинг для оптимізації
|
||
- Збереження в PostgreSQL, Qdrant, Milvus, Neo4j
|
||
|
||
### Крок 3: Підключити до кабінета НОДИ
|
||
|
||
**Відображення:**
|
||
- Monitor Agent в списку агентів ноди
|
||
- NodeAgent як сервіс (не агент)
|
||
- Метрики та події від Monitor Agent
|
||
|
||
---
|
||
|
||
## 📝 Детальний план
|
||
|
||
### 1. Додати Monitor Agent на НОДА2
|
||
|
||
### 2. Створити Memory Service Integration
|
||
|
||
### 3. Оптимізувати збір метрик (батчинг)
|
||
|
||
### 4. Підключити до кабінета НОДИ
|
||
|