Comment migrer d’OpenClaw à Hermes Agent en toute sécurité

Une bascule en toute sécurité au-delà de l’importation sur une ligne

Sommaire

La migration d’un assistant IA ne se résume pas à la copie d’une configuration d’application. La difficulté réside dans la préservation de l’identité, de la mémoire, du comportement des outils, des tâches planifiées et de l’accès à la messagerie, tout en évitant que deux passerelles ne se comportent comme le même bot.

Hermes Agent intègre désormais hermes claw migrate, un véritable planificateur de migration plutôt qu’une simple commande d’import cosmétique. Il peut cartographier plus de 30 catégories depuis OpenClaw, détecter les conflits, créer un point de restauration Hermes et archiver les états incompatibles pour examen manuel. Cela rend le transfert praticable, mais ne le rend pas automatique.

Bascule progressive de l’état d’OpenClaw vers Hermes Agent

L’approche décrite ci-dessous est une bascule progressive : sauvegarder OpenClaw, effectuer une simulation de la migration complète, importer sans les secrets, valider Hermes depuis le terminal et transférer les identifiants de messagerie uniquement après que le nouvel agent se soit comporté correctement. N’utilisez pas les drapeaux --overwrite --migrate-secrets --yes dès le début ; ces drapeaux sont utiles pour l’automatisation après une migration répétée, pas pour découvrir sur quoi votre assistant dépend réellement.

Le mode opératoire de migration d’OpenClaw vers Hermes

Phase Commande ou action Condition de sortie
Inventaire Enregistrer les versions, espaces de travail, plugins, canaux, tâches cron et fournisseurs Chaque dépendance non liée à un fichier a un responsable
Sauvegarde openclaw backup create --verify Une archive vérifiée existe en dehors de l’état OpenClaw
Aperçu hermes claw migrate --dry-run --preset full Aucun conflit inexpliqué ou donnée critique passée
Import Exécuter le préréglage complet sans secrets La configuration Hermes, la personne, la mémoire, les compétences et les entrées MCP existent
Test local Exécuter Hermes dans le terminal Le modèle, les outils, la mémoire, les approbations et l’espace de travail passent les tests
Bascule des canaux Arrêter OpenClaw, migrer ou définir les secrets, démarrer la passerelle Hermes Seule Hermes possède chaque jeton de bot ou compte
Stabilisation Garder OpenClaw arrêté mais récupérable Les tâches planifiées et entrantes se comportent correctement
Nettoyage Archiver l’ancien état OpenClaw seulement après acceptation La fenêtre de retour en arrière est clôturée intentionnellement
flowchart TD A[Inventaire du système en cours] --> B[Sauvegarde OpenClaw vérifiée] B --> C["Simulation : hermes claw migrate --dry-run --preset full"] C --> D[Import sans secrets] D --> E["Validation dans le terminal dans une nouvelle session"] E --> F["Bascule contrôlée des canaux"] F --> G[Stabilisation avec OpenClaw arrêté] G --> H["Nettoyage après acceptation"]

La commande est courte parce que le jugement a été déplacé vers les étapes d’aperçu et de vérification. Traitez le rapport de migration généré comme un plan de changement, et non comme une sortie de console rassurante.

Ce que hermes claw migrate lit réellement

Le migrateur lit ~/.openclaw/ par défaut. Il détecte également les anciens répertoires ~/.clawdbot/ et ~/.moltbot/, ainsi que les noms de fichiers de configuration hérités, de sorte qu’une installation plus ancienne n’a pas besoin d’être renommée avant la migration.

OpenClaw a utilisé plusieurs structures d’espace de travail. Hermes vérifie workspace/, workspace.default/ et workspace-main/, et reconnaît les répertoires par agent tels que workspace-<agentId>. Si vous utilisez des racines d’agent personnalisées ou plusieurs profils, vérifiez tous les chemins résolus dans l’aperçu plutôt que de supposer que l’espace de travail par défaut représente tout le système.

La destination est normalement ~/.hermes/. Une installation Hermes existante n’est pas traitée comme un seau vide : le planificateur signale les conflits et refuse d’appliquer par défaut s’il ne peut pas préserver les deux parties en toute sécurité.

Ce qui migre et ce qui ne migre pas

La distinction utile n’est pas entre « pris en charge » et « non pris en charge ». Certains états OpenClaw sont cartographiés directement, certains doivent être transformés, et certains ne peuvent être qu’archivés parce que les deux agents utilisent des modèles d’exécution différents.

Migration directe ou transformée

