---
title: OpenClaw et Hermes Agent offrent les mêmes fonctionnalités, mais pas les mêmes réglages par défaut
description: OpenClaw et Hermes Agent sont les deux grands agents open source qui vivent sur votre machine et vous répondent dans vos messageries. En octobre 2026, leurs fonctionnalités se rejoignent, pas leurs réglages par défaut. Un comparatif interactif avec les petits claws (NanoClaw, nanobot, ZeroClaw, PicoClaw, IronClaw), ce que m’a appris l’usage des deux, et lequel choisir selon la situation.
date: 2026-10-16
tags: agents IA, OpenClaw, Hermes Agent, auto-hébergement, harnais d’agent
---

OpenClaw et Hermes Agent font le même travail : un agent open source qui vit sur votre propre machine, vous répond dans Telegram, Slack ou WhatsApp, lance des outils, se souvient de vous et écrit ses propres skills. En octobre 2026, leurs listes de fonctionnalités se recoupent presque entièrement. Leurs réglages par défaut, non. OpenClaw est pensé pour aller partout : des dizaines de canaux de discussion, des applis mobiles qui servent de capteurs, de nombreux agents derrière une seule gateway. Hermes est construit autour d’une boucle d’apprentissage et d’un large choix d’endroits où exécuter ses commandes. Les deux lancent les outils directement sur votre ordinateur tant que vous ne changez rien, et pour beaucoup de gens, un harnais (harness) plus petit, voire aucun, reste le meilleur choix.

Je fais tourner OpenClaw sur un Mac mini depuis mai, 17 agents au dernier décompte, et j’ai fait tourner Hermes à côté avec deux profils jusqu’en septembre. Cette note met les deux côte à côte, avec les cinq « claws » plus petits apparus autour d’eux. Les chiffres viennent de la documentation, du README et de la page GitHub de chaque projet, relevés le 16 octobre. Les figures s’animent ou répondent à un clic, et un sélecteur vous attend à la fin.

<figure class="fd-fig ah ah-stars" aria-labelledby="ah1-cap" data-desc="Étoiles GitHub au 16 octobre 2026, à l’échelle. OpenClaw, TypeScript, MIT : 392 150. Hermes Agent, Python, MIT : 254 281. nanobot, Python, MIT : 49 079. ZeroClaw, Rust, Apache 2.0 ou MIT : 32 983. NanoClaw, TypeScript, MIT : 30 955. PicoClaw, Go, MIT : 30 077. IronClaw, Rust, Apache 2.0 : 12 659. OpenClaw a publié la 2026.10.4 le 16 octobre et Hermes la v0.22.2 le 15 octobre.">
<p class="ah-h">Étoiles GitHub, 16 octobre 2026</p>
<ol class="ah-stars-list">
<li class="ah-star ah-star-big ah-w-oc"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">OpenClaw<small>TypeScript · MIT</small></p><span class="ah-bar"><i></i></span><b>392 k</b></li>
<li class="ah-star ah-star-big ah-w-he"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">Hermes Agent<small>Python · MIT</small></p><span class="ah-bar"><i></i></span><b>254 k</b></li>
<li class="ah-star ah-w-nb"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/nanobot.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">nanobot<small>Python · MIT</small></p><span class="ah-bar"><i></i></span><b>49 k</b></li>
<li class="ah-star ah-w-zc"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/zeroclaw.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">ZeroClaw<small>Rust · Apache 2.0 / MIT</small></p><span class="ah-bar"><i></i></span><b>33 k</b></li>
<li class="ah-star ah-w-nc"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/nanoclaw.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">NanoClaw<small>TypeScript · MIT</small></p><span class="ah-bar"><i></i></span><b>31 k</b></li>
<li class="ah-star ah-w-pc"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/picoclaw.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">PicoClaw<small>Go · MIT</small></p><span class="ah-bar"><i></i></span><b>30 k</b></li>
<li class="ah-star ah-w-ic"><img class="ah-logo" src="/assets/img/notes/agent-harnesses/ironclaw.png" alt="" width="36" height="36" decoding="async"><p class="ah-name">IronClaw<small>Rust · Apache 2.0</small></p><span class="ah-bar"><i></i></span><b>13 k</b></li>
</ol>
<p class="mp-strip"><b>Cette semaine</b><span>OpenClaw 2026.10.4 le 16 octobre, Hermes v0.22.2 le 15 octobre.</span></p>
<figcaption id="ah1-cap">Les étoiles mesurent l’attention, pas la qualité. Barres à l’échelle ; les logos sont ceux de chaque projet.</figcaption>
</figure>

## Deux gros projets et une foule de petits

OpenClaw est celui qui a lancé la vague. L’assistant personnel de Peter Steinberger est passé de Clawd à Moltbot, puis à OpenClaw, en janvier. Son auteur a rejoint OpenAI en février, et depuis juillet le projet appartient à l’OpenClaw Foundation, une organisation à but non lucratif où OpenAI est, selon la fondation elle-même, un donateur et non un propriétaire. C’est du TypeScript sous licence MIT, et les versions s’enchaînent : la 2026.10.4 est sortie le 16 octobre.

Hermes Agent vient de Nous Research, le labo derrière les modèles Hermes. C’est du Python sous MIT, sorti pour la première fois en mars, et il avance tout aussi vite. La v0.22, « The Threshold Release », est arrivée le 14 octobre et a fait passer le code source d’environ 1,06 million de lignes à 698 000.

Autour des deux, des harnais plus petits ont chacun choisi une chose à mieux faire. NanoClaw met chaque agent dans un conteneur. nanobot garde un petit cœur en Python. ZeroClaw et PicoClaw tiennent sur des cartes bon marché. IronClaw réécrit OpenClaw en Rust, autour de la sécurité.

## Dans les deux cas, une gateway autour d’une boucle

Oubliez les marques, et les deux ont la même forme. Un processus gateway reste allumé et écoute vos comptes de messagerie. Un message arrive, la gateway trouve la bonne session, et une boucle d’agent tourne : le modèle demande un outil, l’outil s’exécute, le résultat revient, jusqu’à ce que le modèle tienne sa réponse. En chemin, l’agent écrit dans des fichiers Markdown que la session suivante lira, et la réponse repart vers la discussion d’où venait le message.

