275 lines
11 KiB
Markdown
275 lines
11 KiB
Markdown
# Чеклист для повноцінної роботи агентів 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*
|
||
|