feat: додано Node Registry, GreenFood, Monitoring та Utils

This commit is contained in:
Apple
2025-11-21 00:35:41 -08:00
parent 31f3602047
commit e018b9ab68
74 changed files with 13948 additions and 0 deletions

274
docs/agents_checklist.md Normal file
View File

@@ -0,0 +1,274 @@
# Чеклист для повноцінної роботи агентів DAARION
**Дата створення**: 2025-11-18
**Статус**: У розробці
---
## ✅ Що вже працює
### 1. Інфраструктура
-**DAGI Router** (9102) - маршрутизація до агентів та провайдерів
-**NATS** (4222) - event streaming
-**PostgreSQL** (5432) - основна БД
-**Telegram Gateway** (8000) - Long Polling для 3 ботів
-**Local Telegram Bot API** (8081) - зменшення латентності
-**Prometheus** (9090) - збір метрик
-**Grafana** (3000) - візуалізація
### 2. LLM Infrastructure
-**Ollama** - локальна генерація (Qwen3:8b, Qwen2.5:14b)
-**OpenRouter** - fallback (DeepSeek-Chat)
-**LLM Provider** в Router - вибір оптимального провайдера
### 3. Агенти (Telegram боти)
-**DAARWIZZ** (`@DAARWIZZBot`) - microDAO оркестратор
-**Helion** (`@energyunionBot`) - Energy Union
-**GREENFOOD** (`@greenfoodliveBot`) - ERP для виробників (13 sub-agents)
### 4. Сервіси AI/ML
-**CrewAI** (9010) - multi-agent workflows
-**Vision Encoder** (8001) - розпізнавання зображень
-**DevTools** (8008) - інструменти розробника
- ⚠️ **Parser** (9400) - OCR/PDF (працює, unhealthy через curl)
- ⚠️ **STT** (9000) - Speech-to-Text (працює, unhealthy)
- ⚠️ **TTS** (9101) - Text-to-Speech (працює, unhealthy)
- ⚠️ **Qdrant** (6333) - Vector DB (працює, unhealthy)
- ⏸️ **RAG Service** - зупинено (потрібен рефакторинг Haystack 2.x)
### 5. Інтеграції
-**Memory Service** - зберігання контексту діалогів
-**RBAC Service** (9200) - управління правами
-**Gateway Service** (9300) - HTTP API
---
## 🔧 Що потрібно доопрацювати
### 1. Voice Processing (STT/TTS)
#### STT (Speech-to-Text)
- **Статус**: Сервіс працює, але потрібна інтеграція
- **Що зробити**:
- [ ] Перевірити чи `telegram-gateway` викликає STT для голосових повідомлень
- [ ] Додати логування STT викликів
- [ ] Протестувати українською та англійською
- [ ] Оптимізувати модель Whisper (tiny/base для швидкості)
- **Пріоритет**: 🔴 Високий (для голосової взаємодії)
#### TTS (Text-to-Speech)
- **Статус**: Сервіс працює, але не інтегровано
- **Що зробити**:
- [ ] Додати TTS endpoint в `telegram-gateway`
- [ ] Опція для користувачів: отримувати відповіді голосом
- [ ] Підтримка української/англійської мов
- **Пріоритет**: 🟡 Середній (nice-to-have)
---
### 2. Document Processing (Parser + RAG)
#### Parser Service
- **Статус**: ✅ Працює (але unhealthy через відсутність `curl`)
- **Що зробити**:
- [x] Додати curl в Dockerfile
- [ ] Rebuild контейнера
- [ ] Перевірити парсинг PDF через Telegram
- **Пріоритет**: 🟢 Низький (технічна проблема, не функціональна)
#### RAG Service
- **Статус**: ⏸️ Зупинено (проблеми з Haystack 2.x API)
- **Що зробити**:
- [ ] Рефакторинг `ingest_pipeline.py` для Haystack 2.x
- [ ] Виправити `async/await` синтаксис
- [ ] Додати тести
- [ ] Перезапустити сервіс
- **Пріоритет**: 🔴 Високий (для RAG queries по документах)
---
### 3. CrewAI Workflows
#### GREENFOOD Crew (13 agents)
- **Статус**: ✅ Агенти створені, але не підключені до Router
- **Що зробити**:
- [ ] Додати tools для агентів (API виклики, БД queries)
- [ ] Створити Tasks для кожного Crew
- [ ] Інтеграція з Router (`mode: "crew"`, `scenario: "onboard_vendor"`)
- [ ] Тестування всіх 4 Crews
- **Пріоритет**: 🟡 Середній (GREENFOOD assistant працює через LLM, Crew - для складних сценаріїв)
#### Інші Crews
- [ ] DAARWIZZ Crew (microDAO workflows)
- [ ] Helion Crew (Energy Union workflows)
- **Пріоритет**: 🟢 Низький (поки LLM достатньо)
---
### 4. Memory & Context Management
#### Memory Service
- **Статус**: ✅ Працює (контекст діалогів, user facts)
- **Що зробити**:
- [ ] Додати довгострокову пам'ять (summaries старих діалогів)
- [ ] Інтеграція з RAG для semantic memory
- [ ] User preferences storage
- **Пріоритет**: 🟡 Середній
#### Session Management
- **Статус**: ✅ Базова імплементація (`session_id = telegram:{chat_id}`)
- **Що зробити**:
- [ ] Підтримка multi-device (один user, кілька чатів)
- [ ] Session expiry та cleanup
- [ ] Cross-channel sessions (Telegram + Web)
- **Пріоритет**: 🟢 Низький
---
### 5. Monitoring & Observability
#### Prometheus Metrics
- **Статус**: ✅ DAGI Router та Telegram Gateway
- **Що зробити**:
- [ ] Додати `/metrics` в інші сервіси (Parser, STT, TTS, CrewAI)
- [ ] Створити custom metrics (LLM tokens, agent requests, STT duration)
- [ ] Налаштувати alerting (Slack/Telegram notifications)
- **Пріоритет**: 🟡 Середній
#### Grafana Dashboards
- **Статус**: ⏳ Grafana встановлено, дашбордів немає
- **Що зробити**:
- [ ] DAGI Router Dashboard (requests, latency, errors)
- [ ] Telegram Gateway Dashboard (messages, active chats)
- [ ] LLM Performance Dashboard (tokens, providers usage)
- [ ] System Dashboard (CPU, RAM, disk)
- **Пріоритет**: 🟡 Середній
#### Logging
- **Статус**: ⚠️ Логи є, але не централізовані
- **Що зробити**:
- [ ] Додати Loki для централізованих логів
- [ ] Інтеграція Grafana + Loki
- [ ] Structured logging (JSON format)
- **Пріоритет**: 🟢 Низький
---
### 6. Безпека та RBAC
#### Authentication
- **Статус**: ⚠️ Telegram auth через bot token, немає JWT для HTTP API
- **Що зробити**:
- [ ] JWT authentication для `/api/*` endpoints
- [ ] OAuth2 для frontend
- [ ] API keys для external integrations
- **Пріоритет**: 🔴 Високий (для production)
#### RBAC
- **Статус**: ✅ RBAC Service працює (9200)
- **Що зробити**:
- [ ] Інтеграція RBAC з усіма агентами
- [ ] Перевірка прав доступу до MicroDAO actions
- [ ] Audit log для всіх RBAC операцій
- **Пріоритет**: 🔴 Високий (для multi-user microDAO)
---
### 7. Performance & Scalability
#### LLM Optimization
- **Статус**: ⚠️ Одна Ollama інстанція, no rate limiting
- **Що зробити**:
- [ ] LLM Load Balancer (кілька Ollama nodes)
- [ ] Rate limiting (запобігання abuse)
- [ ] LLM response caching (Redis)
- [ ] Smart routing (urgent queries → fast model)
- **Пріоритет**: 🟡 Середній (для масштабування до 100+ користувачів)
#### Message Queue
- **Статус**: ✅ NATS працює, але синхронна обробка
- **Що зробити**:
- [ ] Async processing через NATS JetStream
- [ ] Retry mechanism для failed requests
- [ ] Dead letter queue
- **Пріоритет**: 🟢 Низький (поточний throughput достатній)
---
### 8. Тестування
#### Unit Tests
- **Статус**: ❌ Відсутні
- **Що зробити**:
- [ ] Тести для Router (`routing_engine.py`)
- [ ] Тести для LLM Provider
- [ ] Тести для Memory Service
- **Пріоритет**: 🟡 Середній
#### Integration Tests
- **Статус**: ❌ Відсутні
- **Що зробити**:
- [ ] End-to-end тест (Telegram → Router → LLM → Response)
- [ ] STT pipeline test
- [ ] Document processing test (PDF → Parser → RAG → Query)
- **Пріоритет**: 🟡 Середній
#### Load Testing
- **Статус**: ❌ Не проводилось
- **Що зробити**:
- [ ] Simulate 100 одночасних діалогів
- [ ] Тест STT під навантаженням
- [ ] LLM throughput benchmark
- **Пріоритет**: 🟢 Низький (для pre-production)
---
## 🎯 Пріоритизація (що робити далі)
### 🔴 Критично (наступні 1-2 дні)
1. ✅ Додати `/metrics` в Router та Gateway
2. 🔄 Перевірити голосовий чат (STT)
3. 🔄 Виправити RAG Service (Haystack 2.x)
4. ⏳ Додати JWT authentication для HTTP API
### 🟡 Важливо (наступні 1-2 тижні)
1. Завершити GREENFOOD Crew (додати tools та tasks)
2. Створити Grafana дашборди
3. Додати TTS інтеграцію
4. RBAC інтеграція з агентами
5. Memory Service improvements
### 🟢 Потім (1-2 місяці)
1. LLM Load Balancer
2. Centralized Logging (Loki)
3. Unit & Integration Tests
4. Load Testing
5. Масштабування до 1000+ агентів
---
## 📊 Поточний статус
| Компонент | Статус | Готовність |
|-----------|--------|------------|
| **Core Router** | ✅ Працює | 95% |
| **Telegram Bots** | ✅ 3 боти | 90% |
| **LLM (Ollama)** | ✅ Працює | 85% |
| **STT (Whisper)** | ⚠️ Потребує тестування | 70% |
| **TTS** | ⚠️ Не інтегровано | 50% |
| **Parser/OCR** | ✅ Працює | 80% |
| **RAG** | ⏸️ Зупинено | 40% |
| **CrewAI** | ⚠️ Базова імплементація | 60% |
| **Monitoring** | ✅ Prometheus + Grafana | 75% |
| **RBAC** | ✅ Працює | 80% |
| **Memory** | ✅ Працює | 75% |
| **Security** | ⚠️ Базова (Telegram) | 50% |
| **Tests** | ❌ Відсутні | 10% |
**Загальна готовність**: **~70%** для MVP
**Для production**: **~50%**
---
*Документ оновлюється: 2025-11-18*