Source OpenClaw Destination Hermes Comportement de migration
workspace/SOUL.md ~/.hermes/SOUL.md Copie directe de la personne
workspace/MEMORY.md ~/.hermes/memories/MEMORY.md Analysé, fusionné et dédupliqué
workspace/USER.md ~/.hermes/memories/USER.md Analysé, fusionné et dédupliqué
workspace/memory/*.md Mémoire principale Hermes Les fichiers journaliers sont fusionnés dans des entrées
workspace/AGENTS.md Répertoire de projet choisi Nécessite --workspace-target
Répertoires de compétences OpenClaw ~/.hermes/skills/openclaw-imports/ Copié avec une politique de conflit explicite
agents.defaults.model Configuration du modèle Hermes Les formes primaire et de repli sont interprétées
models.providers.* Configuration des fournisseurs Hermes L’URL de base et le type d’API sont cartographiés
mcp.servers.* mcp_servers.* Les définitions Stdio et HTTP/SSE sont cartographiées
Jetons et listes de canaux .env Hermes Uniquement avec --migrate-secrets
Politique de réinitialisation de session session_reset Les modes journalier et d’inactivité sont traduits
Approbations d’exécution Approbations Hermes et liste des commandes autorisées Les modes et motifs sont transformés
Paramètres navigateur, TTS, bac à sable et d’expiration Configuration Hermes associée Les champs pris en charge sont cartographiés

La mémoire n’est pas copiée en tant que document opaque. Le migrateur analyse les fichiers de mémoire et de profil utilisateur OpenClaw, les fusionne avec les entrées Hermes existantes et les déduplique. C’est plus sûr que de remplacer un fichier de mémoire Hermes établi, mais cela signifie aussi que vous devriez comparer le sens et la structure, et non seulement les tailles de fichiers.

Archivé pour reconstruction manuelle

Fonctionnalité OpenClaw Pourquoi elle n’est pas directement portable Direction Hermes
Tâches cron Les planificateurs et modèles de livraison diffèrent Recréer avec hermes cron create
Plugins Les API de plugins sont spécifiques au produit Remplacer par un plugin Hermes, une compétence, un serveur MCP ou un outil intégré
Accroches et webhooks Les contrats d’événements et d’autorisations diffèrent Recréer avec les webhooks ou accroches de passerelle Hermes
Arrière-plan mémoire avancé Les bases de données et sémantiques de rappel diffèrent Configurer un fournisseur de mémoire Hermes séparément
Réglages du registre de compétences L’implémentation du registre diffère Configurer avec hermes skills config
Liste et liaisons multi-agents Les modèles de routage et de profil diffèrent Reconstruire avec les profils Hermes et la configuration de la passerelle
IDENTITY.md Hermes utilise une séparation d’identité différente Fusionner l’identité pertinente dans SOUL.md
HEARTBEAT.md Pas d’équivalent direct de battage de cœur piloté par fichier Exprimer le travail périodique sous forme de tâches cron
TOOLS.md Hermes fournit ses propres instructions d’outils Déplacer uniquement les règles de workflow réelles dans une compétence ou un fichier de contexte
BOOTSTRAP.md La sémantique de bootstrap diffère Utiliser des fichiers de contexte, l’initialisation ou une compétence

Ces éléments sont enregistrés sous ~/.hermes/migration/openclaw/<timestamp>/archive/. Une migration réussie avec une archive non vide n’est donc pas terminée ; l’archive est la liste de tâches restante.

Étape 1 : Inventorier le système OpenClaw en cours

Avant d’installer quoi que ce soit, notez quels comportements sont réellement utilisés. Les fichiers de configuration seuls peuvent ne pas révéler une base de données externe d’un plugin, une passerelle supervisée manuellement, un répertoire d’agent personnalisé, un processus de modèle local ou le compte qui possède un point de terminaison de webhook.

Enregistrer au minimum :

  • Les versions OpenClaw et Hermes.
  • Le répertoire d’état et le chemin de configuration OpenClaw actifs.
  • Tous les répertoires d’agents et d’espaces de travail.
  • Les fournisseurs de modèles, les modèles de repli et les points de terminaison locaux.
  • Les plugins installés et activés, y compris leurs données persistantes.
  • Les compétences provenant des répertoires d’espace de travail, gérés, personnels et de projet.
  • Les serveurs MCP, variables d’environnement, répertoires de travail et identifiants.
  • Les comptes Telegram, Discord, Slack, WhatsApp, Signal, Matrix et Mattermost.
  • Les tâches cron, accroches, webhooks, comportement de battage de cœur et superviseurs externes.
  • Les règles d’approbation, listes de commandes autorisées, arrière-plan de bac à sable et accès navigateur.

Cet inventaire deviendra la liste de contrôle d’acceptation plus tard. Sans lui, un assistant migré peut paraître sain parce qu’il répond aux messages tout en manquant silencieusement la sauvegarde hebdomadaire, un fournisseur de mémoire ou une règle d’approbation restrictive.

Étape 2 : Créer une sauvegarde OpenClaw vérifiée

OpenClaw 2.0 inclut une commande de sauvegarde qui comprend son état SQLite actuel, les racines d’agents configurées, les identifiants, les plugins et les espaces de travail. Utilisez-la au lieu de copier les fichiers de base de données en direct et d’espérer que leurs compagnons WAL ont été capturés de manière cohérente.

mkdir -p ~/Backups
openclaw gateway stop
openclaw backup create --output ~/Backups --verify

Conservez l’archive résultante en dehors de ~/.openclaw/. L’option --verify valide immédiatement l’archive, y compris la sécurité des chemins et les vérifications d’intégrité SQLite prises en charge. Les bases de données possédées par OpenClaw sont capturées via l’API de sauvegarde en ligne de SQLite, vérifiées par le propriétaire et compactées, au lieu d’être copiées comme fichiers bruts. Si vos espaces de travail sont volumineux, vous pouvez utiliser --no-include-workspace, mais alors sauvegardez ces dépôts et les fichiers non Git séparément ; les répertoires d’agents restent inclus dans tous les cas.

Le piège des transcriptions antérieures à la version 2.0

OpenClaw 2.0 a déplacé les sessions et transcriptions hors des fichiers sessions.json et JSONL vers SQLite, par défaut dans ~/.openclaw/agents/<agent>/agent/openclaw-agent.sqlite. C’est important ici pour une raison non évidente : l’archive portable backup create omet les transcriptions JSONL héritées et journaux même quand ils ne sont plus écrits.

Donc, si votre installation OpenClaw précède la version 2.0 et que vous vous souciez de l’ancienne histoire de conversation, une archive vérifiée seule ne la protège pas. Arrêtez la passerelle et prenez un instantané du système de fichiers, du volume ou de la VM avant de migrer, ou utilisez les commandes d’instantané par base de données d’OpenClaw pour les bases de données pour lesquelles vous voulez une copie compacte, indépendamment vérifiable :

openclaw backup sqlite create --global --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite create --agent main --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite list --repository ~/Backups/openclaw-sqlite
openclaw backup sqlite verify ~/Backups/openclaw-sqlite/<snapshot-id>

Traitez ces dépôts d’instantanés avec les mêmes autorisations et politique de rétention que l’état en direct — ils peuvent contenir des profils d’authentification, des états de session et des données de plugin. Pour une configuration de réplique continue plutôt que des archives périodiques, OpenClaw documente Litestream contre les mêmes bases de données ; c’est une meilleure réponse que des tâches cp faites à la main si la migration doit prendre des jours.

Créez également une sauvegarde Hermes si Hermes contient déjà un état utile :

hermes backup

La migration crée normalement sa propre archive Hermes pré-migration sous ~/.hermes/backups/. Ne passez pas --no-backup lors de la première bascule ; économiser quelques secondes ne vaut pas la peine de supprimer le chemin de retour en arrière le plus simple.

Étape 3 : Installer et tester un Agent Hermes vide

Installez Hermes, sélectionnez un modèle et prouvez que l’agent terminal de base fonctionne avant d’importer l’état OpenClaw. Cela sépare les pannes d’installation et de fournisseur des pannes de migration. Le guide de l’assistant IA Hermes couvre en détail la sélection du fournisseur et la configuration de la passerelle ; pour la migration, vous n’avez besoin que d’une base de fonctionnement dans le terminal.

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.bashrc
hermes setup
hermes status
hermes doctor

Si vous avez déjà installé Hermes, mettez-le à jour avant de vous fier au comportement de migration actuel :

hermes update
hermes --version

Cette vérification de version n’est pas une formalité. La posture de sécurité de claw migrate a changé substantiellement pendant 2026 : les versions actuelles refusent d’appliquer un plan conflictuel, écrivent un point de restauration pré-migration par défaut, masquent les secrets dans les rapports qu’elles sauvegardent sur disque et exigent --migrate-secrets explicitement même sous --preset full. Les versions plus anciennes ne faisaient aucune de ces choses — notamment, --preset full avait tendance à récupérer des clés API silencieusement, et un plan conflictuel produirait un rapport de « 0 éléments migrés » après que vous ayez déjà confirmé. Si vous suivez un tutoriel plus ancien, les drapeaux peuvent sembler identiques tandis que le comportement diffère précisément aux endroits qui comptent.

Ne configurez pas encore les anciens jetons de bot. La validation uniquement dans le terminal permet à OpenClaw de rester en direct pendant que vous préparez Hermes, et évite à deux processus de passerelle de concourir pour la même identité de messagerie.

Étape 4 : Exécuter la simulation avant de choisir les drapeaux

Commencez avec le préréglage complet car il révèle la surface de cartographie la plus grande possible, mais gardez les secrets exclus :

hermes claw migrate --dry-run --preset full

La migration présente toujours un aperçu avant l’application, même sans --dry-run. Le drapeau explicite est toujours précieux car il rend votre intention in ambiguë et vous donne le temps d’inspecter les chemins sources, les destinations, les transformations, les conflits, les éléments passés, les archives et les avertissements de secrets sans une invite de confirmation impatiente. L’ensemble complet des drapeaux pour claw migrate et ses voisins est résumée dans la fiche de triche de l’interface en ligne de commande de l’Agent Hermes.

Utilisez une source personnalisée si l’état OpenClaw n’est pas à l’emplacement par défaut :

hermes claw migrate \
  --dry-run \
  --preset full \
  --source /srv/openclaw-state

Si AGENTS.md doit s’appliquer à un dépôt particulier, dites-le explicitement :

hermes claw migrate \
  --dry-run \
  --preset full \
  --workspace-target /srv/projects/my-project

Sans --workspace-target, les instructions de l’espace de travail ne sont pas placées dans un répertoire courant arbitraire. C’est le comportement correct : un fichier d’instruction appartient à un périmètre, et deviner son périmètre peut changer toutes les sessions Hermes lancées sous le mauvais répertoire.

Préréglage complet ou données utilisateur ?

Le préréglage full inclut les paramètres d’infrastructure et de comportement compatibles. Le préréglage user-data se concentre sur la personne, les mémoires, les compétences et le contenu utilisateur associé tout en excluant la configuration d’infrastructure.

Utilisez user-data lorsque Hermes a déjà une configuration de fournisseur, de passerelle, de sécurité ou de bac à sable soigneusement construite. Utilisez full lorsque Hermes est neuf et que OpenClaw est la configuration autoritaire, mais inspectez encore tous les paramètres de comportement transformés. Aucun des deux préréglements n’importe de secrets sauf si --migrate-secrets est ajouté.

Étape 5 : Résoudre les conflits sans détruire la provenance

Le comportement par défaut en cas de conflit est conservateur : la migration refuse d’appliquer un plan avec des conflits de fichiers non résolus à moins que --overwrite ne soit défini. C’est préférable à une bascule apparemment réussie qui écrase une personne ou une compétence Hermes plus récente — et préférable au comportement plus ancien, où la confirmation d’un plan conflictuel produisait un résultat de « 0 éléments migrés » qui semblait une opération nulle mais était réellement un passage silencieux.

Les conflits de compétences sont gérés séparément, et le défaut est skip, qui garde silencieusement la version Hermes existante et jette l’entrante. Pour une première migration, je recommande rename à la place :

hermes claw migrate \
  --preset full \
  --workspace-target /srv/projects/my-project \
  --skill-conflict rename

Les compétences importées sont placées sous ~/.hermes/skills/openclaw-imports/. Avec rename, une collision de noms produit un frère importé plutôt que de masquer l’une des versions. Examinez les deux implémentations, testez celle choisie et supprimez la copie redondante plus tard.

Utilisez --overwrite seulement après avoir examiné l’aperçu ou lors de la reconstruction d’un profil Hermes jetable. Il s’applique plus largement que le traitement des conflits de compétences et peut remplacer des fichiers Hermes existants. La présence d’une sauvegarde rend l’écrasement récupérable, pas désirable.

Étape 6 : Migrer la configuration et les données utilisateur sans secrets

Appliquez le plan examiné et laissez les identifiants pour l’étape de bascule :

hermes claw migrate \
  --preset full \
  --workspace-target /srv/projects/my-project \
  --skill-conflict rename

Après l’achèvement, sauvegardez les comptes affichés pour les éléments migrés, passés, en conflit et archivés. Ouvrez le répertoire de migration horodaté et lisez son résumé avant de démarrer une nouvelle session Hermes. Les versions actuelles masquent les valeurs de secrets détectées dans report.json et summary.md qu’elles écrivent, de sorte que ces fichiers sont sûrs à conserver à côté de vos notes de changement — mais confirmez-le sur votre version plutôt que de le supposer, car les versions antérieures écrivaient des clés API brutes dans les mêmes rapports.

Les nouvelles sessions comptent. Les compétences et entrées de mémoire importées sont chargées lorsqu’une session commence, de sorte que tester dans une session qui précède la migration peut produire un faux résultat « compétence introuvable » ou de mémoire obsolète.

Étape 7 : Valider le comportement avant la bascule des canaux

Exécutez les vérifications post-migration depuis le terminal :

hermes status
hermes doctor
hermes config show
hermes gateway status

Si le rappel de la mémoire semble incomplet, reconstruisez l’index avant de conclure que l’import a échoué :

hermes memory reindex

Ensuite, démarrez une nouvelle conversation Hermes et testez des comportements observables, pas seulement la présence de fichiers. Demandez une préférence utilisateur connue de la mémoire, invoquez une compétence importée, appelez un outil MCP, exécutez une commande terminal inoffensive qui devrait être autorisée, et essayez-en une qui devrait exiger une approbation.

Une matrice d’acceptation utile ressemble à ceci :

Domaine Test L’échec signifie généralement
Personne Posez une question où le ton et les limites sont évidents SOUL.md n’a pas été trouvé, a été écrasé ou a besoin d’un contenu d’identité fusionné
Mémoire utilisateur Demandez une préférence stable connue Les entrées de mémoire n’ont pas été importées, dédupliquées inattendument, reindexées ou chargées dans une nouvelle session
Compétence Invoquez un workflow importé distinctif Conflit de noms, métadonnées invalides, dépendance manquante ou session obsolète
Fournisseur Exécutez une réponse normale et longue Cartographie de modèle incorrecte, identifiant manquant ou type d’API incompatible
MCP Appelez un outil en lecture seule de chaque serveur Environnement manquant, cwd incorrect, inadéquation de transport ou problème de filtre d’outils
Terminal Testez les commandes autorisées et celles nécessitant approbation Le mode d’approbation ou la cartographie de la liste d’autorisation a changé la politique
Navigateur Ouvrez une page de test inoffensive L’URL CDP, l’arrière-plan du navigateur ou l’accès au bac à sable diffère
Compression Exécutez une longue session jetable Le modèle de résumé ou le comportement de compression n’a pas été cartographié comme prévu
Réinitialisation de session Inspectez la configuration et testez sur un profil jetable L’interprétation journalière/de repos diffère des règles OpenClaw

La migration cartographie timeoutSeconds vers une valeur de tours maximum estimée, traduit les niveaux de raisonnement et convertit les modes d’approbation. Ce sont des cartographies sémantiques plutôt que des copies byte à byte. Vérifiez que le comportement résultant correspond à votre intention, surtout pour les tâches autonomes longues et l’exécution de commandes.

Étape 8 : Gérer les secrets comme un changement de sécurité séparé

--migrate-secrets peut collecter des clés autorisées à partir des valeurs de configuration OpenClaw, ~/.openclaw/.env, des objets d’environnement de configuration et des profils d’authentification par agent (~/.openclaw/agents/<agent>/agent/auth-profiles.json). Il comprend les chaînes simples, les modèles d’environnement et les objets SecretRef soutenus par l’environnement.

Il ne copie pas intentionnellement des noms de secrets arbitraires. Les SecretRef soutenus par fichier et par commande ne peuvent pas être résolus automatiquement, et les valeurs en dehors de la liste d’autorisation prise en charge restent pour une configuration manuelle. Traitez chaque avertissement ici comme un contrôle fonctionnant comme conçu, et non comme une raison de coller l’environnement entier OpenClaw dans Hermes.

Pour une première migration, je préfère configurer les identifiants de fournisseur via Hermes après l’import des données. Si vous utilisez la migration de secrets automatisée, prévisualisez-la et exécutez-la seulement quand vous êtes prêt à transférer la propriété du canal :

hermes claw migrate \
  --dry-run \
  --preset full \
  --migrate-secrets

Puis vérifiez la présence sans afficher les valeurs :

hermes status
hermes auth status

Faites tourner les identifiants s’ils ont été exposés dans l’historique du shell, collés dans les notes de migration ou stockés avec des permissions moins fortes que prévu. La migration préserve l’accès ; elle ne prouve pas que la pratique de gestion des secrets d’origine était sûre.

Étape 9 : Effectuer une bascule de messagerie contrôlée

Il n’y a pas de passage de relais honnête avec zéro temps d’arrêt lorsque deux processus devaient poller, s’abonner ou répondre en tant que le même compte de bot. Le modèle sûr est de préparer en parallèle, d’arrêter OpenClaw, de démarrer Hermes, de tester chaque plateforme et de garder les commandes de retour en arrière prêtes.

Arrêtez d’abord la passerelle OpenClaw et confirmez qu’elle est arrêtée :

openclaw gateway stop
openclaw gateway status

Migrez maintenant ou définissez manuellement les secrets de messagerie, configurez la passerelle Hermes et démarrez-la :

hermes gateway setup
hermes gateway install
hermes gateway start
hermes gateway status

Envoyez un message direct d’un utilisateur autorisé sur chaque plateforme. Testez le texte entrant, une réponse, une pièce jointe si utilisée, une commande en barre oblique, une tâche longue, une interruption et un envoi programmé ou manuel sortant. Un statut de service vert prouve qu’un processus est en cours ; cela ne prouve pas que les listes d’autorisation, le routage des fils, la livraison et le formatage ont survécu au transfert.

WhatsApp nécessite une ré-appariement parce que la migration ne transfère pas la session Baileys en tant que jeton réutilisable. Exécutez hermes whatsapp et terminez le flux QR. D’autres canaux peuvent réutiliser des jetons, mais les structures de compte et les liaisons multi-comptes méritent encore des tests explicites.

Les compétences, les plugins et les serveurs MCP ne sont pas interchangeables

Les compétences OpenClaw de quatre emplacements peuvent être importées, mais un répertoire importé n’est utile que si ses hypothèses restent vraies. Vérifiez les noms de commandes, les chemins du système de fichiers, les variables d’environnement, les outils spécifiques à la plateforme et les références aux API spécifiques à OpenClaw. Le guide des compétences OpenClaw explique les formats source ; le guide de rédaction de compétences Hermes couvre le comportement de destination.

Les plugins OpenClaw ne deviennent pas des plugins Hermes. Reconstruisez la capacité au niveau le plus étroit approprié :

  • Utilisez une compétence Hermes pour la procédure, la sélection d’outils et les instructions réutilisables.
  • Utilisez un serveur MCP pour des données en direct ou une limite de service externe.
  • Utilisez un outil intégré Hermes s’il fournit déjà la capacité.
  • Utilisez un plugin Hermes uniquement si le code doit participer au runtime de l’agent lui-même.

C’est un bon moment pour retirer le sédiment architectural. Un plugin installé pour compenser une limitation ancienne d’OpenClaw peut n’avoir aucune raison de survivre dans Hermes, tandis qu’un plugin tenant une base de données durable a besoin d’un plan d’exportation ou de remplacement délibéré.

Les définitions MCP migrent plus directement, y compris les commandes, les arguments, les environnements, les répertoires de travail, les URL et les filtres d’outils d’inclusion/exclusion. Testez encore chaque serveur séparément : une cartographie YAML correcte ne peut pas installer un exécutable manquant, renouveler OAuth ou faire exister un chemin de l’ancien hôte sur le nouveau.

La mémoire a besoin d’un contrôle de qualité, pas d’un contrôle de ligne

Hermes importe MEMORY.md, USER.md et les fichiers de mémoire journaliers dans sa structure de mémoire. Cela préserve les faits utiles, mais les plugins de mémoire OpenClaw, les bases de données à long contexte, les indices d’incorporation et les politiques de rappel sont archivés plutôt que traduits dans un système cognitif équivalent.

Examinez la mémoire importée en trois passes :

  1. Identité et préférences stables : préservez les faits concis qui devraient influencer de nombreuses sessions.
  2. Connaissance opérationnelle : déplacez les procédures répétables dans des compétences ou le contexte du projet plutôt que la mémoire globale.
  3. Résidu historique : archivez les incidents terminés, les plans obsolètes et les commentaires d’agent auto-référentiels plutôt que de les injecter à jamais.

N’importe pas toute transcription comme mémoire durable. Plus de texte mémorisé peut rendre un agent moins cohérent en récupérant à répétition des contraintes obsolètes et ses propres précédentes suppositions. Le guide du système de mémoire Hermes explique où les entrées importées vivront, et la comparaison des fournisseurs de mémoire agent est le meilleur endroit pour choisir un nouvel arrière-plan à long terme.

Recréer les tâches cron, les battages de cœur, les accroches et le routage multi-agents

Les tâches cron sont archivées parce que l’exécution planifiée n’est pas juste une expression cron. Une tâche a aussi un prompt ou une commande, un répertoire de travail, un modèle, un délai d’attente, une destination de livraison, des permissions, un comportement de nouvelle tentative et des attentes sur l’état de la session.

Pour chaque tâche OpenClaw archivée, notez ces champs et recréer-la avec Hermes :

hermes cron create
hermes cron list

Exécutez chaque tâche manuellement une fois avant d’activer son planning. Vérifiez à la fois le travail et le chemin de livraison, surtout si l’ancienne tâche postait dans un chat Telegram, un canal Slack ou un fil Discord.

Traduisez HEARTBEAT.md en tâches planifiées explicites seulement lorsque l’exécution périodique est réellement requise. Un battage de cœur vague qui demande à l’agent d’inspecter tout toutes les quelques minutes est coûteux et difficile à vérifier ; des tâches nommées séparées avec des résultats observables sont plus faciles à exploiter.

Les définitions multi-agents et les liaisons de canaux nécessitent également une conception manuelle. Les profils Hermes fournissent des états et passerelles isolés, mais ils ne sont pas une réécriture syntaxique de la liste d’agents d’OpenClaw. Cartographiez chaque agent par responsabilité, espace de travail, identifiants, canal et limite de sécurité plutôt que de reproduire les noms d’abord ; le raisonnement premier-profils derrière cette cartographie est travaillé dans le guide de mise en production Hermes.

Dépanner les échecs qui comptent

« Répertoire OpenClaw introuvable »

La commande cherche dans les répertoires par défaut OpenClaw, Clawdbot et Moltbot. Si votre état est ailleurs, pointez vers le répertoire qui contient la configuration OpenClaw et l’état associé :

hermes claw migrate --dry-run --source /path/to/openclaw

Ne pointez pas --source vers l’espace de travail seul à moins que ce ne soit réellement l’arbre source complet. L’aperçu devrait montrer la configuration, l’espace de travail et les catégories reconnues.

La migration refuse à cause de conflits

C’est le défaut sûr, pas un crash. Sauvegardez Hermes, identifiez quel côté est autoritaire pour chaque conflit, utilisez --skill-conflict rename pour les compétences et réservez --overwrite pour un plan examiné.

Si la configuration Hermes existante est précieuse, envisagez le préréglage user-data. Il importe le contenu possédé par l’utilisateur de l’assistant sans essayer de remplacer l’infrastructure établie.

Les compétences importées n’apparaissent pas

Démarrez une nouvelle session et inspectez le répertoire importé sous ~/.hermes/skills/openclaw-imports/. Utilisez /skills dans Hermes pour confirmer la découverte. Si la compétence existe mais ne peut pas s’exécuter, inspectez ses dépendances et hypothèses d’outils plutôt que de répéter la migration.

Les clés de fournisseur n’ont pas été trouvées

La clé peut être stockée dans un fichier d’environnement OpenClaw, un objet d’environnement de configuration, un profil d’authentification, un SecretRef soutenu par fichier, un SecretRef soutenu par commande ou un nom de variable non pris en charge. Le migrateur résout les formes prises en charge et avertit sur le reste. Ajoutez les valeurs non résolues via la configuration ou les commandes d’authentification Hermes au lieu de convertir les références sécurisées en texte brut simplement pour satisfaire l’importateur.

Le bot est en cours mais les messages manquent ou sont dupliqués

Confirmez que la passerelle OpenClaw est arrêtée et qu’un seul profil Hermes possède le jeton. Puis inspectez hermes gateway status et les journaux de la passerelle, suivis des listes d’autorisation des canaux et de la sélection de compte. Les consommateurs dupliqués et les listes d’autorisation incorrectes sont plus fréquents qu’un modèle de langage cassé.

La personnalité est présente mais le rappel est pauvre

SOUL.md et la mémoire sont des couches différentes. Confirmez que la personne copiée dans ~/.hermes/SOUL.md, que les entrées de mémoire ont atteint ~/.hermes/memories/ et que le test utilise une nouvelle session. Exécutez hermes memory reindex avant un débogage plus profond. Si OpenClaw dépendait d’un plugin de mémoire externe, configurez un fournisseur de mémoire Hermes plutôt que d’attendre que l’import Markdown recrée son comportement de récupération.

Faire reculer Hermes

Arrêtez la passerelle Hermes avant de restaurer la sauvegarde Hermes pré-migration :

hermes gateway stop
hermes import ~/.hermes/backups/pre-migration-<timestamp>.zip

hermes import écrase les fichiers dans la maison Hermes avec le contenu de l’archive, alors inspectez le nom de fichier exact et comprenez que les sessions Hermes post-migration peuvent être remplacées. Puis gardez Hermes arrêté, redémarrez OpenClaw et vérifiez la santé de sa passerelle et de ses canaux.

Migration manuelle lorsque la commande ne peut pas modéliser votre configuration

Une solution de repli manuelle est plus lente mais parfois plus claire pour les installations fortement personnalisées. Construisez un profil Hermes propre et migrez par responsabilité :

  1. Copiez ou réécrivez le contenu de la personne dans ~/.hermes/SOUL.md.
  2. Élaborez des faits utilisateur stables dans MEMORY.md et USER.md Hermes plutôt que de copier toute l’histoire.
  3. Placez les instructions du projet dans le AGENTS.md de niveau de dépôt correct.
  4. Copiez les compétences compatibles dans un répertoire d’import nommé et testez-les individuellement.
  5. Traduisez les définitions de fournisseur et MCP dans ~/.hermes/config.yaml sans afficher les secrets.
  6. Configurez les identifiants via l’authentification ou la gestion des secrets Hermes.
  7. Recréez les approbations, le bac à sable, l’accès au navigateur, les tâches cron, les webhooks et les canaux.
  8. Remplacez chaque plugin OpenClaw par une capacité Hermes explicite ou retirez-le.

La voie manuelle est particulièrement appropriée lorsque la source contient plusieurs agents OpenClaw avec des espaces de travail, des plugins de mémoire et des liaisons de canaux différents. Une union automatique peut préserver les fichiers tout en effaçant l’isolation qui rendait la configuration sûre.

Ne nettoyez pas OpenClaw immédiatement

Après que Hermes ait passé les tests locaux et de messagerie, gardez OpenClaw installé mais arrêté pendant une période de stabilisation. Préservez la sauvegarde OpenClaw vérifiée, l’archive de migration, la sauvegarde Hermes pré-migration et une copie de la liste de contrôle d’acceptation.

Hermes documente hermes claw cleanup pour renommer les répertoires OpenClaw restants en .pre-migration/, et hermes claw cleanup --dry-run pour prévisualiser ce qui serait archivé. Utilisez-le seulement après que la passerelle OpenClaw est arrêtée, que la version Hermes actuelle inclut des gardes de processus et que vous avez décidé de ne pas faire de retour en arrière. Les versions 2026 plus anciennes avaient un chemin de nettoyage signalé qui pouvait déplacer l’état pendant que la passerelle OpenClaw était encore en cours ; le code actuel marque la garde comme implémentée, mais une sauvegarde vérifiée et un service source arrêté restent la limite sensée.

Le nettoyage n’est pas nécessaire pour prouver que Hermes fonctionne. Il existe pour réduire la confusion d’état future, donc le reporter pendant une fenêtre de retour en arrière est une bonne opération, pas de la malpropreté.

Quand rester sur OpenClaw 2.0

OpenClaw 2.0 n’est pas une base abandonnée. La version v2026.8.1 a accueilli plus de 16 000 demandes de tirage de plus de 900 contributeurs — environ la moitié de l’historique total de fusion du projet — et a substantiellement changé l’initiation, l’interface de contrôle Web, le stockage de session, les sauvegardes, les canaux, la mémoire, les plugins, les automatisations, l’utilisation du navigateur et de l’ordinateur, la sécurité et la fiabilité du service. Si ces fonctionnalités de la plateforme sont centrales pour votre déploiement, la migration peut retirer plus de capacité fonctionnelle qu’elle ne simplifie.

Restez sur OpenClaw si vous dépendez de :

  • Son interface de contrôle reconstruite, avec éditeur de fichier encastré, panneau de modifications basé sur git, panneau de navigateur et approbations dans la conversation.
  • Les préréglages de session, la recherche de transcription, les groupes, les vues d’état et les actions par lot.
  • Un plugin spécifique au produit sans équivalent Hermes.
  • Un routage complexe multi-utilisateurs, mobile, appareil ou canal déjà fonctionnel en production.
  • L’administration du navigateur, de l’utilisation de l’ordinateur ou de la passerelle spécifique à OpenClaw.
  • Une base de données de mémoire ou de session qui ne peut pas être exportée avec une perte acceptable.
  • Les contrôles opérationnels que votre équipe connaît déjà et surveille.

Passez à Hermes si son workflow terminal d’abord plus simple, ses profils, ses compétences orientées vers l’apprentissage, son modèle de mémoire, ses tâches planifiées, sa flexibilité de fournisseur ou son modèle de délégation correspondent mieux à ce que vous exploitez réellement. La comparaison OpenClaw et Hermes aborde cette décision avec des chiffres actuels ; cette page concerne l’exécution de la bascule une fois la décision prise.

Liste de contrôle finale de migration

  • Version OpenClaw et chemins résolus enregistrés.
  • Sauvegarde OpenClaw vérifiée stockée en dehors de l’état en direct.
  • Transcriptions JSONL antérieures à la version 2.0 instantanées séparément si elles comptent.
  • Sauvegarde Hermes existante créée.
  • Version Hermes vérifiée contre le comportement de sécurité actuel de claw migrate.
  • Simulation complète examinée.
  • Chaque conflit attribué à une résolution.
  • Le contenu de l’archive ajouté à la liste de travail manuel.
  • Personne, mémoire utilisateur et compétences testées dans une nouvelle session.
  • Fournisseur, modèle de repli, MCP, navigateur et terminal testés.
  • Comportement d’approbation et de bac à sable testé, y compris une action refusée.
  • Tâches cron, plugins, accroches, arrière-plan de mémoire et liaisons multi-agents reconstruits ou retirés.
  • Passerelle OpenClaw arrêtée avant que les identifiants de canal ne soient déplacés.
  • Chaque canal de messagerie testé depuis un compte autorisé.
  • WhatsApp ré-apparié si utilisé.
  • Commandes de retour en arrière et noms d’archives enregistrés.
  • Nettoyage OpenClaw différé jusqu’à la fin de la période de stabilisation.

Verdict final

hermes claw migrate est assez bon pour rendre le transfert d’OpenClaw vers Hermes une routine, mais seulement si « routine » signifie planifié et réversible. Sa fonctionnalité la plus forte n’est pas le nombre de fichiers qu’il copie ; c’est l’aperçu qui vous dit quelles parties de l’ancien assistant ont un équivalent Hermes réel et lesquelles nécessitent encore un jugement d’ingénierie.

Utilisez le préréglage complet pour découvrir la portée, gardez les secrets hors de la première passe, renommez les conflits de compétences, testez depuis le terminal et transférez la propriété du canal comme un événement séparé. Le plus important, préservez l’ancien système jusqu’à ce que Hermes ait terminé un travail planifié réel et de vraies conversations, pas simplement retourné une commande de statut réussie.

Références

S'abonner

Recevez de nouveaux articles sur les systèmes, l'infrastructure et l'ingénierie IA.