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
This commit is contained in:
Apple
2025-11-27 00:19:40 -08:00
parent 5bed515852
commit 3de3c8cb36
6371 changed files with 1317450 additions and 932 deletions

View File

@@ -0,0 +1,130 @@
# ✅ Monitor Agent - Підключення до Mistral на НОДА2 завершено
## 🎯 Що зроблено
### 1. Підключення до Mistral на НОДА2
**Конфігурація:**
- ✅ Ollama URL: `http://192.168.1.244:11434` (НОДА2)
- ✅ Модель: `mistral:7b` (4.1 GB) - менша модель для не перевантаження НОДА2
- ✅ Альтернативи: `mistral:latest` (4.1 GB), `mistral-nemo:12b` (7.1 GB)
**Чому менша модель?**
- `mistral:7b` (4.1 GB) достатня для Monitor Agent
- Не перевантажує НОДА2 при одночасній роботі з іншими агентами
- Швидша відповідь
- Ефективне використання ресурсів
### 2. Архітектура пам'яті
**Структура:**
1. **Загальна пам'ять:** `monitor`
- Всі події системи
- Агрегація з усіх НОД та мікроДАО
- Доступна всім Monitor Agent
2. **Пам'ять для НОДИ:** `monitor-node-{node_id}`
- Події конкретної НОДИ
- Доступна Monitor Agent цієї ноди
3. **Пам'ять для мікроДАО:** `monitor-microdao-{microdao_id}`
- Події конкретного мікроДАО
- Доступна Monitor Agent цього мікроДАО
**Як працює:**
- Monitor Agent отримує контекст з обох типів пам'яті
- 50% з загальної пам'яті (`monitor`)
- 50% зі специфічної пам'яті (`monitor-node-{node_id}` або `monitor-microdao-{microdao_id}`)
### 3. Збереження подій
**Автоматичне збереження:**
- Події зберігаються в обидві пам'яті:
- Специфічна пам'ять (monitor-node-{node_id} або monitor-microdao-{microdao_id})
- Загальна пам'ять (monitor) - для агрегації
**Батчинг:**
- 10 подій або 5 секунд
- Оптимізовано для збору метрик з багатьох нод
## 📊 Поточна конфігурація
### Monitor Agent Service
**Файл:** `services/monitor-agent-service/app/main.py`
**Налаштування:**
```python
OLLAMA_BASE_URL = "http://192.168.1.244:11434" # НОДА2
MISTRAL_MODEL = "mistral:7b" # Менша модель
```
### Memory Service
**Файл:** `services/memory-service/app/monitor_events.py`
**Збереження:**
- Події зберігаються в обидві пам'яті
- Специфічна пам'ять для ноди/мікроДАО
- Загальна пам'ять для агрегації
## ✅ Переваги
1. **Менше навантаження на НОДА2**
- 4.1 GB замість 7.1 GB
- Швидша відповідь
- Менше використання RAM
2. **Достатня якість**
- Mistral 7B достатня для моніторингу
- Швидкі відповіді
- Ефективне використання ресурсів
3. **Комбінована пам'ять**
- Загальна пам'ять для контексту системи
- Специфічна пам'ять для деталей
- Більш інформативні відповіді
## 🚀 Запуск
```bash
# 1. Перевірити доступність Ollama на НОДА2
curl http://192.168.1.244:11434/api/tags
# 2. Перевірити чи є mistral:7b
curl http://192.168.1.244:11434/api/tags | grep mistral
# 3. Якщо потрібно встановити
ssh user@192.168.1.244
ollama pull mistral:7b
# 4. Запустити Monitor Agent Service
cd services/monitor-agent-service
python -m uvicorn app.main:app --host 0.0.0.0 --port 9500 --reload
```
## 📋 Environment Variables
```bash
# .env файл
OLLAMA_BASE_URL=http://192.168.1.244:11434
MISTRAL_MODEL=mistral:7b
MEMORY_SERVICE_URL=http://localhost:8000
```
## ✅ Статус
| Компонент | Статус | Деталі |
|-----------|--------|--------|
| **Підключення до НОДА2** | ✅ Готово | Ollama на 192.168.1.244:11434 |
| **Модель Mistral** | ✅ Готово | mistral:7b (4.1 GB) |
| **Загальна пам'ять** | ✅ Готово | monitor - всі події |
| **Специфічна пам'ять** | ✅ Готово | monitor-node-{node_id}, monitor-microdao-{microdao_id} |
| **Комбінований контекст** | ✅ Готово | 50% загальна + 50% специфічна |
---
**Last Updated:** 2025-01-27
**Status:** ✅ Готово до використання