🐳 Guida all'implementazione · 2026

Hermes Agent Docker: guida completa alla distribuzione per il 2026

La guida completa per la distribuzione di Hermes Agent con Docker nel 2026: copre Mode 1 vs Mode 2, configurazione di produzione Compose, trucchi Windows/WSL2, supporto ARM64, integrazione bot Telegram e un riferimento completo per la risoluzione dei problemi.

📅 Aggiornato: aprile 2026⏱ Lettura di 14 minuti✍️ Editoriale di EasyClaw
  • X(Twitter) icon
  • Facebook icon
  • LinkedIn icon
  • Copy link icon

Cos'è Hermes Agent e perché Docker è il modo giusto per eseguirlo

Hermes Agent è un agente AI autonomo di Nous Research con un ciclo di apprendimento integrato. A differenza degli agenti apolidi che ricominciano da capo a ogni corsa, Hermes crea una libreria di abilità persistente. Ogni attività completata può diventare una competenza riutilizzabile, rendendo l'agente significativamente più capace nel tempo.

Gestire Hermes bare metal funziona, ma crea problemi reali:

  • Lo stato delle competenze e la cronologia delle conversazioni sono legati al filesystem di una singola macchina
  • La riproduzione dell'ambiente nelle ricostruzioni VPS richiede un lavoro manuale
  • L'isolamento del processo No significa che un sottoprocesso fuori controllo può influenzare il tuo host

Docker risolve tutti e tre. Un contenitore configurato correttamente offre portabilità, isolamento e, con la giusta strategia di volume, uno stato di apprendimento persistente che sopravvive agli aggiornamenti delle immagini.

Two Docker Modes Explained: scegli prima di iniziare

La maggior parte delle guide salta completamente questa decisione e passa a docker run. Non. Le due modalità hanno profili di sicurezza e operativi significativamente diversi.

Mode 1: Contenitore interno Hermes Mode 2: Docker come sandbox terminale
Cosa corre dove Hermes + its runtime live inside the container Hermes funziona sull'host; Docker crea contenitori sandbox usa e getta per le attività del terminale
Isolation Hermes itself è isolato Only the output of terminal tasks è isolato
State management Volumes handle everything Host filesystem holds Hermes state
Recommended per VPS production, team deployments Local dev, quick experimentation
DOCKER_HOST needed No Yes (sibling container setup)

Rule of thumb: Se stai distribuendo su un VPS o desideri un ambiente di produzione riproducibile, utilizza la Modalità 1. Se esegui Hermes localmente e desideri che avvii i sandbox Docker per l'esecuzione del codice, utilizza la Modalità 2.

Mode 1 — Hermes che corre all'interno di un contenitore

Hermes e tutte le sue dipendenze vivono all'interno dell'immagine. Gestisci lo stato tramite volumi denominati. La politica di riavvio del contenitore lo mantiene attivo durante i riavvii. Questo è il modello di produzione più comune.

  • Separazione pulita dall'host: nessuna scrittura accidentale sul tuo computer
  • Portabilità completa; ridistribuirlo ovunque con lo stesso file di composizione
  • Overhead leggermente più elevato rispetto alla versione nativa

Mode 2: Docker come sandbox backend del terminale

Qui, Hermes viene eseguito direttamente sull'host (o in un contenitore) e chiama il demone Docker per avviare contenitori temporanei per l'esecuzione della shell. Lo configuri impostando DOCKER_HOST in modo che Hermes possa raggiungere il demone:

export DOCKER_HOST=unix:///var/run/docker.sock   # Linux
export DOCKER_HOST=tcp://host.docker.internal:2375  # Windows/Mac (Docker Desktop)

Nota sulla sicurezza: Il montaggio del socket Docker all'interno di un contenitore garantisce l'accesso quasi root all'host. Esegui questa operazione solo in ambienti in cui ti fidi completamente del carico di lavoro del contenitore.

Prerequisites and Environment Setup

Prima di estrarre qualsiasi immagine, conferma:

  • Docker Engine 24+ O Docker Desktop 4.26+
  • Una chiave API LLM pronta: OpenAI (OPENAI_API_KEY), Anthropic (ANTHROPIC_API_KEY) o un endpoint Ollama locale
  • Accesso a Internet in uscita sulla porta 443 (per chiamate API LLM)
  • Almeno 2 GB RAM allocato al contenitore (4 GB consigliati per le configurazioni supportate da Ollama)

Windows-Specific Setup (Docker Desktop + WSL2)

