Files
microdao-daarion/docs/TEST_AGENTS_FIX.md

5.3 KiB
Raw Permalink Blame History

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

Проблема

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