Les différences sont dans les boîtes. La gateway d’OpenClaw est un seul processus Node de longue durée, avec un WebSocket sur `127.0.0.1:18789`, et chaque agent, chaque canal et chaque téléphone lui parle. Hermes fait tourner une gateway en Python, et chaque profil a son propre répertoire, avec sa mémoire, ses skills et ses tâches cron. OpenClaw réveille aussi ses agents de lui-même : par défaut, un heartbeat lance un tour d’agent complet toutes les 30 minutes. Hermes attend vos messages, ou les tâches cron que vous décrivez en langage courant, et ne donne un `/heartbeat` à une session que si vous le demandez.

<figure class="fd-fig ah ah-anat" aria-labelledby="ah2-cap" data-desc="Un message à travers chaque harnais, en cinq étapes, l’étape en cours mise en évidence tour à tour. Un : un message arrive. OpenClaw prend environ 30 canaux de discussion, plus des applis pour téléphones et ordinateurs ; Hermes a 25 adaptateurs de plateforme ou plus et une appli desktop. Deux : la gateway l’aiguille. OpenClaw fait tourner un seul processus Node avec un WebSocket sur le port 18789 de localhost, et tous les agents derrière lui ; Hermes fait tourner une gateway Python, et chaque profil a son propre répertoire. Trois : la boucle lance les outils. Les deux acceptent n’importe quel modèle ; OpenClaw peut confier la boucle à Claude Code ou Codex, et Hermes fait tourner des modèles locaux via llama.cpp en un clic depuis la v0.22. Quatre : il prend des notes. OpenClaw tient MEMORY.md et des notes quotidiennes, et les consolide lors d’une passe Dreaming planifiée ; Hermes tient un petit MEMORY.md et un USER.md, et cherche dans les anciennes sessions en plein texte. Cinq : il répond, ou se réveille de lui-même. OpenClaw lance un tour de heartbeat toutes les 30 minutes par défaut ; Hermes lance des tâches cron écrites en langage courant, et un heartbeat par session seulement si vous le demandez.">
<p class="ah-now" aria-hidden="true"><span>1 · Un message arrive</span><span>2 · La gateway l’aiguille</span><span>3 · La boucle lance les outils</span><span>4 · Il prend des notes</span><span>5 · Il répond, ou se réveille</span></p>
<div class="ah-anat-in">
<p class="ah-anat-hd"><span class="ah-anat-blank"></span><span class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" decoding="async">OpenClaw</span><span class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" decoding="async">Hermes</span></p>
<ol class="ah-steps ah-cyc5">
<li class="ah-step"><p class="ah-step-n"><b>1</b>Un message arrive</p><p class="ah-cell">Environ 30 canaux de discussion, plus des applis mobiles et desktop</p><p class="ah-cell">25+ adaptateurs de plateforme et une appli desktop</p></li>
<li class="ah-step"><p class="ah-step-n"><b>2</b>La gateway l’aiguille</p><p class="ah-cell">Un seul processus Node, un WebSocket sur <code>127.0.0.1:18789</code>, tous les agents derrière</p><p class="ah-cell">Une gateway Python ; chaque profil a son propre répertoire</p></li>
<li class="ah-step"><p class="ah-step-n"><b>3</b>La boucle lance les outils</p><p class="ah-cell">N’importe quel modèle, et Claude Code ou Codex peuvent mener la boucle</p><p class="ah-cell">N’importe quel modèle, et llama.cpp en local en un clic depuis la v0.22</p></li>
<li class="ah-step"><p class="ah-step-n"><b>4</b>Il prend des notes</p><p class="ah-cell">MEMORY.md et notes quotidiennes, fusionnés par une passe Dreaming</p><p class="ah-cell">Un petit MEMORY.md et un USER.md, plus la recherche dans les anciennes sessions</p></li>
<li class="ah-step"><p class="ah-step-n"><b>5</b>Il répond, ou se réveille</p><p class="ah-cell">Un tour de heartbeat toutes les 30 minutes, actif par défaut</p><p class="ah-cell">Cron en langage courant ; <code>/heartbeat</code> sur demande</p></li>
</ol>
</div>
<figcaption id="ah2-cap">Les cinq mêmes étapes, des pièces différentes. La surbrillance fait passer un message dans les deux.</figcaption>
</figure>

## Là où les réglages par défaut divergent

Fonctionnalité par fonctionnalité, la plupart des lignes d’un comparatif disent « les deux ». La question utile, c’est de quel côté penche chaque projet quand vous l’installez sans rien changer. Passez d’un onglet à l’autre.

Mémoire : OpenClaw injecte une pile de fichiers d’espace de travail dans chaque session, AGENTS.md, SOUL.md, USER.md, MEMORY.md et les notes quotidiennes, jusqu’à 20 000 caractères par fichier et 60 000 au total, et une passe Dreaming planifiée les consolide. Hermes garde volontairement une mémoire minuscule : 2 200 caractères de notes et 1 375 sur vous, figés au démarrage de la session. Quand il lui en faut plus, il cherche dans ses anciennes conversations avec la recherche plein texte de SQLite.

Canaux : le catalogue d’OpenClaw liste environ 30 plateformes de discussion, et ses applis pour iOS, Android, macOS, Windows et Linux transforment un appareil en nœud, avec caméra, localisation et notifications. Hermes a plus de 25 adaptateurs et une appli desktop. Je n’ai pas trouvé d’appli mobile.

Sandbox : les deux exécutent les commandes sur l’hôte par défaut. La sandbox d’OpenClaw reste désactivée tant que vous ne l’activez pas, avec Docker, Podman ou SSH derrière. Hermes fait de l’endroit où tournent les commandes un réglage à part entière, local, Docker, SSH, Singularity, Modal, Daytona ou Vercel Sandbox, et demande par défaut à un second modèle de juger les commandes signalées avant leur exécution.

Modèles : les deux acceptent n’importe quel fournisseur. OpenClaw peut aussi confier toute la boucle à Claude Code ou Codex. Hermes a ajouté les modèles locaux en un clic via llama.cpp, et il sait exporter des trajectoires pour l’apprentissage par renforcement, ce qui en dit long sur ceux qui le construisent.

Agents : OpenClaw route chaque compte de messagerie vers un agent par des bindings, et je fais tourner 17 agents derrière une seule gateway. Un profil Hermes, c’est un agent avec son propre répertoire, et `delegate_task` confie des sous-tâches à des agents enfants.

