# 📊 Monitor Agent - Архітектура пам'яті ## 🎯 Структура пам'яті ### 1. Загальна пам'ять (Global Memory) **Agent ID:** `monitor` **Призначення:** - Агрегація подій з усіх НОД та мікроДАО - Системні події всього DAARION - Загальна статистика та метрики **Використання:** - Загальний Monitor Agent (DAARION кабінет) - Всі Monitor Agent мають доступ до загальної пам'яті ### 2. Пам'ять для НОДИ (Node-Specific Memory) **Agent ID:** `monitor-node-{node_id}` **Приклади:** - `monitor-node-1` - пам'ять Monitor Agent для НОДА1 - `monitor-node-2` - пам'ять Monitor Agent для НОДА2 - `monitor-node-3` - пам'ять Monitor Agent для НОДА3 **Призначення:** - Події конкретної НОДИ - Метрики та статуси ноди - Агенти та сервіси ноди **Використання:** - Monitor Agent конкретної НОДИ (NodeMonitorChat) - Має доступ до загальної пам'яті + пам'яті своєї ноди ### 3. Пам'ять для мікроДАО (MicroDAO-Specific Memory) **Agent ID:** `monitor-microdao-{microdao_id}` **Приклади:** - `monitor-microdao-daarion-dao` - пам'ять Monitor Agent для DAARION - `monitor-microdao-greenfood` - пам'ять Monitor Agent для GREENFOOD - `monitor-microdao-energy-union` - пам'ять Monitor Agent для ENERGY UNION **Призначення:** - Події конкретного мікроДАО - Агенти та канали мікроДАО - Проєкти та задачі мікроДАО **Використання:** - Monitor Agent конкретного мікроДАО (MicroDaoMonitorChat) - Має доступ до загальної пам'яті + пам'яті свого мікроДАО ## 🔄 Як працює пам'ять ### Збереження подій 1. **WebSocket події** → `useMonitorEvents` hook 2. **Батчинг** → `addMonitorEventToBatch` (10 подій або 5 секунд) 3. **Збереження** → Memory Service `/api/memory/monitor-events/batch` 4. **Розподіл:** - Загальна пам'ять: `monitor` (всі події) - Специфічна пам'ять: `monitor-node-{node_id}` або `monitor-microdao-{microdao_id}` ### Отримання контексту 1. **Monitor Agent отримує запит** 2. **Запитує пам'ять:** - Загальна пам'ять (`monitor`) - половина контексту - Специфічна пам'ять (`monitor-node-{node_id}` або `monitor-microdao-{microdao_id}`) - половина контексту 3. **Комбінує контекст** для формування відповіді ## 📊 Приклад роботи ### Monitor Agent для НОДА2 **Пам'ять:** - Загальна: `monitor` (всі події системи) - Специфічна: `monitor-node-2` (події НОДА2) **Контекст для відповіді:** ``` Загальні події системи: - [node_event] НОДА1 оновлено статус - [agent_event] Агент Solarius задеплоєно - [system_event] Оновлено конфігурацію Події НОДА2: - [agent_event] Агент Sofia активний - [node_event] НОДА2 CPU: 45% - [system_event] Swapper Service працює ``` ### Monitor Agent для DAARION мікроДАО **Пам'ять:** - Загальна: `monitor` (всі події системи) - Специфічна: `monitor-microdao-daarion-dao` (події DAARION) **Контекст для відповіді:** ``` Загальні події системи: - [node_event] НОДА1 оновлено статус - [agent_event] Агент Solarius задеплоєно Події МікроДАО daarion-dao: - [agent_event] DAARION Core команда активна - [project_event] Створено новий проєкт - [channel_event] Новий канал створено ``` ## ✅ Переваги 1. **Загальна пам'ять:** - Агрегація даних з усієї системи - Загальна статистика - Системні події 2. **Специфічна пам'ять:** - Детальна інформація про конкретну НОДУ/мікроДАО - Швидкий доступ до релевантних подій - Оптимізація контексту 3. **Комбінований доступ:** - Monitor Agent має доступ до обох типів пам'яті - Більш інформативні відповіді - Контекстна релевантність --- **Last Updated:** 2025-01-27 **Status:** ✅ Архітектура пам'яті реалізована