fix(ops): Add network aliases and stabilize DNS for NODA1

- docker-compose.node1.yml: Add network aliases (router, gateway,
  memory-service, qdrant, nats, neo4j) to eliminate manual
  `docker network connect --alias` commands
- docker-compose.node1.yml: ROUTER_URL now uses env variable with
  fallback: ${ROUTER_URL:-http://router:8000}
- docker-compose.node1.yml: Increase router healthcheck start_period
  to 30s and retries to 5
- .gitignore: Add noda1-credentials.local.mdc (local-only SSH creds)
- scripts/node1/verify_agents.sh: Improved output with agent list
- docs: Add NODA1-AGENT-VERIFICATION.md, NODA1-AGENT-ARCHITECTURE.md,
  NODA1-VERIFICATION-REPORT-2026-02-03.md
- config/README.md: How to add new agents
- .cursor/rules/, .cursor/skills/: NODA1 operations skill for Cursor

Root cause fixed: Gateway could not resolve 'router' DNS name when
Router container was named 'dagi-staging-router' without alias.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Apple
2026-02-03 05:55:56 -08:00
parent 8f046e7226
commit a46a70c014
10 changed files with 537 additions and 15 deletions

43
config/README.md Normal file
View File

@@ -0,0 +1,43 @@
# Config — конфігурація проекту
## Як додавати нових агентів (NODA1 / Gateway)
Агенти реєструються в **gateway-bot** і підключаються до Router. Для нового агента:
### 1. Код у `gateway-bot/http_api.py`
- Додати конфігурацію через `load_agent_config()`:
- `agent_id`, `name`, `prompt_path` (файл у `gateway-bot/`), `telegram_token_env` (ім’я змінної середовища для Telegram-токена), `default_prompt`.
- Додати запис у **AGENT_REGISTRY**: `"new_agent_id": NEW_AGENT_CONFIG`.
- Додати webhook endpoint: `@router.post("/new_agent_id/telegram/webhook")``handle_telegram_webhook(NEW_AGENT_CONFIG, update)`.
### 2. Файли в репо
- **Prompt:** `gateway-bot/new_agent_id_prompt.txt` — system prompt агента.
- На сервері (NODA1) у env контейнера gateway додати змінну з Telegram-токеном бота (наприклад `NEW_AGENT_TELEGRAM_BOT_TOKEN`).
### 3. Router
Router приймає запити на `POST /v1/agents/{agent_id}/infer`. Якщо Router має окремий список агентів (наприклад `router_agents.json`), додати туди `new_agent_id`.
### 4. Після змін на НОДА1
- Задеплоїти зміни (git pull у `/opt/microdao-daarion`).
- Перезапустити Gateway: `docker restart dagi-gateway-node1`.
- Перевірити: `curl -s http://localhost:9300/health | jq '.agents'` — новий агент має бути в списку з `prompt_loaded: true` і `telegram_token_configured: true`.
---
## Інші конфіги у `config/`
- **agents_city_mapping.yaml** — маппінг агентів для city/platform.
- **data_cleanup_allowlist.yml** — allowlist для очистки даних.
- **brand/** — конфіги брендів.
---
## Документація
- **PROJECT-MASTER-INDEX.md** — єдина точка входу до документації, швидкі команди.
- **docs/NODA1-AGENT-ARCHITECTURE.md** — архітектура агентів на НОДА1.
- **docs/NODA1-AGENT-VERIFICATION.md** — перевірка агентів на НОДА1.