Windows è il luogo in cui la maggior parte delle distribuzioni Docker si interrompe silenziosamente. Fai attenzione a questi:

Traduzione del percorso del volume

Docker Desktop su Windows traduce i percorsi tramite WSL2. Utilizza percorsi in stile Linux all'interno dei file di composizione: evita percorsi in stile Windows (C:\Users\...) nelle definizioni di composizione volumes:.

# Correct — Docker Desktop translates this automatically
volumes:
  - hermes_data:/root/.hermes

Socket e pipe denominata

Su Windows, Docker espone una pipe denominata, non un socket Unix. Per Mode 2, impostare:

DOCKER_HOST=npipe:////./pipe/docker_engine

Limiti di memoria WSL2

Docker Desktop su Windows imposta WSL2 al 50% della RAM dell'host per impostazione predefinita. Se Hermes si sente lento, aggiungi un .wslconfig nel tuo profilo utente Windows:

[wsl2]
memory=4GB
processors=2

Avvio rapido: esegui Hermes Agent con Docker in 5 minuti

Estrai l'immagine ufficiale ed esegui la procedura guidata di configurazione:

# Pull the latest image
docker pull nousresearch/hermes-agent:latest

# Run with a persistent volume for state
docker run -it \
  -v hermes_home:/root/.hermes \
  -e OPENAI_API_KEY=your_key_here \
  nousresearch/hermes-agent:latest

IL procedura guidata di configurazione si avvia alla prima esecuzione. Ti verrà richiesto di:

  1. Seleziona il tuo provider LLM (OpenAI, Anthropic, Ollama o endpoint personalizzato)
  2. Inserisci la chiave API o l'URL dell'endpoint
  3. Configurare il backend del terminale (sandbox nativo o Docker)

Una volta completato, verifica che la sessione funzioni:

> hello

Hermes dovrebbe rispondere e confermare che la sua libreria di abilità è inizializzata. Se vedi skill store empty su un nuovo contenitore, è normale: le abilità si accumulano con l'uso.

Production Deployment with Docker Compose

Il semplice comando docker run funziona per i test. Per qualsiasi cosa persistente, usa Compose.

__EC_BLOCCO_15__

Memorizza le tue chiavi API in un file .env (mai vincolato al controllo della versione):

OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...

Preservare le competenze di Hermes nelle ricostruzioni dei container

Questa è la preoccupazione produttiva più trascurata. Hermes memorizza le competenze apprese separatamente dalla configurazione generale. Montare esplicitamente questi percorsi:

Sentiero Contiene Deve persistere?
/root/.hermes Config, session history Yes
/root/.hermes/skills Learned skill library Critical
/root/.hermes/memoria Long-term memory store Yes

Quando aggiorni l'immagine:

docker compose pull
docker compose up -d   # Named volumes persist automatically

Advanced Topology: configurazione Host-Docker (contenitore gemellato).

Questa architettura viene utilizzata quando si desidera che Hermes orchestra i contenitori fratelli per l'esecuzione di codice isolato, ad esempio eseguendo in modo sicuro il codice inviato dall'utente.

┌─────────────────────────────────┐
│         Docker Host             │
│                                 │
│  ┌──────────────┐               │
│  │ hermes-agent │◄──socket──────┤── /var/run/docker.sock
│  │  container   │               │
│  └──────┬───────┘               │
│         │ docker run (sibling)  │
│  ┌──────▼───────┐               │
│  │  sandbox-1   │  (ephemeral)  │
│  └──────────────┘               │
└─────────────────────────────────┘

Componi la configurazione per questa topologia:

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    restart: unless-stopped
    environment:
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      DOCKER_HOST: unix:///var/run/docker.sock
      HERMES_TERMINAL_BACKEND: docker
    volumes:
      - hermes_home:/root/.hermes
      - /var/run/docker.sock:/var/run/docker.sock  # Socket mount
    group_add:
      - "999"   # docker group GID — adjust to match your host

Note di sicurezza per la produzione:

  • Limita l'accesso al socket utilizzando un proxy socket Docker (ad esempio, Tecnativa/docker-socket-proxy) per limitare quali chiamate API Hermes può effettuare
  • Non esporre mai il socket Docker in ambienti multi-tenant
  • Imposta userns-remap sul demone Docker se hai bisogno di un isolamento host più forte

Connecting Hermes to Claude via Telegram Bot

La guida scritta di No attualmente copre questo argomento: viene mostrata solo in formato video. Ecco la configurazione completa.

Step 1: crea un bot Telegram