<figure class="fd-fig ah ah-vs" aria-labelledby="ah3-cap" data-desc="Un comparatif à onglets des réglages par défaut d’OpenClaw et d’Hermes. Mémoire : OpenClaw injecte jusqu’à 60 000 caractères de fichiers d’espace de travail dans chaque session, 20 000 par fichier et 4 000 pour USER.md, et une passe Dreaming les consolide ; Hermes garde 3 575 caractères de mémoire, 2 200 de notes et 1 375 sur vous, figés au démarrage de la session, et cherche dans les anciennes sessions avec la recherche plein texte de SQLite. Canaux : OpenClaw liste environ 30 plateformes de discussion, plus des applis qui font des téléphones des nœuds avec caméra, localisation et notifications ; Hermes a 25 adaptateurs ou plus et une appli desktop. Sandbox : la sandbox d’OpenClaw est désactivée par défaut, avec des backends Docker, Podman ou SSH ; Hermes utilise par défaut le backend local, propose Docker, SSH, Singularity, Modal, Daytona et Vercel Sandbox, et laisse un second modèle juger les commandes signalées. Modèles : les deux acceptent n’importe quel fournisseur ; OpenClaw peut confier la boucle à Claude Code ou Codex, Hermes fait tourner des modèles locaux via llama.cpp et exporte des trajectoires pour l’apprentissage par renforcement. Agents : OpenClaw route les discussions vers de nombreux agents derrière une seule gateway, 17 dans mon installation ; un profil Hermes est un agent avec son propre répertoire, et delegate_task lance des agents enfants.">
<input class="fd-radio" type="radio" name="ah3" id="ah3-mem" checked>
<input class="fd-radio" type="radio" name="ah3" id="ah3-ch">
<input class="fd-radio" type="radio" name="ah3" id="ah3-sb">
<input class="fd-radio" type="radio" name="ah3" id="ah3-mod">
<input class="fd-radio" type="radio" name="ah3" id="ah3-ag">
<div class="fd-tabs ah-tabs"><label for="ah3-mem">Mémoire</label><label for="ah3-ch">Canaux</label><label for="ah3-sb">Sandbox</label><label for="ah3-mod">Modèles</label><label for="ah3-ag">Agents</label></div>
<div class="ah-vs-hd"><p class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" decoding="async">OpenClaw</p><p class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" decoding="async">Hermes</p></div>
<div class="ah-pane ah-p-mem">
<div class="ah-vs-row">
<div class="ah-col"><p class="ah-big">60 000</p><p class="ah-unit">caractères de fichiers d’espace de travail, au maximum, dans chaque session</p><span class="ah-meter"><i class="ah-m-100"></i></span><ul class="ah-pts"><li>AGENTS.md, SOUL.md, USER.md, MEMORY.md, notes quotidiennes</li><li>20 000 par fichier, 4 000 pour USER.md</li><li>Une passe Dreaming planifiée les consolide</li></ul></div>
<div class="ah-col"><p class="ah-big">3 575</p><p class="ah-unit">caractères de mémoire, figés au démarrage de la session</p><span class="ah-meter"><i class="ah-m-mem"></i></span><ul class="ah-pts"><li>MEMORY.md 2 200, USER.md 1 375</li><li>Anciennes sessions : recherche plein texte SQLite</li></ul></div>
</div>
<p class="mp-strip"><b>Penchant</b><span>OpenClaw charge beaucoup à chaque tour. Hermes garde un petit noyau et cherche le reste.</span></p>
</div>
<div class="ah-pane ah-p-ch">
<div class="ah-vs-row">
<div class="ah-col"><p class="ah-big">~30</p><p class="ah-unit">canaux de discussion au catalogue, plus les applis pour appareils</p><span class="ah-meter"><i class="ah-m-100"></i></span><ul class="ah-pts"><li>Telegram est le premier conseillé</li><li>Les applis iOS, Android, macOS, Windows et Linux deviennent des nœuds</li><li>Un nœud prête sa caméra, sa localisation et ses notifications</li></ul></div>
<div class="ah-col"><p class="ah-big">25+</p><p class="ah-unit">adaptateurs de plateforme, plus une appli desktop</p><span class="ah-meter"><i class="ah-m-ch"></i></span><ul class="ah-pts"><li>Telegram, Discord, Slack, WhatsApp, Signal, SMS, e-mail</li><li>Home Assistant, Matrix, iMessage via un pont</li><li>Pas d’appli mobile, à ma connaissance</li></ul></div>
</div>
<p class="mp-strip"><b>Penchant</b><span>OpenClaw va plus loin, et fait de votre téléphone un capteur.</span></p>
</div>
<div class="ah-pane ah-p-sb">
<div class="ah-vs-row">
<div class="ah-col"><p class="ah-big ah-big-alert">Aucune</p><p class="ah-unit">sandbox par défaut : la session principale lance les outils sur l’hôte</p><ul class="ah-pts"><li>Modes : off, non-main, all</li><li>Backends : Docker, Podman, SSH et deux autres</li></ul></div>
<div class="ah-col"><p class="ah-big ah-big-alert">Local</p><p class="ah-unit">backend de terminal par défaut : les commandes tournent sur l’hôte</p><ul class="ah-pts"><li>Ou Docker, SSH, Singularity, Modal, Daytona, Vercel Sandbox</li><li>Approbations intelligentes : un second modèle juge les commandes signalées</li><li>Manuel, ou désactivé, plus des motifs d’interdiction</li></ul></div>
</div>
<p class="mp-strip"><b>Penchant</b><span>Les deux démarrent sur votre machine. Hermes met les alternatives à un réglage près.</span></p>
</div>
<div class="ah-pane ah-p-mod">
<div class="ah-vs-row">
<div class="ah-col"><p class="ah-big">Tous</p><p class="ah-unit">les fournisseurs, et le harnais est lui aussi un plugin</p><ul class="ah-pts"><li>Claude Code ou Codex peuvent mener la boucle d’agent</li><li>Un modèle par agent</li></ul></div>
<div class="ah-col"><p class="ah-big">Tous</p><p class="ah-unit">les fournisseurs, et les modèles locaux en un clic</p><ul class="ah-pts"><li>llama.cpp intégré depuis la v0.22</li><li>Export de trajectoires pour l’apprentissage par renforcement</li></ul></div>
</div>
<p class="mp-strip"><b>Penchant</b><span>Match nul sur le choix. Hermes penche côté recherche, OpenClaw s’appuie sur les agents de code que vous utilisez déjà.</span></p>
</div>
<div class="ah-pane ah-p-ag">
<div class="ah-vs-row">
<div class="ah-col"><p class="ah-big">17</p><p class="ah-unit">agents derrière mon unique gateway</p><ul class="ah-pts"><li>Les bindings routent chaque compte de messagerie vers un agent</li><li><code>sessions_spawn</code> lance des sous-agents</li><li>Un bot Telegram par agent, chez moi</li></ul></div>
<div class="ah-col"><p class="ah-big">1</p><p class="ah-unit">agent par profil, choisi avec <code>hermes -p</code></p><ul class="ah-pts"><li>Chaque profil : sa config, son SOUL.md, sa mémoire, ses skills et ses crons</li><li><code>delegate_task</code> confie des sous-tâches à des agents enfants</li></ul></div>
</div>
<p class="mp-strip"><b>Penchant</b><span>OpenClaw est fait pour une flotte. Hermes, pour un agent à la fois.</span></p>
</div>
<figcaption id="ah3-cap">Réglages par défaut tirés de la documentation de chaque projet au 16 octobre. Chacun peut se configurer pour se rapprocher de l’autre.</figcaption>
</figure>

