Architecture Zetamind · Décision Cédric · 2026-04-28 · Mode ultrathink

Cohabitation
OpenClaw + Hermes

Pas concurrence — chaque runtime garde le rôle qui lui convient le mieux.

Rapport généré 2026-04-29 00:14 CEST

I.Décision fondatrice

Ce que Cédric a engagé le 28 avril, mode ultrathink, carte blanche.

« L'objectif est de faire cohabiter les deux pas les mettre en concurrence. Chacun doit avoir le rôle qui lui convient le mieux. Mettre en place l'écosystème et en faire documentation interne, tester et itérer jusqu'à ce que le résultat soit à 100% fonctionnel et évolutif sans régression et bien enregistré dans les vault et qdrant pour avoir des traces et une base de connaissance. » — Cédric Atticot, 2026-04-28

II.Identité des deux runtimes

Pas de fork à choisir. Audit local : les deux sont déjà installés et tournent.

🦞 OpenClaw
v2026.4.25
Fork TypeScript modernisé. Node 22+/24. Gateway WebSocket sur port 18789 (LISTEN actif).
Workspace : /root/.openclaw/
Config : openclaw.json (JSON5)
Force : multi-agent natif, 28+ channels, plugin SDK propre, dashboard web, Tailscale.
⚕ Hermes Agent
v0.11.0
Source originelle Nous Research. Python 3.11. Process actif sans LISTEN port (secondaire).
Workspace : /root/.hermes/
Config : config.yaml
Force : 26 skills custom rodés, CLI scriptable, intégration MCP mature, sessions SQLite FTS5.

III.Matrice de cohabitation canonique

Chaque besoin a un runtime canonique. Aucun doublon, aucun conflit.

