Files
microdao-daarion/scripts/node1/verify_agents.sh
Apple a46a70c014 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>
2026-02-03 05:55:56 -08:00

70 lines
2.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# Verify Agents Script - checks that agents are responding
# Usage: ./verify_agents.sh
set -e
echo "=== AGENT E2E VERIFICATION ==="
echo ""
# 1. Check prober metrics
echo "1. Checking prober metrics..."
PROBER_METRICS=$(curl -s http://localhost:9108/metrics 2>/dev/null || echo "FAIL")
if echo "$PROBER_METRICS" | grep -q "agent_e2e_success"; then
echo " ✅ Prober metrics available"
echo "$PROBER_METRICS" | grep "agent_e2e_success" | head -3
else
echo " ❌ Prober metrics NOT available (prober may not be running)"
fi
echo ""
# 2. Check Prometheus targets
echo "2. Checking Prometheus targets..."
PROM_TARGETS=$(curl -s http://localhost:9090/api/v1/targets 2>/dev/null || echo "FAIL")
if echo "$PROM_TARGETS" | grep -q "prober"; then
echo " ✅ Prober found in Prometheus targets"
else
echo " ⚠️ Prober not in Prometheus targets yet"
fi
echo ""
# 3. Direct agent ping test
echo "3. Testing /debug/agent_ping..."
PING_RESULT=$(curl -s -X POST http://localhost:9300/debug/agent_ping -H "Content-Type: application/json" -d '{}' 2>/dev/null || echo '{"error":"connection failed"}')
echo " $PING_RESULT"
echo ""
# 4. Gateway health та список агентів
echo "4. Gateway health та агенти..."
HEALTH=$(curl -s http://localhost:9300/health 2>/dev/null || echo '{"status":"error"}')
if echo "$HEALTH" | grep -q "healthy"; then
echo " ✅ Gateway healthy"
AGENTS_COUNT=$(echo "$HEALTH" | grep -o '"agents_count":[0-9]*' | cut -d: -f2)
echo " Агентів у реєстрі: ${AGENTS_COUNT:-?}"
if command -v jq >/dev/null 2>&1; then
echo " Агенти (prompt | telegram token):"
echo "$HEALTH" | jq -r '.agents | to_entries[] | " - \(.key): prompt=\(.value.prompt_loaded) token=\(.value.telegram_token_configured)"' 2>/dev/null || echo "$HEALTH" | head -c 400
else
echo " (встановіть jq для детального виводу: .agents)"
echo "$HEALTH" | head -c 400
fi
else
echo " ❌ Gateway unhealthy: $HEALTH"
fi
echo ""
echo ""
# 5. Webhook test
echo "5. Testing webhook (Helion)..."
WEBHOOK=$(curl -s -X POST http://localhost:9300/helion/telegram/webhook \
-H "Content-Type: application/json" \
-d '{"update_id":1}' 2>/dev/null || echo '{"error":"failed"}')
echo " $WEBHOOK"
echo ""
echo "=== VERIFICATION COMPLETE ==="