## Les deux apprennent seuls, au compteur

Le README d’Hermes le présente comme le seul agent doté d’une boucle d’apprentissage intégrée. Ce n’est plus vrai depuis avril, quand OpenClaw a livré Skill Workshop. Voici ce qui déclenche vraiment chacune des deux.

Hermes compte. À chaque dizaine de prompts que vous envoyez, un agent de revue forké relit la conversation et décide quoi enregistrer en mémoire. Toutes les 10 itérations d’outil dans un même tour, le même genre de revue décide s’il faut écrire ou corriger un skill. Un curateur marque un skill comme périmé après 14 jours sans usage et l’archive au bout de 30. Il n’en supprime jamais.

OpenClaw compte aussi. Au bout de 10 itérations du modèle dans une conversation, une revue en arrière-plan enregistre ce qui mérite d’être gardé sous forme de skill appris, et pendant un tour, l’agent corrige un skill appris qui l’a induit en erreur. Les skills que personne n’utilise pendant 30 jours sont archivés, chaque modification garde la version précédente, et `/learn undo` en annule une.

Les deux ont un déclencheur manuel, `/refine` sur Hermes et `/learn` sur OpenClaw. Le vrai écart, c’est la mémoire : Hermes la revoit selon son propre calendrier, alors qu’OpenClaw la laisse à l’agent et à la passe Dreaming, et n’automatise que les skills.

<figure class="fd-fig ah ah-learn" aria-labelledby="ah4-cap" data-desc="Les deux boucles d’apprentissage comptent jusqu’à dix, puis lancent une revue. Hermes compte vos prompts : au bout de 10, une revue forkée décide quoi enregistrer dans MEMORY.md. Il compte aussi les itérations d’outil dans un même tour : au bout de 10, une revue écrit ou corrige un skill. Son curateur marque les skills inutilisés comme périmés après 14 jours et les archive après 30, sans jamais les supprimer. OpenClaw compte les itérations du modèle dans une conversation : au bout de 10, une revue en arrière-plan enregistre un skill appris, et pendant un tour, l’agent corrige un skill appris qui l’a induit en erreur. Les skills inutilisés pendant 30 jours sont archivés, chaque modification est versionnée, et /learn undo en annule une. À la main : /refine sur Hermes, /learn sur OpenClaw.">
<p class="ah-now ah-now-learn" aria-hidden="true"><span>On compte jusqu’à dix</span><span>Dix. La revue démarre.</span></p>
<div class="mp-two-row">
<div class="mp-two-card">
<p class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" decoding="async">Hermes</p>
<p class="ah-ct-l">Vos prompts</p>
<p class="ah-dots" aria-hidden="true"><span class="ah-dots-on"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></p>
<p class="ah-out">Revue : l’enregistrer dans MEMORY.md ?</p>
<p class="ah-ct-l">Itérations d’outil dans un tour</p>
<p class="ah-dots" aria-hidden="true"><span class="ah-dots-on"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></p>
<p class="ah-out">Revue : écrire ou corriger un skill</p>
<p class="mp-two-line">Inutilisé 14 jours : périmé. 30 jours : archivé. Jamais supprimé.</p>
</div>
<p class="mp-two-vs">et</p>
<div class="mp-two-card">
<p class="ah-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" decoding="async">OpenClaw</p>
<p class="ah-ct-l">Itérations du modèle dans une conversation</p>
<p class="ah-dots" aria-hidden="true"><span class="ah-dots-on"><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></span><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i><i></i></p>
<p class="ah-out">Revue : enregistrer un skill appris</p>
<p class="ah-ct-l">Pendant un tour</p>
<p class="ah-out ah-out-on">Corriger le skill appris qui l’a induit en erreur</p>
<p class="mp-two-line">Inutilisé 30 jours : archivé. Chaque modification versionnée, <code>/learn undo</code>.</p>
</div>
</div>
<p class="mp-strip"><b>À la main</b><span><code>/refine</code> sur Hermes, <code>/learn</code> sur OpenClaw.</span></p>
<figcaption id="ah4-cap">Les deux compteurs atteignent dix, puis une revue décide quoi garder. Seul Hermes en fait une pour la mémoire.</figcaption>
</figure>

## Les deux lancent les outils sur votre ordinateur par défaut

C’est la partie que j’aurais voulu qu’on me dise en premier. Sans configuration, OpenClaw exécute les outils de votre session principale sur l’hôte. Son README le dit, et sa page sur la sandbox commence par « Le sandboxing est désactivé par défaut. » Le backend de terminal par défaut d’Hermes est local, lui aussi. Un skill que vous installez, ou un prompt injecté via un e-mail que l’agent lit, peut donc atteindre tout ce que votre compte utilisateur peut atteindre.

Ce n’est pas théorique. En février, la CVE-2026-25253 permettait, d’un seul clic sur un lien piégé, de faire fuiter un token de gateway OpenClaw et d’exécuter du code ; elle a été corrigée dans la 2026.1.29. Un scan de ClawHub, le registre de skills d’OpenClaw, a trouvé 341 skills malveillants sur 2 857. SecurityScorecard a compté 40 214 instances OpenClaw exposées sur internet le 9 février. Hermes a eu quatre CVE de son côté.

Certains des petits harnais existent précisément pour ça. NanoClaw fait tourner chaque groupe d’agents dans son propre conteneur, et les requêtes sortantes passent par une gateway qui ajoute les identifiants : l’agent ne détient jamais de clé d’API en clair. IronClaw exécute les outils non fiables dans une sandbox WebAssembly avec une liste d’autorisation d’endpoints, et n’injecte les secrets qu’à la frontière de l’hôte. Choisissez une configuration dans la figure et voyez ce qu’un mauvais skill peut atteindre.

