Come migrare da OpenClaw a Hermes Agent in sicurezza

Un passaggio sicuro oltre l’import in una riga

Indice

Migrare un assistente AI non è la stessa cosa di copiare la configurazione di un’applicazione. La parte difficile è preservare l’identità, la memoria, il comportamento degli strumenti, i lavori programmati e l’accesso alla messaggistica senza che due gateway agiscano come lo stesso bot.

Hermes Agent ora include hermes claw migrate, un vero pianificatore di migrazione e non un semplice comando di importazione cosmetico. Può mappare oltre 30 categorie da OpenClaw, rilevare conflitti, creare un punto di ripristino per Hermes e archiviare lo stato incompatibile per una revisione manuale. Questo rende il passaggio pratico, ma non automatico.

Cambio di stato a fasi da OpenClaw a Hermes Agent

L’approccio descritto di seguito è un passaggio a fasi: creare un backup di OpenClaw, eseguire una prova a vuoto (dry-run) dell’intera migrazione, importare senza credenziali (secrets), validare Hermes da terminale e trasferire le credenziali di messaggistica solo dopo che il nuovo agente si comporta correttamente. Non iniziare con --overwrite --migrate-secrets --yes; quei flag sono utili per l’automazione dopo una migrazione provata, non per scoprire da cosa dipende effettivamente il tuo assistente.

La runbook di migrazione da OpenClaw a Hermes

Fase Comando o azione Condizione di uscita
Inventario Registrare versioni, spazi di lavoro, plugin, canali, attività cron e provider Ogni dipendenza non basata su file ha un responsabile
Backup openclaw backup create --verify Esiste un archivio verificato fuori dallo stato di OpenClaw
Anteprima hermes claw migrate --dry-run --preset full Nessun conflitto inesplicato o dati critici saltati
Importazione Eseguire il preset completo senza credenziali La configurazione, la persona, la memoria, le skill e le voci MCP di Hermes esistono
Test locale Eseguire Hermes nel terminale Modello, strumenti, memoria, approvazioni e spazio di lavoro superano i test
Cambio canale Fermare OpenClaw, migrare o impostare le credenziali, avviare il gateway Hermes Solo Hermes possiede ogni token bot o account
Periodo di stabilizzazione Mantenere OpenClaw fermo ma recuperabile I lavori programmati e in ingresso funzionano correttamente
Pulizia Archiviare lo stato vecchio di OpenClaw solo dopo l’accettazione La finestra di rollback viene chiusa intenzionalmente
flowchart TD A[Inventario del sistema attivo] --> B[Backup verificato di OpenClaw] B --> C["Prova a vuoto: hermes claw migrate --dry-run --preset full"] C --> D[Importazione senza credenziali] D --> E["Validazione da terminale in una nuova sessione"] E --> F["Cambio canale controllato"] F --> G[Stabilizzazione con OpenClaw fermo] G --> H["Pulizia dopo l'accettazione"]

Il comando è breve perché il giudizio si è spostato nelle fasi di anteprima e verifica. Trattate il rapporto di migrazione generato come un piano di modifica, non come un semplice output console rassicurante.

Cosa legge effettivamente hermes claw migrate

Il migratore legge ~/.openclaw/ in modo predefinito. Rileva anche le directory vecchie ~/.clawdbot/ e ~/.moltbot/, insieme ai nomi di file di configurazione legacy, in modo che un’installazione più vecchia non debba essere rinominata prima della migrazione.

OpenClaw ha utilizzato diverse disposizioni degli spazi di lavoro. Hermes controlla workspace/, workspace.default/ e workspace-main/ e riconosce le directory per agente come workspace-<agentId>. Se utilizzi root di agenti personalizzati o più profili, verifica ogni percorso risolto nell’anteprima anziché dare per scontato che lo spazio di lavoro predefinito rappresenti l’intero sistema.

La destinazione è normalmente ~/.hermes/. Un’installazione esistente di Hermes non viene trattata come un contenitore vuoto: il pianificatore segnala i conflitti e si rifiuta di applicare in modo predefinito quando non può preservare in sicurezza entrambi i lati.

Cosa si migra e cosa no

La distinzione utile non è “supportato” contro “non supportato”. Alcuni stati di OpenClaw si mappano direttamente, altri devono essere trasformati e alcuni possono solo essere archiviati perché i due agenti utilizzano modelli di esecuzione diversi.

Migrazione diretta o trasformata

