# Виправлення проблеми з тестовими агентами ## Проблема Тестові агенти (`ag_atlas`, `ag_oracle`, `ag_builder`, `ag_greeter`) з'являлися в базі даних після застосування міграцій або відновлення з бекапу, замінюючи реальні агенти з НОДА2. ## Причини 1. **Міграції**: Раніше міграція `013_city_map_coordinates.sql` містила INSERT для тестових агентів 2. **Бекапи**: Старі бекапи містили тестові агенти 3. **Старий скрипт**: `scripts/setup-node2-agents.sh` намагався призначити тестові агенти до НОДА2 4. **Відсутність захисту**: Не було автоматичного видалення тестових агентів ## Виправлення ### 1. Міграції оновлено Файл `migrations/013_city_map_coordinates.sql`: - INSERT для тестових агентів закоментовано - Додано коментар про те, що тестові агенти не повинні створюватися ### 2. Видалено проблемний скрипт **`scripts/setup-node2-agents.sh`** (видалено): - Намагався призначити тестові агенти до НОДА2 - Замінений на `scripts/sync-node2-dagi-agents.py` ### 3. Створено скрипт видалення **`scripts/remove-test-agents.sh`**: - Автоматично видаляє тестові агенти - Може викликатися після міграцій або вручну ### 4. Інтегровано в health check **`scripts/db-health-check.sh`**: - Автоматично перевіряє наявність тестових агентів - Видаляє їх при виявленні - Запускається кожні 30 хвилин через cron ### 5. Sync скрипт для НОДА2 **`scripts/sync-node2-dagi-agents.py`**: - Завантажує 50 реальних DAGI агентів з `config/agents_city_mapping.yaml` - Призначає їх до `node-2-macbook-m4max` - **Використовуйте цей скрипт замість setup-node2-agents.sh** ## Використання ### Видалити тестові агенти вручну ```bash cd /opt/microdao-daarion bash scripts/remove-test-agents.sh ``` ### Завантажити агентів НОДА2 (правильний спосіб) ```bash cd /opt/microdao-daarion python3 scripts/sync-node2-dagi-agents.py ``` ### Перевірити стан ```bash docker exec daarion-postgres psql -U postgres -d daarion -c " SELECT COUNT(*) as total, COUNT(CASE WHEN node_id = 'node-2-macbook-m4max' THEN 1 END) as node2, COUNT(CASE WHEN id IN ('ag_atlas', 'ag_oracle', 'ag_builder', 'ag_greeter') THEN 1 END) as test FROM agents; " ``` ## Тестові агенти (не повинні існувати) - `ag_atlas` - Atlas - `ag_oracle` - Oracle - `ag_builder` - Builder Bot - `ag_greeter` - Greeter **Ці агенти автоматично видаляються health check скриптом кожні 30 хвилин.** ## Реальні агенти НОДА2 50 агентів з `config/agents_city_mapping.yaml`, організовані по районах: - **Leadership Hall (4)**: Solarius, Sofia, PrimeSynth, Nexor - **System Control (6)**: monitor-node2, vindex, helix, aurora... - **Engineering Lab (5)**: byteforge, vector, chainweaver, cypher, canvas - **Marketing Hub (6)**: roxy, mira, tempo, harmony, faye... - **Finance Office (4)**: financial-analyst, accountant, budget-planner... - **Web3 District (5)**: smart-contract-dev, defi-analyst, tokenomics-expert... - **Security Bunker (7)**: shadelock, exor, penetration-tester... - **Vision Studio (4)**: iris, lumen, spectra, video-analyzer - **R&D Lab (6)**: protomind, labforge, testpilot, modelscout... - **Memory Vault (3)**: somnia, memory-manager, knowledge-indexer ## Запобігання повторенню 1. **Health check**: Автоматично видаляє тестові агенти кожні 30 хвилин 2. **Міграції**: Тестові агенти закоментовані в міграціях 3. **Sync скрипт**: Завжди використовувати `sync-node2-dagi-agents.py` для завантаження реальних агентів 4. **Старий скрипт видалено**: `setup-node2-agents.sh` більше не існує ## Перевірка після відновлення з бекапу ```bash # 1. Видалити тестові агенти bash scripts/remove-test-agents.sh # 2. Завантажити агентів НОДА2 python3 scripts/sync-node2-dagi-agents.py # 3. Перевірити docker exec daarion-postgres psql -U postgres -d daarion -c " SELECT COUNT(*) FROM agents WHERE node_id = 'node-2-macbook-m4max'; " # Має бути: 50 ``` ## Поточний стан - ✅ Тестові агенти видалені - ✅ 50 агентів НОДА2 завантажено - ✅ Health check автоматично видаляє тестові агенти - ✅ Старий скрипт видалено