SPB Git

spb/ka-guardian

Public
3.4 KB

# KA Guardian — ka2 · ka4 · ka6

Les trois agents gardiens autonomes du Groupe KA. Depuis le 2026-08-23, ka2/ka4/ka6 ne sont plus des bots de cartographie web : ce sont des agents de maintenance autonomes des connecteurs des plateformes ·Ka, bâtis sur Claude (CLI headless).

# Ce qu'ils font

  1. Détection — toutes les 5 min, chaque agent lit la supervision centralisée d'api-ka (/api/v1/monitoring/connectors, ~2 600 connecteurs classés ok/degraded/broken/stale toutes les 2 h). Un connecteur broken ou stale de son périmètre → incident.
  2. Mission — l'agent dépêche une mission au runner du nœud qui héberge l'app : claude -p headless, lancé dans le repo de l'app, avec un prompt de mission strict (diagnostiquer, reproduire, corriger minimalement, re-tester, pm2 restart du process de sync, commit [kaX] fix connecteur …, jamais de push).
  3. Surveillance — après réparation déclarée, l'incident passe en watching pendant 8 h. Connecteur de retour à ok → résolu.
  4. Rollback automatique — si l'app tombe (healthcheck) ou si le connecteur est toujours cassé après la fenêtre : retour au commit d'avant mission (git reset --hard/revert) + pm2 restart. 3 tentatives max, puis abandoned (intervention humaine).
  5. Vitrine live — chaque site (www.ka2.bot / www.ka4.bot / www.ka6.bot) est une salle de contrôle : flux SSE en direct de chaque action de l'agent (outils, réflexions, verdicts), board d'incidents, couverture par service, historique des missions avec transcript et coût.

# Répartition

Agent Domaine Services surveillés
ka2 www.ka2.bot :8799 louka, immoka, restoka
ka4 www.ka4.bot :8899 autoka, foodka, sortika
ka6 www.ka6.bot :8999 fabrika, jobka, creaka + tout nouveau service (défaut)

# Architecture

  • orchestrator/ — un process FastAPI par agent (M4M36, launchd com.kaX.guardian), SQLite data/kaX.db, dashboard servi sur le même port, tunnels ngrok existants conservés.
  • runner/ — un service par nœud d'app (M3U96a/b, M4M64a/b, port 7791, launchd com.ka.guardian-runner), 1 mission à la fois par nœud, transcripts dans ~/ka-guardian-runner/transcripts/. Exécute claude -p --output-format stream-json et relaie chaque événement à l'orchestrateur (/api/ingest).
  • topology.json — source de vérité : agents, services (nœud/dir/pm2/port), IP LAN, politique (fenêtres, cooldowns, modèle).
  • Auth interne : token partagé ~/.ka-guardian.env (orchestrateurs + runners), header X-KA-Token. Clé Anthropic + clés anti-bot : ~/.claude/.env des nœuds.
  • Communication par le LAN 192.168.2.x (SSH/Tailscale inter-nœuds bloqué).

# Déploiement

bash
deploy/deploy.sh all          # runners + orchestrateurs
deploy/deploy.sh runners      # seulement les 4 runners
deploy/deploy.sh orchestrators

# Admin (token requis)

bash
# mission manuelle sur un connecteur
curl -X POST http://M4M36.maclustr.io:8799/api/admin/mission \
  -H "X-KA-Token: $TOKEN" -d '{"service":"louka","source":"kijiji"}'
# pause / reprise d'un agent
curl -X POST http://M4M36.maclustr.io:8799/api/admin/pause -H "X-KA-Token: $TOKEN" -d '{"paused":true}'

# Historique

Les anciens bots (cartographie du web québécois / influenceurs) sont archivés : ~/ka-bots-backup-20260823.tar.gz sur M4M36 (code + bases SQLite complètes).

Files · c76438dfd481fa54bf2eae50cf934ea1f47d25b8
Menu

Theme