Parla con @BotFather su Telegram:

/newbot
→ Name: Hermes Agent
→ Username: your_hermes_bot
→ Save the token: 123456:ABC-DEF...

Step 2: ottieni il tuo token OAuth Claude

Nella tua console Anthropic, genera una chiave API con l'ambito claude-3-5-sonnet o claude-opus-4. Impostalo come ANTHROPIC_API_KEY.

Step 3: aggiungi la configurazione Telegram al tuo file di composizione

environment:
  ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
  HERMES_LLM_PROVIDER: anthropic
  HERMES_TELEGRAM_TOKEN: ${TELEGRAM_BOT_TOKEN}
  HERMES_TELEGRAM_ALLOWED_USERS: "your_telegram_user_id"

Step 4: trova il tuo ID utente Telegram

Messaggio @userinfobot su Telegram: risponde con il tuo ID utente numerico.

Step 5: avvia il bot

docker compose up -d

Invia un messaggio al tuo bot su Telegram. Hermes risponderà tramite il backend Claude. La restrizione HERMES_TELEGRAM_ALLOWED_USERS garantisce che solo il tuo account possa interagire con l'agente.

Distribuzione multi-architettura (livello gratuito ARM64/Oracle/Raspberry Pi)

L'immagine nousresearch/hermes-agent viene fornita come manifest multi-arch. ARM64 è supportato: eseguilo esplicitamente sugli host ARM:

# Oracle Free Tier (Ampere A1) or Raspberry Pi 4/5
docker pull --platform linux/arm64 nousresearch/hermes-agent:latest

# Verify the architecture
docker inspect nousresearch/hermes-agent:latest | grep Architecture

Oracle Always Free Tier è la migliore opzione di hosting a costo zero per Hermes nel 2026. L'istanza Ampere A1 ti offre 4 core ARM64 e 24 GB di RAM: più che sufficienti per una distribuzione Hermes persistente con un provider LLM remoto.

Problemi noti specifici di ARM:

  • Alcune quantizzazioni del modello Ollama (Q8) funzionano più lentamente su ARM; preferisci Q4_K_M per l'inferenza locale
  • Se premi exec format error, conferma che stai utilizzando il flag --platform linux/arm64
  • Docker Desktop su Apple Silicon gestisce ARM in modo nativo: non è necessario alcun flag di piattaforma

Gestisci flussi di lavoro complessi degli agentiEasyClaw ti copre

L'esecuzione di Hermes Agent in Docker è una configurazione potente, ma l'orchestrazione di più agenti IA, la gestione delle pipeline di competenze e il mantenimento della memoria persistente attraverso flussi di lavoro complessi è il punto in cui la maggior parte dei team si scontra con un muro. EasyClaw è una piattaforma di agenti AI nativa per desktop creata esattamente per questo: coordinamento multi-agente di livello produttivo senza i grattacapi dell'infrastruttura.

  • Orchestrazione visiva per pipeline multi-agente: nessuna disputa YAML
  • Memoria persistente e librerie di abilità che sopravvivono alle sessioni
  • Funziona interamente sul tuo computer: nessun blocco nel cloud, nessuna perdita di dati
  • Integrazioni native con Telegram, Slack e webhook personalizzati
  • Pianificazione, monitoraggio e ispezione dei registri integrati
Prova EasyClaw gratuitamente →

Risoluzione dei problemi comuni relativi agli errori Docker Hermes Agent

Una tabella di riferimento per gli errori che è più probabile riscontrare:

Fallimento Sintomo Diagnosi Aggiustare
Image pull error manifest unknown docker pull nousresearch/hermes-agent:latest non riesce Check Docker Hub per i tag attualmente validi; prova --platform linux/amd64
Volume permission denied Il contenitore esce con errore di autorizzazione su /root/.hermes docker run --rm -v hermes_home:/data busybox ls -la /data docker volume rm hermes_home e ricrea o correggi con chown tramite un contenitore init busybox
LLM auth failure 401 Unauthorized nei registri docker logs hermes-agent | grep -i auth Verify API key è impostato correttamente in .env; verificare la presenza di spazi iniziali/finali
La procedura guidata di installazione si blocca Wizard prompts but accepts no input N / A Assicurati che i flag -it siano impostati su docker run; la composizione richiede stdin_open: true + tty: true
LLM unreachable Connection refused a Ollama o endpoint locale docker exec hermes-agent curl http://host.docker.internal:11434 Utilizza host.docker.internal invece di localhost; aggiungi --add-host se necessario
Skills not persisting Skill library empty after rebuild docker volume ls: controlla che il volume esista Assicurati che il volume hermes_skills sia denominato (non il montaggio associato) e il file di composizione faccia riferimento ad esso
Errore di formato ARM exec exec /usr/local/bin/hermes: exec format error docker inspect image | grep Architecture Ritira con --platform linux/arm64
Socket permission denied permission denied /var/run/docker.sock ls -la /var/run/docker.sock sull'host Aggiungi l'utente contenitore al gruppo docker tramite group_add in compose

