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,200 @@
# Звіт про інструменти агентів та моніторинг DAGI
**Дата:** 2025-11-21
**Сервер:** Node #1 (144.76.224.179)
## 🔍 Інструменти пошуку в інтернеті
### Поточний стан
**❌ Інструменти пошуку НЕ налаштовані для агентів**
Перевірка показала:
- CrewAI backend (`dagi-crewai`) не містить інструментів пошуку (SerperDevTool, DuckDuckGoSearchRun, тощо)
- В `router-config.yml` немає конфігурації інструментів пошуку для агентів
- Агенти `daarwizz` та `helion` не мають доступу до інструментів пошуку
### Доступні інструменти в системі
#### 1. DevTools Agent
-`fs_read` - Читання файлів
-`fs_write` - Запис файлів
-`run_tests` - Запуск тестів
-`git_diff` - Git diff
-`git_commit` - Git commit
#### 2. TokenomicsAdvisor Agent
-`simulate_token_flow` - Симуляція потоків токенів
-`calculate_thresholds` - Розрахунок порогів
-`analyze_proposal` - Аналіз пропозицій
-`predict_rwa_effects` - Прогнозування ефектів RWA
-`query_tokenomics_docs` - Запити до документів токеноміки
-`generate_policy_report` - Генерація звітів про політики
### Рекомендації для додавання пошуку
1. **Додати SerperDevTool або DuckDuckGoSearchRun до CrewAI**
```python
from crewai_tools import SerperDevTool, DuckDuckGoSearchRun
search_tool = SerperDevTool() # або DuckDuckGoSearchRun()
```
2. **Налаштувати для агентів в router-config.yml**
```yaml
agents:
daarwizz:
tools:
- id: web_search
type: crewai
description: "Пошук в інтернеті"
helion:
tools:
- id: web_search
type: crewai
description: "Пошук в інтернеті"
```
---
## 🎨 Мультимодальні інструменти
### ✅ Доступні мультимодальні можливості
#### 1. Обробка зображень (Vision)
- ✅ **Swapper Service - vision-8b** (Qwen3-VL 8B)
- Модель: `specialist_vision_8b`
- Використання: Обробка фото через Telegram
- Агенти: `daarwizz`, `helion`
- Статус: ✅ Працює
#### 2. Обробка голосових повідомлень (Audio)
- ✅ **STT Service** (Speech-to-Text)
- Порт: 9000
- Використання: Розпізнавання голосових повідомлень
- Агенти: `daarwizz`, `helion`
- Статус: ✅ Працює
#### 3. Vision Encoder (Embeddings)
- ✅ **Vision Encoder Service** (OpenCLIP ViT-L/14)
- Порт: 8001
- Використання: Генерація embeddings для тексту та зображень
- Статус: ✅ Налаштовано
#### 4. Спеціалізовані моделі (Swapper Service)
- ✅ `vision-8b` - Обробка зображень
- ✅ `math-7b` - Математичні розрахунки
- ✅ `structured-fc-3b` - Function calling та JSON
- ✅ `rag-mini-4b` - RAG запити
### Стан мультимодальності по агентах
| Агент | Фото | Голос | Документи | RAG | Memory |
|-------|------|-------|-----------|-----|--------|
| **daarwizz** | ✅ | ✅ | ✅ | ✅ | ✅ |
| **helion** | ✅ | ✅ | ✅ | ✅ | ✅ |
| **devtools** | ❌ | ❌ | ❌ | ❌ | ❌ |
| **greenfood** | ❌ | ❌ | ❌ | ❌ | ❌ |
| **tokenomics-advisor** | ❌ | ❌ | ❌ | ✅ | ❌ |
---
## 📊 DAGI Моніторинг
### Поточний стан
#### Prometheus
- ✅ **Статус:** Healthy
- ✅ **Порт:** 9090
- ✅ **URL:** http://144.76.224.179:9090
- ⚠️ **Проблеми:** Деякі targets показують `down`:
- `gateway` - down
- `router` - down
- `stt-service` - down
- `neo4j_exporter` - down
#### Grafana
- ⚠️ **Статус:** Restarting (проблеми з плагіном neo4j-datasource)
- ✅ **Порт:** 3000
- ✅ **URL:** http://144.76.224.179:3000
- ⚠️ **Проблема:** Плагін `neo4j-datasource` не знайдено (404)
### Налаштовані метрики
Prometheus збирає метрики з:
- ✅ `dagi-router` (9102)
- ✅ `telegram-gateway` (8000)
- ✅ `dagi-gateway` (9300)
- ✅ `dagi-rbac` (9200)
- ✅ `dagi-crewai` (9010)
- ✅ `dagi-parser` (9400)
- ✅ `dagi-vision-encoder` (8001)
- ✅ `dagi-devtools` (8008)
- ✅ `dagi-stt` (9000)
- ✅ `dagi-tts` (9101)
- ✅ `dagi-qdrant` (6333)
- ✅ `nats` (8222)
- ✅ `postgres` (5432)
### Чи відображаються зміни в реальному часі?
**⚠️ Частково**
**Проблеми:**
1. Деякі сервіси не експортують метрики (`/metrics` endpoint)
2. Grafana перезапускається через проблеми з плагінами
3. Не всі targets доступні для Prometheus
**Що працює:**
- ✅ Prometheus збирає метрики з доступних сервісів
- ✅ Метрики оновлюються з інтервалом 10-30 секунд
- ✅ Router та Gateway мають health endpoints
**Що потрібно виправити:**
1. Додати `/metrics` endpoints до всіх сервісів
2. Виправити Grafana (видалити проблемний плагін або встановити правильний)
3. Перевірити доступність targets для Prometheus
---
## 🔗 Посилання для моніторингу
### Локальний доступ (на сервері)
- **Prometheus:** http://localhost:9090
- **Grafana:** http://localhost:3000
- **Router Health:** http://localhost:9102/health
- **Gateway Health:** http://localhost:9300/health
- **Router Providers:** http://localhost:9102/providers
- **Router Routing:** http://localhost:9102/routing
### Публічний доступ
- **Prometheus:** http://144.76.224.179:9090
- **Grafana:** http://144.76.224.179:3000
- **Gateway Health:** https://gateway.daarion.city/health
---
## 📝 Рекомендації
### 1. Додати інструменти пошуку
- Інтегрувати SerperDevTool або DuckDuckGoSearchRun в CrewAI
- Налаштувати для агентів `daarwizz` та `helion`
- Додати конфігурацію в `router-config.yml`
### 2. Виправити моніторинг
- Додати `/metrics` endpoints до всіх сервісів
- Виправити Grafana (видалити проблемний плагін)
- Перевірити доступність всіх targets
### 3. Розширити мультимодальність
- Додати обробку відео
- Додати TTS (Text-to-Speech) для голосових відповідей
- Розширити підтримку документів (docx, xlsx, тощо)
---
**Останнє оновлення:** 2025-11-21
**Статус:** ⚠️ Потребує уваги (інструменти пошуку та моніторинг)