🐳 Guia de implantação · 2026

Hermes Agent Docker: guia completo de implantação para 2026

O guia completo para implantar Hermes Agent com Docker em 2026 - cobrindo Mode 1 vs Mode 2, configuração de produção do Compose, dicas do Windows/WSL2, suporte ARM64, integração de bot Telegram e uma referência completa para solução de problemas.

📅 Atualizado: abril de 2026⏱ leitura de 14 minutos✍️ Editorial EasyClaw
  • X(Twitter) icon
  • Facebook icon
  • LinkedIn icon
  • Copy link icon

O que é Hermes Agent e por que o Docker é a maneira certa de executá-lo

Hermes Agent é um agente autônomo de IA da Nous Research com um ciclo de aprendizagem integrado. Ao contrário dos agentes sem estado que recomeçam a cada execução, Hermes constrói uma biblioteca de habilidades persistente. Cada tarefa concluída pode se tornar uma habilidade reutilizável, tornando o agente mensuravelmente mais capaz ao longo do tempo.

Executar o Hermes bare-metal funciona, mas cria problemas reais:

  • O estado da habilidade e o histórico de conversas estão vinculados ao sistema de arquivos de uma única máquina
  • A reprodução do ambiente em reconstruções VPS requer trabalho manual
  • O isolamento do processo No significa que um subprocesso descontrolado pode afetar seu host

Docker resolve todos os três. Um contêiner configurado corretamente oferece portabilidade, isolamento e, com a estratégia de volume certa, um estado de aprendizado persistente que sobrevive às atualizações de imagem.

Two Docker Modes Explained – Escolha antes de começar

A maioria dos guias ignora totalmente esta decisão e vai para docker run. Não. Os dois modos têm perfis operacionais e de segurança significativamente diferentes.

Mode 1: Hermes dentro do contêiner Mode 2: Docker como terminal sandbox
O que corre onde Hermes + its runtime live inside the container Hermes é executado no host; Docker cria contêineres sandbox descartáveis ​​para tarefas de terminal
Isolation Hermes itself está isolado Only the output of terminal tasks está isolado
State management Volumes handle everything Host filesystem holds Hermes state
Recommended para VPS production, team deployments Local dev, quick experimentation
DOCKER_HOST needed No Yes (sibling container setup)

Rule of thumb: Se você estiver implantando em um VPS ou quiser um ambiente de produção reproduzível, use o Modo 1. Se você estiver executando o Hermes localmente e quiser ativar sandboxes Docker para execução de código, use o Modo 2.

Mode 1 — Hermes correndo dentro de um contêiner

Hermes e todas as suas dependências vivem dentro da imagem. Você gerencia o estado por meio de volumes nomeados. A política de reinicialização do contêiner o mantém ativo durante as reinicializações. Este é o padrão de produção mais comum.

  • Separação limpa do host – sem gravações acidentais em sua máquina
  • Portabilidade total; reimplantar em qualquer lugar com o mesmo arquivo de composição
  • Sobrecarga um pouco maior do que a execução nativa

Mode 2 — Docker como sandbox de back-end de terminal

Aqui, o Hermes é executado diretamente no host (ou em um contêiner) e chama o daemon do Docker para ativar contêineres efêmeros para execução do shell. Você configura DOCKER_HOST para que Hermes possa acessar o daemon:

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

Nota de segurança: Montar o soquete Docker dentro de um contêiner concede acesso quase root ao host. Faça isso apenas em ambientes onde você confia completamente na carga de trabalho do contêiner.

Prerequisites and Environment Setup

Antes de extrair qualquer imagem, confirme:

  • Docker Engine 24+ ou Docker Desktop 4.26+
  • Uma chave de API LLM pronta: OpenAI (OPENAI_API_KEY), Anthropic (ANTHROPIC_API_KEY) ou um endpoint local Ollama
  • Acesso de saída à Internet na porta 443 (para chamadas de API LLM)
  • Pelo menos 2 GB RAM alocado para o contêiner (4 GB recomendados para configurações apoiadas por Ollama)