<figure class="fd-fig ah ah-blast" aria-labelledby="ah5-cap" data-desc="Ce qu’un mauvais skill peut atteindre selon quatre configurations, sur six choses de votre machine : vos documents, vos clés SSH, vos clés d’API, vos sessions de navigateur, l’espace de travail de l’agent et internet. Sur l’hôte, la valeur par défaut de la session principale d’OpenClaw et du backend local d’Hermes, les six sont accessibles. Dans une sandbox Docker, optionnelle sur les deux, seul l’espace de travail monté est accessible à coup sûr, et les clés ou le réseau seulement si vous les autorisez. Le conteneur par groupe d’agents de NanoClaw, son réglage par défaut, atteint le dossier du groupe, et le réseau seulement s’il est autorisé ; les identifiants restent hors du conteneur. Les outils WebAssembly d’IronClaw, son réglage par défaut pour les outils non fiables, n’atteignent rien sans autorisation : fichiers et endpoints doivent être autorisés, et les secrets sont injectés à la frontière de l’hôte et surveillés contre les fuites. En dessous, le bilan d’OpenClaw : la CVE-2026-25253, une exécution de code à distance en un clic, corrigée dans la 2026.1.29 ; 341 skills malveillants sur 2 857 dans ClawHub ; 40 214 instances exposées sur internet le 9 février.">
<input class="fd-radio" type="radio" name="ah5" id="ah5-host" checked>
<input class="fd-radio" type="radio" name="ah5" id="ah5-dock">
<input class="fd-radio" type="radio" name="ah5" id="ah5-nano">
<input class="fd-radio" type="radio" name="ah5" id="ah5-iron">
<div class="fd-tabs ah-tabs"><label for="ah5-host">Sur l’hôte</label><label for="ah5-dock">Sandbox Docker</label><label for="ah5-nano">NanoClaw</label><label for="ah5-iron">IronClaw</label></div>
<div class="ah-blast-in">
<div class="ah-who-pane ah-w-host"><p class="ah-blast-n">6 sur 6</p><p class="ah-blast-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" decoding="async"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" decoding="async">Par défaut pour la session principale d’OpenClaw et le backend local d’Hermes</p></div>
<div class="ah-who-pane ah-w-dock"><p class="ah-blast-n">1, peut-être 3</p><p class="ah-blast-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" decoding="async"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" decoding="async">Optionnel sur les deux : le conteneur voit ce que vous montez et lui passez</p></div>
<div class="ah-who-pane ah-w-nano"><p class="ah-blast-n">1, peut-être 2</p><p class="ah-blast-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/nanoclaw.png" alt="" width="20" height="20" decoding="async">Par défaut : un conteneur par groupe d’agents, les identifiants ajoutés à l’extérieur</p></div>
<div class="ah-who-pane ah-w-iron"><p class="ah-blast-n">0 sauf autorisation</p><p class="ah-blast-who"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/ironclaw.png" alt="" width="20" height="20" decoding="async">Par défaut pour les outils non fiables : WebAssembly avec des permissions par capacité</p></div>
<ul class="ah-tiles">
<li class="ah-t ah-t-docs"><b>Vos documents</b><em class="ah-s-yes">accessibles</em><em class="ah-s-may">seulement si autorisés</em><em class="ah-s-no">hors d’atteinte</em></li>
<li class="ah-t ah-t-ssh"><b>Clés SSH</b><em class="ah-s-yes">accessibles</em><em class="ah-s-may">seulement si autorisées</em><em class="ah-s-no">hors d’atteinte</em></li>
<li class="ah-t ah-t-keys"><b>Clés d’API</b><em class="ah-s-yes">accessibles</em><em class="ah-s-may">seulement si autorisées</em><em class="ah-s-no">hors d’atteinte</em></li>
<li class="ah-t ah-t-web"><b>Sessions du navigateur</b><em class="ah-s-yes">accessibles</em><em class="ah-s-may">seulement si autorisées</em><em class="ah-s-no">hors d’atteinte</em></li>
<li class="ah-t ah-t-ws"><b>L’espace de travail de l’agent</b><em class="ah-s-yes">accessible</em><em class="ah-s-may">seulement si autorisé</em><em class="ah-s-no">hors d’atteinte</em></li>
<li class="ah-t ah-t-net"><b>Internet</b><em class="ah-s-yes">accessible</em><em class="ah-s-may">seulement si autorisé</em><em class="ah-s-no">hors d’atteinte</em></li>
</ul>
</div>
<div class="mp-stats ah-stats-alert">
<p><b>1 clic</b><span>CVE-2026-25253 : d’une fuite de token à l’exécution de code, corrigée dans la 2026.1.29</span></p>
<p><b>341</b><span>skills malveillants sur 2 857 dans ClawHub, en février</span></p>
<p><b>40 214</b><span>instances OpenClaw exposées sur internet, le 9 février</span></p>
</div>
<figcaption id="ah5-cap">Schéma : ce que chaque configuration laisse toucher à un outil par défaut, d’après la documentation de chaque projet. Les chiffres sont ceux d’OpenClaw, parce que c’est lui qui offre le plus d’installations à attaquer.</figcaption>
</figure>

## Chaque petit claw choisit son combat

Chaque petit claw est en partie une réaction à la taille d’OpenClaw. Le README de NanoClaw le dit sans détour : OpenClaw, c’est « près d’un demi-million de lignes de code, 53 fichiers de configuration et plus de 70 dépendances ». NanoClaw est « conçu pour être facile à comprendre et entièrement adapté à vos besoins », et l’adapter veut dire changer le code, pas la configuration.

NanoClaw repose sur le Claude Agent SDK d’Anthropic, avec un conteneur par groupe d’agents, et vous ajoutez un canal en lançant un skill comme `/add-telegram`. nanobot, du Data Intelligence Lab de l’université de Hong Kong, est le petit harnais Python, avec Telegram, Feishu, WeChat, Slack et Discord parmi ses canaux.

ZeroClaw et PicoClaw visent le matériel bon marché. ZeroClaw est un binaire Rust unique qui parle à une vingtaine de fournisseurs de modèles et peut piloter les broches GPIO d’un Raspberry Pi, d’un Arduino ou d’un ESP32. PicoClaw est écrit en Go, annonce un démarrage en moins d’une seconde sur un seul cœur à 0,6 GHz, et reconnaît honnêtement que les builds récents utilisent 10 à 20 Mo de RAM, pas les moins de 10 de son accroche.

