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:
105
docs/NODA1-AGENT-VERIFICATION.md
Normal file
105
docs/NODA1-AGENT-VERIFICATION.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Перевірка роботи агентів на NODA1
|
||||
|
||||
**Сервер:** 144.76.224.179 (node1-daarion)
|
||||
**Корінь проекту на сервері:** `/opt/microdao-daarion/`
|
||||
|
||||
---
|
||||
|
||||
## Швидка перевірка (на сервері)
|
||||
|
||||
Підключіться по SSH і виконайте скрипт перевірки:
|
||||
|
||||
```bash
|
||||
ssh root@144.76.224.179
|
||||
cd /opt/microdao-daarion
|
||||
./scripts/node1/verify_agents.sh
|
||||
```
|
||||
|
||||
Скрипт перевіряє:
|
||||
|
||||
1. **Prober metrics** (9108) — чи працює agent-e2e-prober
|
||||
2. **Prometheus targets** (9090) — чи збираються метрики
|
||||
3. **POST /debug/agent_ping** (9300) — E2E: Gateway → Router → Memory
|
||||
4. **GET /health** (9300) — стан Gateway та список агентів (prompt завантажено, Telegram токен налаштовано)
|
||||
5. **Webhook Helion** — відповідь на тестовий POST на `/helion/telegram/webhook`
|
||||
|
||||
---
|
||||
|
||||
## Ручні перевірки (на NODA1, localhost)
|
||||
|
||||
Виконуйте **після SSH на сервер** (`ssh root@144.76.224.179`).
|
||||
|
||||
### Health сервісів
|
||||
|
||||
```bash
|
||||
curl -s http://localhost:9102/health # Router
|
||||
curl -s http://localhost:9300/health # Gateway (тут список агентів)
|
||||
curl -s http://localhost:8000/health # Memory Service
|
||||
curl -s http://localhost:6333/healthz # Qdrant
|
||||
```
|
||||
|
||||
### Список агентів і їх конфіг (Gateway)
|
||||
|
||||
```bash
|
||||
curl -s http://localhost:9300/health | jq '.agents'
|
||||
```
|
||||
|
||||
Очікуваний вивід — по кожному агенту: `name`, `prompt_loaded` (true/false), `telegram_token_configured` (true/false).
|
||||
|
||||
### E2E probe (Gateway → Router → Memory)
|
||||
|
||||
```bash
|
||||
curl -s -X POST http://localhost:9300/debug/agent_ping -H "Content-Type: application/json" -d '{}' | jq .
|
||||
```
|
||||
|
||||
Успіх: `router_ok: true`, `memory_ok: true`.
|
||||
|
||||
### Статус контейнерів
|
||||
|
||||
```bash
|
||||
docker ps --format 'table {{.Names}}\t{{.Status}}' | grep -E 'gateway|router|memory|qdrant'
|
||||
```
|
||||
|
||||
Очікувані контейнери (залежить від docker-compose): `dagi-gateway-node1`, router, memory-service, qdrant.
|
||||
|
||||
### Логи Gateway (останні рядки)
|
||||
|
||||
```bash
|
||||
docker logs dagi-gateway-node1 --tail 50
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Агенти в Gateway (реєстр)
|
||||
|
||||
У `gateway-bot/http_api.py` реєстр **AGENT_REGISTRY** містить:
|
||||
|
||||
| agent_id | Webhook path |
|
||||
|------------|-------------------------------|
|
||||
| daarwizz | `/telegram/webhook` (default) |
|
||||
| helion | `/helion/telegram/webhook` |
|
||||
| greenfood | `/greenfood/telegram/webhook` |
|
||||
| nutra | `/nutra/telegram/webhook` |
|
||||
| agromatrix | `/agromatrix/telegram/webhook`|
|
||||
| alateya | `/alateya/telegram/webhook` |
|
||||
| druid | `/druid/telegram/webhook` |
|
||||
| clan | `/clan/telegram/webhook` |
|
||||
| eonarch | `/eonarch/telegram/webhook` |
|
||||
|
||||
Router викликається як: `POST {ROUTER_URL}/v1/agents/{agent_id}/infer`.
|
||||
|
||||
---
|
||||
|
||||
## Якщо з локальної машини (без SSH)
|
||||
|
||||
- Порти 9102, 9300, 8000 тощо на NODA1 можуть бути недоступні ззовні (firewall).
|
||||
- Тоді єдиний варіант — виконувати перевірки **після SSH на сервер** (команди вище).
|
||||
- Альтернатива: налаштувати SSH-тунель і тоді `curl http://localhost:9300/health` на своєму ноутбуку через тунель.
|
||||
|
||||
---
|
||||
|
||||
## Посилання
|
||||
|
||||
- **PROJECT-MASTER-INDEX.md** — єдина точка входу до документації, порти, сервіси.
|
||||
- **NODA1-CURRENT-STATUS-2026-01-26.md** — поточний статус NODA1, health endpoints.
|
||||
- **gateway-bot/http_api.py** — реєстр агентів, `/health`, `/debug/agent_ping`.
|
||||
Reference in New Issue
Block a user