Windows-Specific Setup (Docker Desktop + WSL2)

O Windows é onde a maioria das implantações do Docker são interrompidas silenciosamente. Fique atento a estes:

Tradução do caminho do volume

Docker Desktop no Windows traduz caminhos por meio de WSL2. Use caminhos no estilo Linux dentro de arquivos do Compose — evite caminhos no estilo do Windows (C:\Users\...) nas definições do Compose volumes:.

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

Soquete vs. tubo nomeado

No Windows, o Docker expõe um pipe nomeado, não um soquete Unix. Para Mode 2, defina:

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

Limites de memória WSL2

O Docker Desktop no Windows padroniza WSL2 para 50% da RAM do host. Se Hermes parecer lento, adicione um .wslconfig em seu perfil de usuário do Windows:

[wsl2]
memory=4GB
processors=2

Início rápido – execute Hermes Agent com Docker em 5 minutos

Extraia a imagem oficial e execute o assistente de configuração:

# 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

O assistente de configuração é lançado na primeira execução. Ele solicitará que você:

  1. Selecione seu provedor LLM (OpenAI, Anthropic, Ollama ou endpoint personalizado)
  2. Insira sua chave de API ou URL de endpoint
  3. Configure o back-end do terminal (nativo ou sandbox do Docker)

Depois de concluído, verifique se a sessão está funcionando:

> hello

Hermes deve responder e confirmar que sua biblioteca de habilidades foi inicializada. Se você vir skill store empty em um contêiner novo, isso é esperado – as habilidades se acumulam com o uso.

Production Deployment with Docker Compose

O comando docker run simples funciona para teste. Para qualquer coisa persistente, use Compose.