IronClaw, de NEAR AI, se présente comme un OS d’agent axé sur la confidentialité, la sécurité et l’extensibilité : une réécriture en Rust inspirée d’OpenClaw, avec des outils en WebAssembly, des secrets chiffrés en AES-256-GCM, PostgreSQL pour l’état et aucune télémétrie. Ce sont les affirmations des projets eux-mêmes. Je n’ai mesuré aucun d’entre eux.

<figure class="fd-fig ah ah-small" aria-labelledby="ah6-cap" data-desc="Les cinq petits claws, chacun avec son argument. NanoClaw, TypeScript, MIT, 31 000 étoiles : un assistant IA qui fait tourner les agents en sécurité dans leurs propres conteneurs ; un conteneur par groupe d’agents sur le Claude Agent SDK, des identifiants ajoutés hors du conteneur, des canaux ajoutés sous forme de skills comme /add-telegram. nanobot, Python, MIT, 49 000 étoiles : un framework d’agent IA personnel ultra-léger et auto-hébergé, écrit en Python, du Data Intelligence Lab de l’université de Hong Kong, avec Telegram, Feishu, WeChat, Slack et Discord. ZeroClaw, Rust, 33 000 étoiles : l’agent est à vous, les données sont à vous, la machine qui le fait tourner est à vous ; un binaire unique avec une vingtaine de fournisseurs de modèles et le GPIO sur Raspberry Pi, Arduino et ESP32. PicoClaw, Go, MIT, 30 000 étoiles : tourne sur du matériel à 10 dollars avec moins de 10 Mo de RAM, même si les builds récents peuvent utiliser 10 à 20 Mo, et démarre en moins d’une seconde sur un seul cœur à 0,6 gigahertz. IronClaw, Rust, Apache 2.0, 13 000 étoiles : un OS d’agent axé sur la confidentialité, la sécurité et l’extensibilité ; outils en WebAssembly, secrets en AES-256-GCM, PostgreSQL, aucune télémétrie.">
<p class="ah-h">Les petits claws se présentent</p>
<ul class="ah-cards">
<li class="ah-card"><div class="ah-card-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/nanoclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-name">NanoClaw<small>TypeScript · 31 k étoiles</small></p></div><p class="ah-quote">« Fait tourner les agents en sécurité, chacun dans son conteneur. »</p><p class="ah-claim"><b>Son combat</b>L’isolation : un conteneur par groupe d’agents, les clés ajoutées à l’extérieur</p><p class="ah-claim"><b>On le change</b>dans le code ; les canaux arrivent sous forme de skills comme <code>/add-telegram</code></p></li>
<li class="ah-card"><div class="ah-card-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/nanobot.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-name">nanobot<small>Python · 49 k étoiles</small></p></div><p class="ah-quote">« Ultra-léger, open source, auto-hébergé. »</p><p class="ah-claim"><b>Son combat</b>Un petit cœur Python qu’on peut lire et forker</p><p class="ah-claim"><b>Portée</b>Telegram, Feishu, WeChat, Slack, Discord et d’autres</p></li>
<li class="ah-card"><div class="ah-card-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/zeroclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-name">ZeroClaw<small>Rust · 33 k étoiles</small></p></div><p class="ah-quote">« L’agent est à vous. Les données sont à vous. »</p><p class="ah-claim"><b>Son combat</b>Un seul binaire Rust, une vingtaine de fournisseurs de modèles</p><p class="ah-claim"><b>Matériel</b>GPIO sur Raspberry Pi, Arduino, ESP32</p></li>
<li class="ah-card"><div class="ah-card-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/picoclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-name">PicoClaw<small>Go · 30 k étoiles</small></p></div><p class="ah-quote">« Tourne sur du matériel à 10 $ avec moins de 10 Mo de RAM. »</p><p class="ah-claim"><b>Son combat</b>L’empreinte : démarre en moins d’une seconde sur un cœur à 0,6 GHz</p><p class="ah-claim"><b>Petites lignes</b>« Les builds récents peuvent utiliser 10 à 20 Mo de RAM »</p></li>
<li class="ah-card"><div class="ah-card-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/ironclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-name">IronClaw<small>Rust · 13 k étoiles</small></p></div><p class="ah-quote">« Un OS d’agent axé sur la confidentialité, la sécurité et l’extensibilité. »</p><p class="ah-claim"><b>Son combat</b>La sécurité : outils WebAssembly, liste d’autorisation d’endpoints</p><p class="ah-claim"><b>Secrets</b>AES-256-GCM, injectés à la frontière, aucune télémétrie</p></li>
</ul>
<figcaption id="ah6-cap">Citations tirées de chaque README au 16 octobre. Les empreintes sont les chiffres des projets, pas mes mesures.</figcaption>
</figure>

## Ce que deux harnais m’ont appris

OpenClaw est celui que j’ai gardé : 17 agents, 16 bots Telegram, un par agent, et quatre serveurs MCP branchés sur mes propres applis. C’est aussi celui qui m’a coûté le plus de soirées.

Le 1er septembre, la mise à jour de la 2026.7.1 vers la 2026.8.1 a tourné à l’incident de plusieurs heures. Des schémas de configuration plus stricts rejetaient des réglages qui marchaient la veille, le moindre avertissement pendant la migration au démarrage arrêtait désormais la gateway, et la base d’état est passée à un schéma que l’ancienne version ne savait pas lire : impossible de revenir en arrière. Deux semaines plus tard, la 2026.9.4 exigeait Node 24.16 et ignorait sans bruit tout skill sans description dans son front matter. L’un de mes agents a perdu un skill comme ça.

Avec Hermes, l’histoire est inverse. Je l’ai fait tourner avec deux profils, je l’ai mis à jour le 14 août (un saut de 7 183 commits), puis j’ai arrêté de m’en servir. Au 14 septembre, ses deux gateways plantaient en boucle sur des tokens Telegram que j’avais révoqués, alors je l’ai supprimé. Le piège : ma gateway OpenClaw tournait en fait sur le binaire Node embarqué par Hermes. Supprimer un harnais a failli faire tomber l’autre.

Les limites partagées frappent aussi tout le monde à la fois. Mes agents partagent un seul compte Claude, et le 15 octobre, sa limite de cinq heures les a tous bloqués d’un coup. Rien n’a repris après la remise à zéro.