CoucheRuntime canoniqueJustification
Gateway frontal TelegramOpenClaw main agentBot @Aim33_Bot route → main agent (♏ Aimée). Multi-channel natif.
Multi-agent isolation (Aimée, Tara/Hermès)OpenClaw agents.list[]agentDir per-agent, identités séparées, routing rules.
Wrapper CLI aimee "msg"Hermes (ou OpenClaw via ask-aimee)Wrapper v2 dual-mode. Default = OpenClaw via ask-aimee.sh. Fallback = Hermes avec contexte vault injecté.
Skills domain custom (research, devops, github, mcp...)Hermes — 26 skillsRodés à ~/.hermes/skills/. Ne pas migrer.
Skills bundled (clawhub, coding-agent, channels)OpenClaw — 16/53 readyNatif, plug-and-play.
Veille YouTube quotidien 07:00systemd + scripts customzetamind-veille.timer orchestre RSS → filter → Telegram.
Cron audits ad-hocHermes cron~/.hermes/cron/jobs.json. 1 job actif (5/5 09:00 audit-aimee-process-j7).
Telegram-ingest URLs YouTubeService Python customzetamind-telegram-ingest.service via Zetamind_bot (PAS @Aim33_Bot).
LP HTML interactif *.live.cercleonline.comFastAPI CoolifyFrontend, hors agent runtime. Stack canonique : FastAPI + vanilla HTML/CSS/JS + Chart.js.
Mémoire Qdrant zetamind_memories + zetamind_wikiMCP partagé (Phase 2)Aucun runtime n'a Qdrant natif. Server MCP à exposer aux deux configs.
Sync vault → Qdrant hebdosystemd timervault-sync.timer dimanche 04:00 (FIX #1).

IV.État système — métriques live

Snapshot 2026-04-29 00:14 CEST. Tout est opérationnel.

Qdrant points
7 033
6 848 dans zetamind_memories + 185 dans zetamind_wiki. Status green.
Skills disponibles
42
26 Hermes custom + 16/53 OpenClaw bundled ready. Pas de doublon.
Timers systemd actifs
5
veille 07:00, redeploy 07:05, vault-sync dim 04:00, coolify-cleanup 1+15, audit-aimee 5/5.
Bots Telegram
@Aim33_Bot
+ Zetamind_bot
@Aim33 = chat naturel Aimée (OpenClaw main). Zetamind_bot = ingest URLs + alertes (Python custom).
Auth profiles
Codex
+ Claude CLI
Partagés entre runtimes. Cooldown 5h ou ~9 min selon le type.
Pipelines actifs
7
Veille, telegram-ingest, vault-sync, redeploy LP, coolify-cleanup, audit-aimee-cron, LP veille FastAPI.

V.Visualisation des rôles

Distribution des 11 couches métier sur les runtimes.

Distribution des couches

État système Qdrant (points par collection)

VI.Plan de migration progressive

3 sprints, pas de bigbang. Stabilisation → enrichissement → consolidation.

VII.Risques & garde-fous

Ce qui peut casser, et comment on l'évite.

Conflit auth Codex/Anthropic partagé
Les deux runtimes partagent chad942@hotmail.com (codex) et anthropic:claude-cli (oauth). Quand un consomme le token, l'autre attend la fin du cooldown (5h pour quotas, ~9 min pour device_code).

Mitigation : wrapper aimee v2 utilise OpenClaw par défaut (quota plus stable). Hermes fallback uniquement avec --via=hermes.
Drift IDENTITY workspace OpenClaw
IDENTITY.md doit refléter calibration transmission. Mis à jour 28/04 avec section "Registre obligatoire" + matrice canonique. Une fresh session-id est requise pour que les modifications soient prises en compte.

Mitigation : passer --session-id $(date +%s) aux appels OpenClaw quand on vient de modifier IDENTITY.
Drift agent tara dans openclaw.json
openclaw.json a tara.workspace = /root/.openclaw/workspace/agents/hermes, mais le contrat opérationnel dit /root/tara-workspace. À fixer.

Mitigation : openclaw config set agents.list[1].workspace /root/tara-workspace en Sprint 1.
Conflit port 18789 au reboot
OpenClaw a la main aujourd'hui (LISTEN). Hermes tourne en process secondaire sans LISTEN. Au reboot, l'ordre de démarrage peut inverser.

Mitigation : Hermes config force auto_port sur fallback. OpenClaw = service-prioritaire.
Cron doublonné
Risque de double-fire si même job dans systemd ET Hermes cron. Règle : un seul runtime gère chaque job.

Mitigation : systemd = pipelines métier (veille, sync, redeploy, cleanup). Hermes cron = audits agent. OpenClaw cron = vide (à activer si besoin futur).
Skills doublonnés
Si un même skill existe dans Hermes ET OpenClaw, comportement non-déterministe selon le canal d'entrée.

Mitigation : règle stricte — nouveau skill métier → OpenClaw bundle. Skills custom Cédric existants → restent Hermes.

VIII.Tests live & validation

Aimée répond avec le registre transmission obligatoire sur les deux interfaces.

Test 1 · OpenClaw main agent (gpt-5.4)
Q: « Aimée, en 2 phrases : qui es-tu et quel est ton registre obligatoire avec Cédric ? »

R: « Je suis Aimée, la partenaire cognitive principale de Cédric : féminine, directe, précise, faite pour cadrer, trancher et faire avancer le réel. Mon registre obligatoire avec lui est le français, conclusion d'abord, très peu de bruit, sans flatterie creuse, en le traitant comme un pair expert avec clarté, densité et momentum. »
Test 2 · Wrapper aimee v2 fresh session
Q: « Quel runtime gère le Telegram chat naturel et lequel gère les skills custom ? »

R: « Chat naturel Telegram : OpenClaw main agent. Skills custom : Hermes. »

Matrice canonique correctement reproduite ✓
Cohabitation OpenClaw + Hermes · Décision Cédric 2026-04-28 ultrathink · Pas de bigbang · Chacun son rôle · Aimée = OpenClaw main + ♏ · Hermès / Tara = OpenClaw tara · Skills custom = Hermes 26 rodés · Pipelines = systemd préservés · LP = FastAPI Coolify · Cohabitation OpenClaw + Hermes · Décision Cédric 2026-04-28 ultrathink · Pas de bigbang · Chacun son rôle ·

IX.Liens vivants

Sources et références canoniques.

Concept wiki canonique : wiki/concepts/Cohabitation OpenClaw Hermes.md · indexé Qdrant zetamind_wiki · top-1 sur recherche «cohabitation OpenClaw Hermes runtime fork» (score 0.61).