version: "3.9"

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    container_name: hermes-agent
    restart: unless-stopped
    stdin_open: true
    tty: true

    environment:
      # Use environment secrets — never hardcode keys in compose files
      OPENAI_API_KEY: ${OPENAI_API_KEY}
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
      HERMES_LOG_LEVEL: info

    volumes:
      - hermes_home:/root/.hermes         # Config + conversation history
      - hermes_skills:/root/.hermes/skills # Skill store — see next section

    deploy:
      resources:
        limits:
          memory: 2G
          cpus: "1.5"

    healthcheck:
      test: ["CMD", "hermes", "--health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 15s

    logging:
      driver: "json-file"
      options:
        max-size: "10m"
        max-file: "3"

volumes:
  hermes_home:
  hermes_skills:

Armazene suas chaves de API em um arquivo .env (nunca confirmado para controle de versão):

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

Preservando as habilidades da Hermes em reconstruções de contêineres

Esta é a preocupação de produção mais negligenciada. Hermes armazena as habilidades aprendidas separadamente da configuração geral. Monte esses caminhos explicitamente:

Caminho Contém Deve persistir?
/root/.hermes Config, session history Yes
/root/.hermes/skills Learned skill library Crítico
/root/.hermes/memory Long-term memory store Yes

Ao atualizar a imagem:

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

Advanced Topology — Configuração do Host-Docker (contêiner irmão)

Essa arquitetura é usada quando você deseja que o Hermes orquestre contêineres irmãos para execução isolada de código — por exemplo, executando código enviado pelo usuário com segurança.

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

Componha a configuração para esta 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

Notas de segurança para produção:

  • Restrinja o acesso ao soquete usando um proxy de soquete Docker (por exemplo, Tecnativa/docker-socket-proxy) para limitar quais chamadas de API o Hermes pode fazer
  • Nunca exponha o soquete Docker em ambientes multilocatários
  • Defina userns-remap no daemon Docker se precisar de um isolamento de host mais forte

Connecting Hermes to Claude via Telegram Bot

O guia escrito No atualmente cobre isso - é mostrado apenas em formato de vídeo. Aqui está a configuração completa.

Step 1: Crie um bot Telegram

Fale com @BotFather em Telegram:

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

Step 2: Obtenha seu token OAuth Claude

Em seu console Anthropic, gere uma chave de API com o escopo claude-3-5-sonnet ou claude-opus-4. Defina-o como ANTHROPIC_API_KEY.

Step 3: Adicione a configuração Telegram ao seu arquivo de composição

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: Encontre seu ID de usuário Telegram

Mensagem @userinfobot em Telegram — ela responde com seu ID de usuário numérico.

Step 5: Inicie o bot

docker compose up -d

Envie uma mensagem para seu bot no Telegram. Hermes responderá através do backend Claude. A restrição HERMES_TELEGRAM_ALLOWED_USERS garante que apenas sua conta possa interagir com o agente.

Implantação de múltiplas arquiteturas (Nível gratuito ARM64/Oracle/Raspberry Pi)

A imagem nousresearch/hermes-agent é enviada como um manifesto multi-arch. ARM64 é suportado — extraia-o explicitamente em hosts 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 é a melhor opção de hospedagem de custo zero para Hermes em 2026. A instância Ampere A1 oferece 4 núcleos ARM64 e 24 GB de RAM – mais do que suficiente para uma implantação persistente de Hermes com um provedor LLM remoto.

Problemas conhecidos específicos do ARM:

  • Algumas quantizações do modelo Ollama (Q8) são executadas mais lentamente no ARM; prefira Q4_K_M para inferência local
  • Se você clicar em exec format error, confirme que está usando a sinalização --platform linux/arm64
  • Docker Desktop no Apple Silicon lida com ARM nativamente – nenhum sinalizador de plataforma é necessário

Gerenciando fluxos de trabalho de agentes complexos? EasyClaw tem tudo o que você precisa

Executar Hermes Agent no Docker é uma configuração poderosa – mas orquestrar vários agentes de IA, gerenciar pipelines de habilidades e manter memória persistente em fluxos de trabalho complexos é onde a maioria das equipes se depara com um obstáculo. EasyClaw é uma plataforma de agente de IA nativa de desktop construída exatamente para isso: coordenação multiagente de nível de produção sem dores de cabeça de infraestrutura.

  • Orquestração visual para pipelines multiagentes — sem disputas de YAML
  • Memória persistente e bibliotecas de habilidades que sobrevivem às sessões
  • Funciona inteiramente na sua máquina – sem dependência da nuvem, sem vazamento de dados
  • Integrações nativas com Telegram, Slack e webhooks personalizados
  • Programação, monitoramento e inspeção de log integrados
Experimente EasyClaw gratuitamente →

Solução de problemas comuns de falhas do Docker Hermes Agent

Uma tabela de referência para as falhas que você provavelmente encontrará:

Falha Sintoma Diagnóstico Consertar
Image pull error manifest unknown docker pull nousresearch/hermes-agent:latest falha Check Docker Hub para tags válidas atuais; tente --platform linux/amd64
Volume permission denied O contêiner sai com erro de permissão em /root/.hermes docker run --rm -v hermes_home:/data busybox ls -la /data docker volume rm hermes_home e recrie ou corrija com chown por meio de um contêiner de inicialização do busybox
LLM auth failure 401 Unauthorized em registros docker logs hermes-agent | grep -i auth Verify API key está definido corretamente em .env; verifique se há espaços iniciais/finais
Assistente de configuração trava Wizard prompts but accepts no input N / D Certifique-se de que os sinalizadores -it estejam definidos em docker run; compor requer stdin_open: true + tty: true
LLM unreachable Connection refused para Ollama ou endpoint local docker exec hermes-agent curl http://host.docker.internal:11434 Use host.docker.internal em vez de localhost; adicione --add-host se necessário
Skills not persisting Skill library empty after rebuild docker volume ls — verifica se o volume existe Certifique-se de que o volume hermes_skills seja nomeado (não a montagem vinculada) e o arquivo de composição faça referência a ele
Erro de formato ARM exec exec /usr/local/bin/hermes: exec format error docker inspect image | grep Architecture Puxe novamente com --platform linux/arm64
Socket permission denied permission denied /var/run/docker.sock ls -la /var/run/docker.sock no host Adicione o usuário do contêiner ao grupo docker via group_add no compose

Perguntas frequentes

P: Minhas habilidades de Hermes sobreviverão a um docker compose pull && up -d?

R: Yes — contanto que suas habilidades sejam armazenadas em um volume nomeado (não em uma montagem vinculada ou volume anônimo). A configuração de composição neste guia usa hermes_skills como um volume nomeado, que o Docker preserva automaticamente nas atualizações de imagem.

P: Posso executar várias instâncias do Hermes no mesmo host?

R: Sim. Dê a cada instância um container_name distinto e volumes nomeados separados. Você também precisará garantir que eles não entrem em conflito em nenhuma porta exposta. Cada instância acumula sua própria biblioteca de habilidades independente.

P: Hermes Agent oferece suporte a LLMs locais via Ollama dentro do Docker?

R: Sim. Execute Ollama como um serviço separado na mesma pilha de composição e aponte Hermes para http://ollama:11434 (usando o DNS interno do Docker). Evite apontar para localhost de dentro de um contêiner — use o nome do serviço ou host.docker.internal para Ollama do lado do host.

P: É seguro montar o soquete Docker no contêiner Hermes?

R: A montagem do soquete concede ao contêiner privilégios próximos à raiz sobre seu host. É aceitável em um VPS de usuário único onde você controla todas as cargas de trabalho. Em ambientes compartilhados ou multilocatários, use um proxy de soquete (por exemplo, Tecnativa/docker-socket-proxy) para colocar na lista de permissões apenas as chamadas de API que o Hermes precisa.

P: Qual é a especificação mínima de servidor para uma implantação de produção do Hermes?

R: Com um provedor LLM remoto (OpenAI/Anthropic), 1 vCPU e 2 GB RAM são viáveis. Para um back-end Ollama auto-hospedado, você precisará de pelo menos 8 GB de RAM e uma CPU razoavelmente moderna. O nível gratuito Ampere A1 do Oracle (4 núcleos, 24 GB) cobre confortavelmente ambos os cenários a custo zero.

P: Como posso fazer backup das habilidades aprendidas e da memória de Hermes?

R: Use docker run --rm -v hermes_skills:/data -v $(pwd):/backup busybox tar czf /backup/hermes-skills-backup.tar.gz /data. Execute isso como um cron job agendado em seu host para backups automatizados antes de qualquer atualização de imagem.

Considerações finais: lista de verificação e próximas etapas

O ciclo de aprendizagem é o que separa o Hermes de todos os outros agentes que você executou no Docker. A configuração acima garante que o loop realmente acumula – não redefinições – sempre que você envia uma atualização.

Antes de chamar uma implantação pronta para produção, confirme:

  • Volumes nomeados criados para hermes_home e hermes_skills
  • Chaves de API armazenadas em .env, não codificadas no compose
  • Política restart: unless-stopped ativa
  • Aprovação no exame de saúde: docker inspect hermes-agent --format='{{.State.Health.Status}}'
  • Rotação de log configurada (max-size, max-file)
  • Limites de recursos definidos para evitar o esgotamento da memória
  • Assistente de configuração concluído e primeira sessão de chat verificada
  • (Se Mode 2) Montagem de soquete Docker confirmada e proxy de soquete considerado

Próximas etapas para obter valor imediatamente:

  1. Execute algumas tarefas reais – resumo de arquivos, revisão de código, pesquisa na web – para semear a biblioteca de habilidades
  2. Após 10 a 15 tarefas, execute hermes skills list para ver o que foi aprendido
  3. Revise o Nous Research GitHub para obter documentos de configuração de agente que abrangem modelos de habilidades personalizados e ajuste de memória
  4. Se você estiver no nível gratuito Oracle, configure um docker compose pull && docker compose up -d baseado em cron para atualizações de imagem com tempo de inatividade zero, preservando o estado aprendido