Rien de tout ça n’est une raison d’écarter l’un ou l’autre projet. C’est le prix d’un logiciel qui bouge aussi vite : lisez les notes de version avant de mettre à jour, et sauvegardez d’abord le dossier d’état.

<figure class="fd-fig ah ah-tl" aria-labelledby="ah7-cap" data-desc="Ma chronologie avec les deux harnais, un événement mis en évidence à la fois. Mai 2026 : OpenClaw s’installe sur un Mac mini et grandit jusqu’à 17 agents, 16 bots Telegram et quatre serveurs MCP. 14 août : Hermes passe de la 0.18.2 à la 0.20.1, sur 7 183 commits, avec deux profils. 1er septembre, une casse : OpenClaw 2026.8.1 apporte des schémas de configuration stricts, des avertissements de migration bloquants et une base d’état sans retour possible, et la mise à jour prend des heures. 14 septembre, une casse : les deux gateways d’Hermes plantent en boucle sur des tokens de bot révoqués et Hermes est supprimé, la gateway OpenClaw s’avère tourner sur le Node embarqué par Hermes, puis OpenClaw 2026.9.4 exige Node 24.16 et ignore sans bruit un skill sans description. 15 octobre, une casse : la limite de cinq heures d’un seul compte Claude bloque tous les agents d’un coup, et rien ne reprend après la remise à zéro.">
<p class="ah-now" aria-hidden="true"><span>Mai · OpenClaw s’installe</span><span>14 août · Hermes se met à jour</span><span>1er sept. · Une mise à jour sans retour</span><span>14 sept. · Hermes s’en va</span><span>15 oct. · Une limite, tous les agents</span></p>
<ol class="ah-tl-list ah-cyc5">
<li class="ah-ev"><p class="ah-ev-d">Mai 2026</p><p class="ah-ev-t"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" loading="lazy" decoding="async"><b>OpenClaw sur un Mac mini</b>Grandit jusqu’à 17 agents, 16 bots Telegram et quatre serveurs MCP.</p></li>
<li class="ah-ev"><p class="ah-ev-d">14 août</p><p class="ah-ev-t"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" loading="lazy" decoding="async"><b>Hermes de la 0.18.2 à la 0.20.1</b>Deux profils, une mise à jour, 7 183 commits.</p></li>
<li class="ah-ev ah-ev-break"><p class="ah-ev-d">1er sept.</p><p class="ah-ev-t"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" loading="lazy" decoding="async"><b>OpenClaw 2026.8.1</b>Config stricte, avertissements de migration bloquants, une base d’état sans retour. Des heures.</p></li>
<li class="ah-ev ah-ev-break"><p class="ah-ev-d">14 sept.</p><p class="ah-ev-t"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="20" height="20" loading="lazy" decoding="async"><b>Hermes sort, la 2026.9.4 entre</b>Gateways en boucle sur des tokens révoqués ; OpenClaw tournait sur le Node d’Hermes. Puis Node 24.16, et un skill ignoré sans bruit.</p></li>
<li class="ah-ev ah-ev-break"><p class="ah-ev-d">15 oct.</p><p class="ah-ev-t"><img class="ah-logo ah-logo-s" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="20" height="20" loading="lazy" decoding="async"><b>Une limite, tous les agents</b>Une limite de cinq heures bloque la flotte. Rien ne reprend après la remise à zéro.</p></li>
</ol>
<figcaption id="ah7-cap">Ma propre installation, d’après mes notes. Le rouge marque une casse.</figcaption>
</figure>

## Choisir selon la situation

Alors, lequel ? Voici comment je choisirais aujourd’hui.

Si vous voulez de nombreux agents sur de nombreuses messageries, avec votre téléphone comme capteur, prenez OpenClaw, et activez la sandbox pour tout sauf votre session principale.

Si vous voulez un agent qui progresse sur votre travail récurrent, et que vous préférez bidouiller du Python, prenez Hermes. Si vous êtes déjà sur OpenClaw, `hermes claw migrate --dry-run` montre ce qui serait repris : votre SOUL.md, vos mémoires, skills, listes d’autorisation et réglages de canaux.

Si vous voulez lire chaque ligne et garder chaque agent dans un conteneur, prenez NanoClaw. Pour un Raspberry Pi ou une carte bon marché, PicoClaw ou ZeroClaw. Si les secrets et les outils non fiables sont votre principale inquiétude, IronClaw. Pour un petit agent Python avec les messageries chinoises, nanobot.

Et si tout ce que vous voulez, c’est joindre une session de code depuis votre téléphone, vous n’avez peut-être besoin d’aucun harnais. Remote Control et Channels dans Claude Code, et le mode distant de Codex dans l’appli ChatGPT, font ça tant que votre machine reste allumée.