Frequently Asked Questions

D: Le mie abilità Hermes sopravvivranno a un docker compose pull && up -d?

R: Yes: purché le tue competenze siano archiviate in un volume denominato (non in un supporto di collegamento o in un volume anonimo). La configurazione di composizione in questa guida utilizza hermes_skills come volume denominato, che Docker conserva automaticamente negli aggiornamenti delle immagini.

D: Posso eseguire più istanze Hermes sullo stesso host?

R: Sì. Assegna a ciascuna istanza un container_name distinto e volumi con nome separati. Dovrai anche assicurarti che non entrino in conflitto su nessuna porta esposta. Ogni istanza accumula la propria libreria di abilità indipendente.

D: Hermes Agent supporta LLM locali tramite Ollama all'interno di Docker?

R: Sì. Esegui Ollama come servizio separato nello stesso stack di composizione e punta Hermes su http://ollama:11434 (utilizzando il DNS interno di Docker). Evita di puntare a localhost dall'interno di un contenitore: usa il nome del servizio o host.docker.internal per Ollama lato host.

D: È sicuro montare il socket Docker nel contenitore Hermes?

R: Il montaggio del socket garantisce al contenitore privilegi quasi root sul tuo host. È accettabile su un VPS per utente singolo in cui controlli tutti i carichi di lavoro. Negli ambienti condivisi o multi-tenant, utilizza un proxy socket (ad esempio, Tecnativa/docker-socket-proxy) per inserire nella whitelist solo le chiamate API necessarie a Hermes.

D: Qual è la specifica minima del server per una distribuzione Hermes di produzione?

R: Con un provider LLM remoto (OpenAI/Anthropic), è possibile utilizzare 1 vCPU e 2 GB RAM. Per un backend Ollama self-hosted, ti serviranno almeno 8 GB di RAM e una CPU ragionevolmente moderna. Il livello gratuito Ampere A1 di Oracle (4 core, 24 GB) copre comodamente entrambi gli scenari a costo zero.

D: Come posso sostenere le capacità apprese e la memoria di Hermes?

R: Usa docker run --rm -v hermes_skills:/data -v $(pwd):/backup busybox tar czf /backup/hermes-skills-backup.tar.gz /data. Eseguilo come un processo cron pianificato sul tuo host per backup automatizzati prima di qualsiasi aggiornamento dell'immagine.

Considerazioni finali: lista di controllo e passaggi successivi

Il ciclo di apprendimento è ciò che separa Hermes da ogni altro agente che hai eseguito in Docker. La configurazione di cui sopra garantisce effettivamente quel ciclo accumula - non si ripristina - ogni volta che invii un aggiornamento.

Prima di chiamare una distribuzione pronta per la produzione, conferma:

  • Volumi denominati creati sia per hermes_home che per hermes_skills
  • Chiavi API archiviate in .env, non hardcoded in composizione
  • Criterio restart: unless-stopped attivo
  • Superamento del controllo di integrità: docker inspect hermes-agent --format='{{.State.Health.Status}}'
  • Rotazione log configurata (max-size, max-file)
  • Limiti delle risorse impostati per prevenire l'esaurimento della memoria
  • La procedura guidata di configurazione è stata completata e la prima sessione di chat è stata verificata
  • (Se Mode 2) Montaggio socket Docker confermato e proxy socket considerato

Passaggi successivi per ottenere valore immediatamente:

  1. Esegui alcune attività reali (riepilogo dei file, revisione del codice, ricerca sul web) per arricchire la libreria di competenze
  2. Dopo 10-15 attività, esegui hermes skills list per vedere cosa è stato appreso
  3. Consulta Nous Research GitHub per i documenti di configurazione dell'agente che coprono i modelli di competenze personalizzate e l'ottimizzazione della memoria
  4. Se utilizzi il livello gratuito Oracle, configura un docker compose pull && docker compose up -d basato su cron per aggiornamenti delle immagini senza tempi di inattività preservando lo stato appreso