Skip to content

# Виправлення проблеми з тестовими агентами

## Проблема

Тестові агенти (`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

## Використання

### Видалити тестові агенти вручну

    cd /opt/microdao-daarion
    bash scripts/remove-test-agents.sh

### Завантажити агентів НОДА2 (правильний спосіб)

    cd /opt/microdao-daarion
    python3 scripts/sync-node2-dagi-agents.py

### Перевірити стан

    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` більше не існує

## Перевірка після відновлення з бекапу

    # 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 автоматично видаляє тестові агенти
- ✅ Старий скрипт видалено