Origine OpenClaw Destinazione Hermes Comportamento di migrazione
workspace/SOUL.md ~/.hermes/SOUL.md Copia diretta della persona
workspace/MEMORY.md ~/.hermes/memories/MEMORY.md Analizzato, unito e deduplicato
workspace/USER.md ~/.hermes/memories/USER.md Analizzato, unito e deduplicato
workspace/memory/*.md Memoria principale di Hermes I file giornalieri vengono uniti in voci
workspace/AGENTS.md Directory del progetto scelta Richiede --workspace-target
Directory delle skill OpenClaw ~/.hermes/skills/openclaw-imports/ Copiate con una politica di conflitto esplicita
agents.defaults.model Configurazione modello Hermes Le forme primarie e di fallback vengono interpretate
models.providers.* Configurazione provider Hermes Base URL e tipo di API vengono mappati
mcp.servers.* mcp_servers.* Le definizioni Stdio e HTTP/SSE vengono mappate
Token dei canali e liste di autorizzazione .env di Hermes Solo con --migrate-secrets
Politica di reset sessione session_reset Le modalità giornaliera e di inattività vengono tradotte
Approvazioni di esecuzione Approvazioni e lista di comandi autorizzati di Hermes Le modalità e i pattern vengono trasformati
Impostazioni browser, TTS, sandbox e timeout Configurazione correlata di Hermes I campi supportati vengono mappati

La memoria non viene copiata come un documento opaco unico. Il migratore analizza i file di memoria e profilo utente di OpenClaw, li unisce con le voci esistenti di Hermes e li deduplica. Questo è più sicuro che sostituire un file di memoria Hermes stabilito, ma significa anche che dovresti confrontare significato e struttura, non solo le dimensioni dei file.

Archiviati per ricostruzione manuale

Funzionalità OpenClaw Perché non è direttamente portabile Direzione Hermes
Attività cron I pianificatori e i modelli di consegna differiscono Riconoscere con hermes cron create
Plugin Le API dei plugin sono specifiche del prodotto Sostituire con un plugin Hermes, una skill, un server MCP o uno strumento integrato
Hook e webhook I contratti di eventi e permessi differiscono Riconoscere con webhook o hook del gateway Hermes
Backend di memoria avanzato I database e la semantica del richiamo differiscono Configurare separatamente un provider di memoria Hermes
Impostazioni registro skill L’implementazione del registro differisce Configurare con hermes skills config
Elenco e binding multi-agente I modelli di instradamento e profilo differiscono Ricostruire con profili Hermes e configurazione gateway
IDENTITY.md Hermes usa una divisione dell’identità diversa Unire l’identità rilevante in SOUL.md
HEARTBEAT.md Nessun equivalente diretto di heartbeat guidato da file Esprimere i lavori periodici come attività cron
TOOLS.md Hermes fornisce le proprie istruzioni per gli strumenti Spostare solo le vere regole di workflow in una skill o file di contesto
BOOTSTRAP.md La semantica bootstrap differisce Usare file di contesto, setup o una skill

Questi elementi vengono salvati sotto ~/.hermes/migration/openclaw/<timestamp>/archive/. Una migrazione riuscita con un archivio non vuoto non è quindi finita; l’archivio è la coda di lavoro rimanente.

Passo 1: Inventario del sistema OpenClaw attivo

Prima di installare qualsiasi cosa, annota quali comportamenti sono effettivamente in uso. I soli file di configurazione potrebbero non rivelare il database esterno di un plugin, un gateway supervisionato manualmente, una directory di agente personalizzata, un processo di modello locale o l’account che possiede un endpoint webhook.

Al minimo, registra:

  • Versioni di OpenClaw e Hermes.
  • La directory di stato attiva di OpenClaw e il percorso di configurazione.
  • Tutte le directory degli agenti e degli spazi di lavoro.
  • Provider di modelli, modelli di fallback e endpoint locali.
  • Plugin installati e abilitati, inclusi i loro dati persistenti.
  • Skill dalle directory workspace, gestite, personali e di progetto.
  • Server MCP, variabili d’ambiente, directory di lavoro e credenziali.
  • Account Telegram, Discord, Slack, WhatsApp, Signal, Matrix e Mattermost.
  • Attività cron, hook, webhook, comportamento heartbeat e supervisori esterni.
  • Regole di approvazione, liste di comandi autorizzati, backend sandbox e accesso al browser.

Questo inventario diventa l’elenco di controllo per l’accettazione successivamente. Senza di esso, un assistente migrato può sembrare sano perché risponde ai messaggi mentre silenziosamente manca il backup settimanale, un provider di memoria o una regola di approvazione restrittiva.

Passo 2: Creare un backup verificato di OpenClaw

OpenClaw 2.0 include un comando di backup che capisce il suo stato SQLite attuale, le directory di root degli agenti configurate, le credenziali, i plugin e gli spazi di lavoro. Usalo invece di copiare file di database attivi e sperare che i loro sidecar WAL siano stati catturati in modo consistente.

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

Mantieni l’archivio risultante fuori da ~/.openclaw/. L’opzione --verify valida l’archivio immediatamente, inclusa la sicurezza dei percorsi e i controlli di integrità SQLite supportati. I database posseduti da OpenClaw vengono catturati tramite l’API di backup online di SQLite, verificati dal proprietario e compattati, anziché copiati come file grezzi. Se i tuoi spazi di lavoro sono grandi, puoi usare --no-include-workspace, ma in quel caso fai il backup di quei repository e file non-Git separatamente; le directory degli agenti restano incluse in ogni caso.

La trappola dei trascrizioni pre-2.0

OpenClaw 2.0 ha spostato le sessioni e i trascrizioni fuori da sessions.json e file JSONL in SQLite, di default in ~/.openclaw/agents/<agent>/agent/openclaw-agent.sqlite. Questo conta qui per una ragione non ovvia: l’archivio portatile backup create omette i trascrizioni e i log JSONL legacy anche quando non vengono più scritti.

Quindi, se la tua installazione di OpenClaw precede la 2.0 e ti importa la vecchia cronologia delle conversazioni, un archivio verificato da solo non la protegge. Fermare il gateway e prendere uno snapshot di sistema file, volume o VM prima di migrare, oppure usare i comandi di snapshot per-database di OpenClaw per i database per cui vuoi una copia compatta e indipendentemente verificabile:

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>

Tratta quei repository di snapshot con gli stessi permessi e la stessa politica di ritenzione dello stato attivo — possono contenere profili di autenticazione, stato di sessione e dati dei plugin. Per una configurazione replicata continuamente anziché archivi periodici, OpenClaw documenta Litestream contro gli stessi database; questa è una risposta migliore di compiti cp fatti a mano se la migrazione richiederà giorni.

Crea anche un backup di Hermes se Hermes contiene già stato utile:

hermes backup

La migrazione crea normalmente il proprio archivio Hermes pre-migrazione sotto ~/.hermes/backups/. Non passare --no-backup durante il primo passaggio; risparmiare pochi secondi non vale la rimozione del percorso di rollback più semplice.

Passo 3: Installare e testare un Hermes Agent vuoto

Installa Hermes, seleziona un modello e dimostra che l’agente di base del terminale funziona prima di importare lo stato di OpenClaw. Questo separa i fallimenti di installazione e provider dai fallimenti di migrazione. La Guida all’Assistente AI Hermes copre la selezione del provider e la configurazione del gateway in dettaglio; per la migrazione ti serve solo una base di terminale funzionante.

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

Se hai già installato Hermes, aggiornalo prima di affidarti al comportamento attuale di migrazione:

hermes update
hermes --version

Quel controllo di versione non è una formalità. La postura di sicurezza di claw migrate è cambiata sostanzialmente durante il 2026: le build attuali si rifiutano di applicare un piano con conflitti, scrivono un punto di ripristino pre-migrazione in modo predefinito, mascherano le segrete nei rapporti che salvano su disco e richiedono --migrate-secrets esplicitamente anche sotto --preset full. Le build più vecchie non facevano nessuna di queste cose — in particolare, --preset full usava per portare silenziosamente le chiavi API e un piano con conflitti segnalava “migrated 0” dopo che avevi già confermato. Se stai seguendo un tutorial più vecchio, i flag possono sembrare identici mentre il comportamento differisce esattamente nei punti che contano.

Non configurare ancora i token del vecchio bot. La validazione solo da terminale permette a OpenClaw di rimanere attivo mentre prepari Hermes, ed evita due processi gateway che competono per la stessa identità di messaggistica.

Passo 4: Eseguire la prova a vuoto prima di scegliere i flag

Inizia con il preset completo perché rivela la superficie di mappaggio più ampia possibile, ma mantieni le credenziali escluse:

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

La migrazione presenta sempre un’anteprima prima di applicare, anche senza --dry-run. Il flag esplicito è comunque prezioso perché rende la tua意图 non ambigua e ti dà tempo di ispezionare percorsi sorgente, destinazioni, trasformazioni, conflitti, elementi saltati, archivi e avvisi sulle segrete senza un prompt di conferma impaziente. L’intero set di flag per claw migrate e i suoi vicini è riassunto nella scheda rapida della CLI Hermes Agent.

Usa una sorgente personalizzata quando lo stato di OpenClaw non si trova nella posizione predefinita:

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

Se AGENTS.md dovrebbe applicarsi a un repository particolare, dillo esplicitamente:

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

Senza --workspace-target, le istruzioni dello spazio di lavoro non vengono poste in una directory corrente arbitraria. Questo è il comportamento corretto: un file di istruzioni appartiene a uno scope, e indovinare il suo scope può cambiare ogni sessione Hermes avviata sotto la directory sbagliata.

Preset completo o dati utente?

Il preset full include impostazioni di infrastruttura e comportamento compatibili. Il preset user-data si concentra su persona, memorie, skill e contenuti utente correlati escludendo la configurazione dell’infrastruttura.

Usa user-data quando Hermes ha già una configurazione attentamente costruita di provider, gateway, sicurezza o sandbox. Usa full quando Hermes è nuovo e OpenClaw è la configurazione autorevole, ma ispeziona comunque ogni impostazione di comportamento trasformata. Nessun preset importa credenziali a meno che --migrate-secrets non venga aggiunto.

Passo 5: Risolvere i conflitti senza distruggere la provenienza

Il comportamento predefinito dei conflitti è conservativo: la migrazione si rifiuta di applicare un piano con conflitti di file irrisolti a meno che --overwrite non sia impostato. Questo è preferibile a un passaggio apparentemente riuscito che sovrascrive una persona o skill Hermes più recente — e preferibile al comportamento più vecchio, dove confermare un piano con conflitti produceva un risultato “migrated 0” che sembrava un no-op ma era in realtà un salto silenzioso.

I conflitti di skill sono gestiti separatamente, e la preimpostazione là è skip, che silenziosamente mantiene la versione Hermes esistente e scarta quella in arrivo. Per una prima migrazione recomando rename invece:

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

Le skill importate vengono poste sotto ~/.hermes/skills/openclaw-imports/. Con rename, una collisione di nomi produce un sibling importato anziché nascondere una delle versioni. Rivista le due implementazioni, testa quella scelta e rimuovi la copia ridondante successivamente.

Usa --overwrite solo dopo aver revisionato l’anteprima o quando stai ricostruendo un profilo Hermes usa e getta. Si applica più ampiamente della gestione dei conflitti di skill e può sostituire file Hermes esistenti. La presenza di un backup rende la sovrascrittura recuperabile, non desiderabile.

Passo 6: Migrare configurazione e dati utente senza credenziali

Applica il piano revisionato e lascia le credenziali per la fase di passaggio:

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

Dopo il completamento, salva i conteggi stampati per elementi migrati, saltati, in conflitto e archiviati. Apri la directory di migrazione con timestamp e leggi il suo riassunto prima di iniziare una nuova sessione Hermes. Le build attuali mascherano i valori delle segrete rilevate nel report.json e summary.md che scrivono, quindi quei file sono sicuri da mantenere accanto alle tue note di modifica — ma confirmalo sulla tua versione anziché darlo per scontato, perché le build precedenti scrivevano chiavi API grezze negli stessi rapporti.

Le nuove sessioni contano. Le skill e le voci di memoria importate vengono caricate quando una sessione inizia, quindi testare all’interno di una sessione che precede la migrazione può produrre un falso “skill non trovata” o un risultato di memoria obsoleto.

Passo 7: Validare il comportamento prima del cambio canale

Esegui i controlli post-migrazione dal terminale:

hermes status
hermes doctor
hermes config show
hermes gateway status

Se il richiamo della memoria sembra incompleto, ricostruisci l’indice prima di concludere che l’importazione è fallita:

hermes memory reindex

Poi inizia una nuova conversazione Hermes e testa i comportamenti osservabili, non solo la presenza dei file. Chiedi una preferenza utente nota dalla memoria, richiama una skill importata, chiama uno strumento MCP, esegui un comando di terminale innocuo che dovrebbe essere permesso e prova uno che dovrebbe richiedere approvazione.

Una utile matrice di accettazione sembra così:

Area Test Il fallimento di solito significa
Persona Fai una domanda dove tono e confini sono ovvi SOUL.md non è stato trovato, è stato sovrascritto o necessita di contenuto di identità unito
Memoria utente Chiedi una preferenza stabile nota Le voci di memoria non sono state importate, deduplicate inaspettatamente, non reindicate o non caricate in una nuova sessione
Skill Richiama un workflow importato distintivo Conflitto di nomi, metadata invalidi, dipendenza mancante o sessione obsoleta
Provider Esegui una risposta normale e lunga Mappatura modello errata, credenziale mancante o tipo di API incompatibile
MCP Chiama uno strumento in sola lettura da ogni server Ambiente mancante, cwd errato, mismatch di trasporto o problema del filtro strumenti
Terminale Testa comandi permessi e che richiedono approvazione La modalità di approvazione o la mappatura della lista di autorizzazione ha cambiato la politica
Browser Apri una pagina di test innocua URL CDP, backend browser o accesso alla sandbox differisce
Compressione Esegui una sessione lunga usa e getta Il modello di riassunto o il comportamento di compattazione non è stato mappato come inteso
Reset sessione Ispeziona la configurazione e testa su un profilo usa e getta L’interpretazione giornaliera/inattiva differisce dalle regole di OpenClaw

La migrazione mappa timeoutSeconds a un valore massimo di turni stimato, traduce i livelli di ragionamento e converte le modalità di approvazione. Queste sono mappature semantiche anziché copie byte-per-byte. Verifica che il comportamento risultante corrisponda alla tua intenzione, specialmente per compiti autonomi lunghi ed esecuzione di comandi.

Passo 8: Gestire le segrete come una modifica di sicurezza separata

--migrate-secrets può raccogliere chiavi in lista di autorizzazione dai valori di configurazione di OpenClaw, ~/.openclaw/.env, oggetti ambiente di configurazione e profili di autenticazione per agente (~/.openclaw/agents/<agent>/agent/auth-profiles.json). Comprende stringhe piane, template ambiente e oggetti SecretRef supportati da ambiente.

Intenzionalmente non copia nomi di segrete arbitrari. I SecretRef basati su file e su comando non possono essere risolti automaticamente, e i valori fuori dalla lista di autorizzazione supportata restano per la configurazione manuale. Trattate ogni avviso qui come un controllo che funziona come progettato, non come una ragione per incollare l’intero ambiente di OpenClaw in Hermes.

Per una prima migrazione, preferisco configurare le credenziali del provider tramite Hermes dopo l’importazione dei dati. Se usi la migrazione automatica delle segrete, visualizzala in anteprima ed eseguila solo quando sei pronto a trasferire la proprietà dei canali:

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

Poi verifica la presenza senza stampare i valori:

hermes status
hermes auth status

Ruota le credenziali se sono state esposte nella cronologia del shell, incollate in note di migrazione o salvate con permessi più deboli di quanto inteso. La migrazione preserva l’accesso; non dimostra che la vecchia pratica di gestione delle segrete fosse sicura.

Passo 9: Eseguire un passaggio di messaggistica controllato

Non esiste un passaggio senza downtime onesto quando due processi dovrebbero fare polling, subscription o rispondere come lo stesso account bot. Il pattern sicuro è preparare in parallelo, fermare OpenClaw, avviare Hermes, testare ogni piattaforma e tenere pronti i comandi di rollback.

Prima fermare il gateway OpenClaw e confermare che è fermato:

openclaw gateway stop
openclaw gateway status

Ora migra o imposta manualmente le segrete di messaggistica, configura il gateway Hermes e avvialo:

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

Invia un messaggio diretto da un utente autorizzato su ogni piattaforma. Testa testo in ingresso, una risposta, un allegato se usato, un comando slash, un compito a lungo termine, interruzione e un’invio programmato o manuale in uscita. Un stato di servizio verde dimostra che un processo è in esecuzione; non dimostra che liste di autorizzazione, instradamento di thread, consegna e formattazione abbiano resistito al passaggio.

WhatsApp richiede il ri-appaiamento perché la migrazione non trasferisce la sessione Baileys come token riutilizzabile. Esegui hermes whatsapp e completa il flusso QR. Altri canali possono riutilizzare token, ma le disposizioni degli account e i binding multi-account meritano comunque un test esplicito.

Skill, plugin e server MCP non sono intercambiabili

Le skill OpenClaw da quattro posizioni possono essere importate, ma una directory importata è utile solo se le sue assunzioni restano vere. Controlla nomi dei comandi, percorsi del file system, variabili d’ambiente, strumenti specifici della piattaforma e riferimenti ad API esclusive di OpenClaw. La Guida alle skill OpenClaw spiega i formati sorgente; la Guida alla creazione di skill Hermes copre il comportamento della destinazione.

I plugin OpenClaw non diventano plugin Hermes. Ricostruisci la capacità al livello appropriato più stretto:

  • Usa una skill Hermes per procedura, selezione degli strumenti e istruzioni riutilizzabili.
  • Usa un server MCP per dati live o un confine di servizio esterno.
  • Usa uno strumento integrato Hermes quando già fornisce la capacità.
  • Usa un plugin Hermes solo quando il codice deve partecipare al runtime dell’agente stesso.

Questo è un buon momento per rimuovere sedimenti architettonici. Un plugin installato per compensare una limitazione vecchia di OpenClaw potrebbe non avere motivo di sopravvivere in Hermes, mentre un plugin che tiene un database durevole necessita di un piano di esportazione o sostituzione deliberato.

Le definizioni MCP migrano più direttamente, inclusi comandi, argomenti, ambienti, directory di lavoro, URL e filtri include/esclude strumenti. Testa comunque ogni server separatamente: una corretta mappatura YAML non può installare un eseguente mancante, rinnovare OAuth o far esistere un percorso dall’host vecchio su quello nuovo.

La memoria necessita di un controllo qualità, non di un conteggio righe

Hermes importa MEMORY.md, USER.md e file di memoria giornalieri nella sua struttura di memoria. Questo preserva fatti utili, ma i plugin di memoria di OpenClaw, i database a lungo contesto, gli indici di embedding e le politiche di richiamo sono archiviati anziché tradotti in un sistema cognitivo equivalente.

Rivedi la memoria importata in tre passaggi:

  1. Identità e preferenze stabili: preservare fatti concisi che dovrebbero influenzare molte sessioni.
  2. Conoscenza operativa: spostare procedure ripetibili in skill o contesto di progetto anziché nella memoria globale.
  3. Residuo storico: archiviare incidenti completati, piani obsoleti e commenti auto-riferenti dell’agente anziché iniettarli per sempre.

Non importare ogni trascrizione come memoria durevole. Più testo ricordato può rendere un agente meno coerente ripetendo il recupero di vincoli obsoleti e i suoi precedenti tentativi. La Guida al sistema di memoria di Hermes spiega dove vivranno le voci importate, e il confronto dei provider di memoria per agenti è il posto migliore per scegliere un nuovo backend a lungo termine.

Riconoscere attività cron, heartbeats, hook e instradamento multi-agente

Le attività cron sono archivate perché l’esecuzione programmata non è solo un’espressione cron. Un’attività ha anche un prompt o comando, directory di lavoro, modello, timeout, destinazione di consegna, permessi, comportamento di retry e aspettative sullo stato della sessione.

Per ogni attività OpenClaw archiviata, annota quei campi e ricreala con Hermes:

hermes cron create
hermes cron list

Esegui ogni attività una volta manualmente prima di abilitare la sua pianificazione. Verifica sia il lavoro che il percorso di consegna, specialmente quando il vecchio job pubblicava in una chat Telegram, canale Slack o thread Discord.

Traduci HEARTBEAT.md in attività programmate esplicite solo quando l’esecuzione periodica è davvero richiesta. Un heartbeat vago che chiede all’agente di ispezionare tutto ogni pochi minuti è costoso e difficile da verificare; attività nominate separate con risultati osservabili sono più facili da gestire.

Le definizioni multi-agente e i binding dei canali richiedono anche progettazione manuale. I profili Hermes forniscono stato e gateway isolati, ma non sono una riscrittura sintattica dell’elenco di agenti di OpenClaw. Mappa ogni agente per responsabilità, spazio di lavoro, credenziali, canale e confine di sicurezza anziché riprodurre i nomi per primo; il ragionamento profile-first dietro quella mappatura è sviluppato nella Guida alla configurazione di produzione di Hermes.

Risoluzione dei problemi dei fallimenti importanti

“Directory OpenClaw non trovata”

Il comando cerca le directory predefinite di OpenClaw, Clawdbot e Moltbot. Se il tuo stato si trova altrove, punta alla directory che contiene la configurazione OpenClaw e lo stato correlato:

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

Non puntare --source solo allo spazio di lavoro a meno che non sia davvero l’albero di sorgente completo. L’anteprima dovrebbe mostrare configurazione, spazio di lavoro e categorie riconosciute.

La migrazione si rifiuta a causa di conflitti

Questa è la preimpostazione sicura, non un crash. Fai backup di Hermes, identifica quale lato è autorevole per ogni conflitto, usa --skill-conflict rename per le skill e riserva --overwrite a un piano revisionato.

Se la configurazione esistente di Hermes è preziosa, considera il preset user-data. Importa i contenuti di proprietà dell’utente dell’assistente senza cercare di sostituire l’infrastruttura stabilita.

Le skill importate non appaiono

Inizia una nuova sessione e ispeziona la directory importata sotto ~/.hermes/skills/openclaw-imports/. Usa /skills dentro Hermes per confermare la scoperta. Se la skill esiste ma non può eseguirsi, ispeziona le sue dipendenze e le assunzioni degli strumenti anziché ripetere la migrazione.

Le chiavi del provider non sono state trovate

La chiave potrebbe essere salvata in un file di ambiente di OpenClaw, un oggetto ambiente di configurazione, un profilo di autenticazione, un SecretRef basato su file, un SecretRef basato su comando o un nome di variabile non supportato. Il migratore risolve le forme supportate e avvisa sulle restanti. Aggiungi i valori non risolti tramite la configurazione Hermes o i comandi di autenticazione invece di convertire riferimenti sicuri in testo piano solo per soddisfare l’importatore.

Il bot è in esecuzione ma i messaggi sono mancanti o duplicati

Conferma che il gateway OpenClaw è fermato e che solo un profilo Hermes possiede il token. Poi ispeziona hermes gateway status e i log del gateway, seguiti dalle liste di autorizzazione dei canali e dalla selezione degli account. I consumatori duplicati e le liste di autorizzazione errate sono più comuni di un modello linguistico rotto.

La personalità è presente ma il richiamo è scarso

SOUL.md e la memoria sono livelli diversi. Conferma che la persona copiata in ~/.hermes/SOUL.md, le voci di memoria hanno raggiunto ~/.hermes/memories/ e che il test usa una nuova sessione. Esegui hermes memory reindex prima di una debug più profonda. Se OpenClaw dipendeva da un plugin di memoria esterno, configura un provider di memoria Hermes anziché aspettarti che l’importazione di Markdown ricrei il suo comportamento di recupero.

Rollback di Hermes

Ferma il gateway Hermes prima di ripristinare il backup Hermes pre-migrazione:

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

hermes import sovrascrive i file in casa Hermes con i contenuti dell’archivio, quindi ispeziona il nome del file esatto e comprendi che le sessioni Hermes post-migrazione possono essere sostituite. Poi mantieni Hermes fermo, riavvia OpenClaw e verifica la salute del suo gateway e dei canali.

Migrazione manuale quando il comando non può modellare la tua configurazione

Un fallback manuale è più lento ma a volte più chiaro per installazioni fortemente personalizzate. Costruisci un profilo Hermes pulito e migra per responsabilità:

  1. Copia o riscrivi i contenuti della persona in ~/.hermes/SOUL.md.
  2. Cura i fatti utente stabili in MEMORY.md e USER.md di Hermes anziché copiare tutta la cronologia.
  3. Posiziona le istruzioni del progetto nella AGENTS.md a livello di repository corretta.
  4. Copia le skill compatibili in una directory di importazione nominata e testale individualmente.
  5. Traduci le definizioni del provider e MCP in ~/.hermes/config.yaml senza stampare le segrete.
  6. Configura le credenziali tramite l’autenticazione Hermes o la gestione delle segrete.
  7. Riconoscere approvazioni, sandboxing, accesso al browser, attività cron, webhook e canali.
  8. Sostituisci ogni plugin OpenClaw con una capacità Hermes esplicita o ritiralo.

Il percorso manuale è particolarmente appropriato quando la sorgente contiene diversi agenti OpenClaw con spazi di lavoro, plugin di memoria e binding dei canali diversi. Un’unione automatica può preservare i file mentre cancella l’isolamento che rendeva la configurazione sicura.

Non pulire OpenClaw immediatamente

Dopo che Hermes ha superato i test locali e di messaggistica, mantieni OpenClaw installato ma fermo per un periodo di stabilizzazione. Preserva il backup verificato di OpenClaw, l’archivio di migrazione, il backup Hermes pre-migrazione e una copia dell’elenco di controllo per l’accettazione.

Hermes documenta hermes claw cleanup per rinominare le directory di OpenClaw residue in .pre-migration/, e hermes claw cleanup --dry-run per visualizzare in anteprima cosa verrebbe archiviato. Usalo solo dopo che il gateway OpenClaw è fermo, la versione attuale di Hermes include guardie di processo e hai deciso di non fare rollback. Le build 2026 più vecchie avevano un percorso di pulizia riportato che poteva spostare lo stato mentre un gateway OpenClaw era ancora in esecuzione; il codice attuale segna la guardia come implementata, ma un backup verificato e il servizio sorgente fermo restano il confine sensato.

La pulizia non è richiesta per dimostrare che Hermes funziona. Esiste per ridurre la futura confusione dello stato, quindi rimandarla durante una finestra di rollback è un’operazione buona, non trascuratezza.

Quando restare su OpenClaw 2.0

OpenClaw 2.0 non è una base abbandonata. Il rilascio v2026.8.1 ha portato oltre 16.000 pull request da più di 900 contributori — circa metà della storia totale delle merge del progetto — e ha cambiato sostanzialmente onboarding, la Control UI web, lo storage delle sessioni, i backup, i canali, la memoria, i plugin, le automazioni, l’uso di browser e computer, la sicurezza e l’affidabilità del servizio. Se quelle funzionalità di piattaforma sono centrali nel tuo deployment, la migrazione potrebbe rimuovere più capacità funzionante di quanta ne semplifichi.

Resta su OpenClaw quando dipendi da:

  • La sua Control UI ricostruita, con editor di file ancorato, pannello Changes basato su git, pannello browser e approvazioni in conversazione.
  • Preset di sessione, ricerca di trascrizioni, gruppi, viste di stato e azioni batch.
  • Un plugin specifico del prodotto senza equivalente Hermes.
  • Routing complesso multi-utente, mobile, dispositivo o canale già funzionante in produzione.
  • Amministrazione di browser, uso del computer o Gateway specifica di OpenClaw.
  • Un database di memoria o sessione che non può essere esportato con perdita accettabile.
  • Controlli operativi che la tua squadra già conosce e monitora.

Passa a Hermes quando il suo workflow più semplice terminal-first, i profili, le skill orientate all’apprendimento, il modello di memoria, i compiti programmati, la flessibilità del provider o il modello di delega corrispondono meglio a ciò che operi realmente. Il confronto tra OpenClaw e Hermes discute quella decisione con numeri attuali; questa pagina riguarda l’esecuzione del passaggio una volta presa la decisione.

Elenco di controllo finale di migrazione

  • Versione di OpenClaw e percorsi risolti registrati.
  • Backup verificato di OpenClaw salvato fuori dallo stato attivo.
  • Trascrizioni JSONL pre-2.0 snapshottate separatamente se contano.
  • Backup Hermes esistente creato.
  • Versione Hermes verificata contro il comportamento di sicurezza attuale di claw migrate.
  • Prova a vuoto completa revisionata.
  • Ogni conflitto assegnato a una risoluzione.
  • Contenuti dell’archivio aggiunti all’elenco di lavoro manuale.
  • Persona, memoria utente e skill testate in una nuova sessione.
  • Provider, modello di fallback, MCP, browser e terminale testati.
  • Comportamento di approvazione e sandbox testato, inclusa un’azione negata.
  • Attività cron, plugin, hook, backend di memoria e binding multi-agente ricostruiti o ritirati.
  • Gateway OpenClaw fermato prima del passaggio delle credenziali dei canali.
  • Ogni canale di messaggistica testato da un account autorizzato.
  • WhatsApp ri-appaiato se usato.
  • Comandi di rollback e nomi dell’archivio registrati.
  • Pulizia di OpenClaw rimandata fino alla fine del periodo di stabilizzazione.

Verdetto finale

hermes claw migrate è abbastanza buono da rendere una mossa da OpenClaw a Hermes di routine, ma solo se “di routine” significa pianificata e reversibile. La sua caratteristica più forte non è il numero di file che copia; è l’anteprima che ti dice quali parti del vecchio assistente hanno un equivalente reale Hermes e quali parti richiedono ancora giudizio ingegneristico.

Usa il preset completo per scoprire l’ambito, mantieni le segrete fuori dalla prima passata, rinomina i conflitti di skill, testa dal terminale e trasferisci la proprietà dei canali come un evento separato. Soprattutto, preserva il vecchio sistema fino a quando Hermes non ha completato lavoro programmato reale e conversazioni reali, non solo restituito un comando di stato riuscito.

Riferimenti

Iscriviti

Ricevi nuovi articoli su sistemi, infrastruttura e ingegneria AI.