<figure class="fd-fig ah ah-pick" aria-labelledby="ah8-cap" data-desc="Un sélecteur de situations avec huit choix et une réponse pour chacun. Beaucoup d’agents sur beaucoup de messageries : prenez OpenClaw, pour environ 30 canaux, des nœuds sur téléphone et des bindings qui routent chaque discussion vers son propre agent ; le hic, c’est une base de code grosse et qui bouge vite, alors lisez les notes de version, sauvegardez d’abord et mettez en sandbox tout sauf la session principale. Un agent qui apprend vos habitudes : prenez Hermes, pour une boucle d’apprentissage active par défaut, une petite mémoire plus la recherche dans les sessions, et de nombreux endroits où exécuter les commandes ; le hic, c’est l’absence d’appli mobile, et les approbations intelligentes restent un modèle qui en juge un autre. Déjà sur OpenClaw, envie de tester Hermes : essayez hermes claw migrate avec --dry-run, qui importe SOUL.md, les mémoires, les skills, les listes d’autorisation et les réglages de canaux ; vérifiez sur quel Node tourne chaque service. Lire chaque ligne : NanoClaw, une petite base de code TypeScript sur le Claude Agent SDK avec un conteneur par groupe d’agents ; l’adapter veut dire changer le code. Un Raspberry Pi ou une carte bon marché : PicoClaw ou ZeroClaw, des binaires uniques en Go et en Rust, ZeroClaw avec le GPIO ; les empreintes sont leurs propres affirmations. Les secrets d’abord : IronClaw, avec des outils WebAssembly, une liste d’autorisation d’endpoints et des secrets injectés à la frontière ; il lui faut PostgreSQL et sa communauté est la plus petite. Un petit agent Python : nanobot, avec les messageries chinoises ; sa sandbox est désactivée par défaut. Juste une session de code depuis votre téléphone : aucun harnais, Remote Control ou Channels dans Claude Code, ou le mode distant de Codex dans l’appli ChatGPT ; ça ne marche que tant que la session ou la machine tourne, sans mémoire ni planification propres.">
<input class="fd-radio" type="radio" name="ah8" id="ah8-fleet" checked>
<input class="fd-radio" type="radio" name="ah8" id="ah8-learn">
<input class="fd-radio" type="radio" name="ah8" id="ah8-move">
<input class="fd-radio" type="radio" name="ah8" id="ah8-read">
<input class="fd-radio" type="radio" name="ah8" id="ah8-board">
<input class="fd-radio" type="radio" name="ah8" id="ah8-safe">
<input class="fd-radio" type="radio" name="ah8" id="ah8-py">
<input class="fd-radio" type="radio" name="ah8" id="ah8-none">
<div class="ah-pick-in">
<div class="ah-pick-list"><p class="ah-pick-h">Votre situation</p><label for="ah8-fleet">Beaucoup d’agents, beaucoup de messageries</label><label for="ah8-learn">Un agent qui apprend mes habitudes</label><label for="ah8-move">Sur OpenClaw, envie de tester Hermes</label><label for="ah8-read">Je veux lire chaque ligne</label><label for="ah8-board">Un Raspberry Pi ou une carte bon marché</label><label for="ah8-safe">Les secrets avant tout</label><label for="ah8-py">Un petit agent Python</label><label for="ah8-none">Juste ma session de code, depuis mon téléphone</label></div>
<div class="ah-ans ah-a-fleet"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/openclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>OpenClaw</p></div><p class="ah-ans-why"><b>Pourquoi</b>Environ 30 canaux, des nœuds sur téléphone, et des bindings qui routent chaque discussion vers son agent. J’en fais tourner 17 derrière une seule gateway.</p><p class="ah-ans-catch"><b>Le hic</b>Gros, et il bouge vite. Lisez les notes de version, sauvegardez d’abord, et mettez en sandbox tout sauf votre session principale.</p></div>
<div class="ah-ans ah-a-learn"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>Hermes Agent</p></div><p class="ah-ans-why"><b>Pourquoi</b>La boucle d’apprentissage est active par défaut, la mémoire reste petite et consultable, et les commandes peuvent tourner à sept endroits.</p><p class="ah-ans-catch"><b>Le hic</b>Pas d’appli mobile, et les approbations intelligentes restent un modèle qui en juge un autre.</p></div>
<div class="ah-ans ah-a-move"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/hermes.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Essayez</small>Hermes, migré</p></div><p class="ah-ans-why"><b>Comment</b><code>hermes claw migrate --dry-run</code> liste ce qui est repris : SOUL.md, mémoires, skills, listes d’autorisation, réglages de canaux.</p><p class="ah-ans-catch"><b>Le hic</b>Vous gardez les deux ? Vérifiez sur quel Node tourne chaque service avant d’en supprimer un.</p></div>
<div class="ah-ans ah-a-read"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/nanoclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>NanoClaw</p></div><p class="ah-ans-why"><b>Pourquoi</b>Une petite base de code TypeScript sur le Claude Agent SDK, un conteneur par groupe d’agents, les clés gardées à l’extérieur.</p><p class="ah-ans-catch"><b>Le hic</b>L’adapter veut dire changer le code, et il est construit autour de Claude.</p></div>
<div class="ah-ans ah-a-board"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/picoclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/zeroclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>PicoClaw ou ZeroClaw</p></div><p class="ah-ans-why"><b>Pourquoi</b>Des binaires uniques en Go et en Rust. ZeroClaw pilote des broches GPIO.</p><p class="ah-ans-catch"><b>Le hic</b>Les empreintes sont leurs propres affirmations. PicoClaw admet 10 à 20 Mo sur les builds récents.</p></div>
<div class="ah-ans ah-a-safe"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/ironclaw.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>IronClaw</p></div><p class="ah-ans-why"><b>Pourquoi</b>Des outils WebAssembly avec des permissions par capacité, une liste d’autorisation d’endpoints, des secrets injectés à la frontière et surveillés contre les fuites.</p><p class="ah-ans-catch"><b>Le hic</b>Il lui faut PostgreSQL, et sa communauté est la plus petite des sept.</p></div>
<div class="ah-ans ah-a-py"><div class="ah-ans-top"><img class="ah-logo ah-logo-l" src="/assets/img/notes/agent-harnesses/nanobot.png" alt="" width="48" height="48" loading="lazy" decoding="async"><p class="ah-ans-take"><small>Prenez</small>nanobot</p></div><p class="ah-ans-why"><b>Pourquoi</b>Un cœur Python compact, et Feishu et WeChat à côté de Telegram et Slack.</p><p class="ah-ans-catch"><b>Le hic</b>Sa sandbox est optionnelle et désactivée par défaut.</p></div>
<div class="ah-ans ah-a-none"><div class="ah-ans-top"><span class="ah-logo ah-logo-l ah-nologo" aria-hidden="true">&gt;_</span><p class="ah-ans-take"><small>Prenez</small>Aucun harnais</p></div><p class="ah-ans-why"><b>Pourquoi</b>Remote Control ou Channels dans Claude Code, ou le mode distant de Codex dans l’appli ChatGPT, rejoignent la session que vous faites déjà tourner.</p><p class="ah-ans-catch"><b>Le hic</b>Seulement tant que la session ou la machine tourne, sans mémoire ni planification propres.</p></div>
</div>
<figcaption id="ah8-cap">Mes choix au 16 octobre 2026. Les deux gros projets publient souvent : vérifiez les notes de version avant de vous fier à une ligne.</figcaption>
</figure>

Pour aller plus loin :

- [Une flotte d’agents chez moi](/talks/openclaw/fr/), mon talk sur l’installation OpenClaw à 17 agents
- [Ne soyez pas le meat proxy de votre équipe](/fr/notes/dont-be-your-teams-meat-proxy.html), Peter Steinberger sur les collègues qui s’adressent à vos agents
- [Les collègues IA dans Slack ont besoin de leur propre identité](/fr/notes/ai-coworkers-slack-agent-identity.html), ce qui change quand un agent poste en son nom

Si vous faites tourner l’un d’eux, dites-moi lequel et ce qui a cassé en premier. J’aimerais comparer nos notes.
