Hermes Agent na prática: instalação, memória, skills e gateway

Hermes Agent na prática: instalação, memória, skills e gateway

Tutorial completo do Hermes Agent da Nous Research — arquitetura, instalação, configuração, skills auto-geradas, memória persistente, gateway multi-canal e migração a partir do OpenClaw.

Introdução

Se você já leu nosso post sobre OpenClaw, sabe que plataformas modernas de agentes se organizam em torno de um runtime central, memória substituível, extensões e canais de mensagem. O Hermes Agent — framework open source da Nous Research, licença MIT — segue uma tese diferente, mas complementar: o agente deve melhorar com o tempo, não apenas executar workflows estáticos.

Hermes não é um chatbot genérico de atendimento ao cliente, nem um copilot preso à IDE. É um agente autônomo que roda no seu servidor (VPS de US$ 5, cluster GPU ou infraestrutura serverless), mantém memória persistente entre sessões, cria skills em Markdown quando resolve problemas complexos, e pode ser acionado por CLI, Telegram, Discord, Slack, WhatsApp, Signal e dezenas de outros canais via um único processo gateway.


Desenvolvimento

1. O que é o Hermes Agent (de fato)

O post anterior deste blog sobre “Agentes Hermes” estava incorreto: descrevia um produto genérico de automação industrial e atendimento ao cliente que não existe. O Hermes Agent real é um framework de agente autônomo mantido pela Nous Research, com repositório em github.com/NousResearch/hermes-agent e documentação em hermes-agent.nousresearch.com/docs.

Três ideias definem o produto:

ConceitoO que significa na prática
Agente de longa duraçãoRoda 24/7 em servidor; você conversa do celular enquanto ele trabalha na VM
Loop de aprendizado fechadoApós resolver tarefas difíceis, grava skills reutilizáveis e enriquece memória
Model-agnosticTroca de modelo com hermes model — OpenRouter, Anthropic, OpenAI, Ollama, Nous Portal

Hermes compartilha DNA com OpenClaw (gateway multi-canal, memória em Markdown, skills), mas adiciona TUI completa, 70+ ferramentas, 6 backends de terminal (local, Docker, SSH, Modal, Daytona, Singularity), cron nativo e migração oficial a partir do OpenClaw.

Loop de aprendizado do Hermes Agent

1.1 Para quem é indicado

  • Desenvolvedores que querem um agente pessoal ou de time rodando em VPS
  • Times de plataforma avaliando agentes self-hosted sem lock-in de cloud
  • Pesquisadores interessados em trajectories, batch generation e fine-tuning
  • Usuários OpenClaw buscando TUI mais rica, cron integrado ou migração guiada

1.2 Para quem NÃO é indicado

  • Quem precisa apenas de autocomplete inline na IDE → use Claude Code ou Cursor
  • Quem quer zero setup e SaaS puro → Hermes exige servidor e configuração
  • Quem busca agente “mágico” sem revisar permissões → Hermes expõe terminal e browser; configure approval

2. Visão geral da arquitetura

Antes de instalar, vale ter um mapa mental. Hermes separa entry points (como você fala com o agente) de um núcleo compartilhado (AIAgent em run_agent.py).

Arquitetura do Hermes Agent

2.1 Entry points

Entry pointComando / caminhoUso típico
CLIhermesSessão interativa no terminal, TUI com histórico e slash commands
Gatewayhermes gateway startBot Telegram/Discord/Slack conectado ao mesmo agente
ACPacp_adapter/Integração com VS Code, Zed, JetBrains
Batchbatch_runner.pyGeração de trajectories para treinamento
API Servergateway/platforms/api_serverHTTP API para integrações customizadas

Todos convergem para o mesmo AIAgent.run_conversation().

2.2 Componentes internos do AIAgent

Prompt Builder  →  monta system prompt (SOUL.md, memória, skills, AGENTS.md)
Provider Resolution  →  resolve (provider, model) → api_mode + credenciais
Tool Dispatch  →  registry com 70+ tools em ~28 toolsets
Compression  →  resume contexto quando ultrapassa limites
Session Storage  →  SQLite + FTS5 para busca em conversas passadas

2.3 Fluxo de uma mensagem no gateway

Fluxo do gateway

Platform event → Adapter.on_message() → GatewayRunner._handle_message()
  → autoriza usuário (allowlist / DM pairing)
  → resolve session key
  → AIAgent com histórico da sessão
  → resposta entregue pelo adapter de origem

2.4 Onde ficam os arquivos

Por padrão, tudo vive em ~/.hermes/ (ou %LOCALAPPDATA%\hermes no Windows nativo):

~/.hermes/
├── config.yaml          # configuração principal
├── SOUL.md              # personalidade do agente
├── MEMORY.md            # fatos duráveis
├── USER.md              # perfil do usuário (modelagem dialectic)
├── skills/              # skills criadas pelo agente e importadas
├── sessions/            # banco SQLite de sessões
└── gateway/             # estado do gateway, tokens, PIDs

Perfis isolados (hermes -p nome) recebem um HERMES_HOME separado — útil para agente pessoal vs. agente de trabalho.


3. Instalação passo a passo

3.1 Linux, macOS ou WSL2

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

O instalador provisiona automaticamente:

  • uv (gerenciador Python)
  • Python 3.11
  • Node.js, ripgrep, ffmpeg (conforme necessário)

Após instalar, recarregue o shell:

source ~/.bashrc   # ou: source ~/.zshrc
hermes doctor      # diagnóstico — deve passar sem erros críticos

3.2 Windows (beta nativo)

iex (irm https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.ps1)

Nota: Windows nativo está em beta early. Para setup mais estável, use WSL2 com o instalador Linux.

3.3 Setup inicial

hermes setup

O wizard interativo configura:

  • Provedor LLM e modelo padrão
  • Ferramentas habilitadas
  • Gateway (opcional)
  • Detecção automática de ~/.openclaw para migração

Atalho com Nous Portal (uma assinatura cobre modelos + Tool Gateway):

hermes setup --portal
hermes portal status

3.4 Verificar instalação

hermes doctor
hermes model list
hermes tools list

Saída esperada de hermes doctor: Python OK, dependências OK, config legível, sem paths quebrados.

3.5 Primeira conversa

hermes

No prompt interativo:

> Olá! Liste as ferramentas que você tem disponíveis nesta sessão.

Comandos úteis dentro da CLI:

ComandoAção
/new ou /resetNova conversa
/model provider:modelTrocar modelo
/personality nomeAplicar personalidade
/skillsListar skills disponíveis
/compressComprimir contexto manualmente
/usageVer uso de tokens
Ctrl+CInterromper execução atual

4. Configuração detalhada

A configuração central fica em ~/.hermes/config.yaml. Você também pode alterar valores via CLI:

hermes config set providers.default anthropic
hermes config set models.default claude-sonnet-4-20250514
hermes config get

4.1 Exemplo mínimo de config.yaml

# ~/.hermes/config.yaml — exemplo educacional
providers:
  default: openrouter

models:
  default: anthropic/claude-sonnet-4

tools:
  enabled_toolsets:
    - file
    - terminal
    - web
    - browser

terminal:
  backend: local          # local | docker | ssh | modal | daytona | singularity

memory:
  enabled: true

gateway:
  enabled: false

4.2 Variáveis de ambiente comuns

export OPENROUTER_API_KEY="sk-or-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export OPENAI_API_KEY="sk-..."

# Opcional: perfil isolado
export HERMES_PROFILE="trabalho"

Consulte a referência completa de env vars.

4.3 Escolhendo o modelo

hermes model
# ou diretamente:
hermes model set openrouter:anthropic/claude-sonnet-4

Modelos locais via Ollama:

hermes model set ollama:llama3.1:8b

A troca é sem alteração de código — o resolver de runtime mapeia (provider, model) para o modo de API correto (chat_completions, codex_responses, anthropic_messages).

4.4 Habilitando e desabilitando ferramentas

hermes tools
hermes tools enable browser
hermes tools disable code_execution

Cada toolset agrupa ferramentas relacionadas. Em produção, aplique princípio do menor privilégio: comece com file + web, adicione terminal e browser quando confiar no allowlist.


5. Personalidade e contexto do projeto

Hermes monta o system prompt a partir de arquivos Markdown — padrão familiar para quem vem do OpenClaw.

5.1 SOUL.md — quem é o agente

# SOUL.md

Você é o agente pessoal da KaiporaLabs. Responda em português brasileiro.
Seja direto, técnico e honesto sobre limitações.

Prioridades:
1. Segurança — nunca execute comandos destrutivos sem confirmação
2. Precisão — cite arquivos e comandos reais
3. Aprendizado — salve skills quando resolver problemas novos

Edite com:

${EDITOR:-nano} ~/.hermes/SOUL.md

5.2 AGENTS.md e .hermes.md — contexto por projeto

No diretório de trabalho do agente, crie AGENTS.md:

# AGENTS.md — projeto blog-hugo-heroku

Stack: Hugo Extended, tema hugo-up-business, deploy Dokku.
Comandos úteis:
- npm run dev — servidor local
- npm run build — build de produção
- git push dokku main — deploy

Nunca commitar secrets. Base URL produção: https://blog.kaiporalabs.ai

Hermes injeta esse contexto em toda conversa iniciada naquele workspace.

5.3 Personalities

hermes personality list
/personality engineer

Personalities são presets de tom e comportamento, úteis para alternar entre “modo código” e “modo pesquisa”.


6. Memória persistente

Amnesia entre sessões é o problema número um de agentes descartáveis. Hermes trata memória como camada de primeira classe.

6.1 Arquivos de memória

ArquivoConteúdo
MEMORY.mdFatos duráveis: preferências, decisões, aprendizados
USER.mdModelo do usuário (Honcho dialectic user modeling)
Sessões SQLiteHistórico completo com FTS5 para busca

O agente só lembra o que foi escrito — Markdown em disco é fonte da verdade, similar ao OpenClaw.

6.2 Exemplo de MEMORY.md

# MEMORY.md

## Infraestrutura
- Blog KaiporaLabs roda Hugo + Dokku em 167.71.93.233
- Deploy: git push dokku main
- Tema: hugo-up-business, idioma pt-br

## Preferências do usuário
- Respostas em português
- Tutoriais com intro, desenvolvimento, conclusão
- Incluir exemplos de código quando técnico

6.3 Busca em sessões anteriores

Hermes indexa conversas com FTS5 (full-text search). O agente pode recuperar trechos de sessões passadas via ferramentas internas, sem você repetir contexto.

Boas práticas:

  • Peça explicitamente: “Salve isso na memória” após decisões importantes
  • Revise MEMORY.md semanalmente — memória errada persiste
  • Use /compress quando contexto ficar longo, não /new impulsivo

6.4 Nudges de persistência

Diferencial do Hermes: nudges periódicos lembram o agente de persistir conhecimento útil. Isso faz parte do loop de aprendizado — o agente não depende só de você pedir para salvar.


7. Skills — memória procedural

Skills são documentos Markdown que descrevem como fazer algo — compatíveis com o padrão agentskills.io.

7.1 Criação automática

Quando Hermes resolve um problema complexo (ex.: configurar webhook Telegram + systemd), ele pode gerar uma skill em ~/.hermes/skills/:

~/.hermes/skills/
├── deploy-dokku-blog/
│   └── SKILL.md
├── openclaw-imports/
│   └── ...
└── telegram-gateway-setup/
    └── SKILL.md

7.2 Exemplo de skill manual

---
name: deploy-dokku-blog
description: Deploy do blog Hugo KaiporaLabs via Dokku
---

# Deploy Dokku — blog KaiporaLabs

## Pré-condições
- Remote dokku configurado
- Hugo build passa localmente

## Passos
1. npm run build
2. git push dokku main
3. Verificar https://blog.kaiporalabs.ai/posts/

## Troubleshooting
- Posts mostrando home: conferir serve public sem flag -s
- Imagens SVG: preferir PNG para capas

7.3 Invocando skills

/skills
/deploy-dokku-blog

Ou peça em linguagem natural: “Use a skill de deploy Dokku para publicar as mudanças.”

Skills auto-melhoram durante uso — o Hermes refina instruções quando encontra edge cases.


8. Gateway — fale de qualquer lugar

O gateway é o equivalente ao Gateway do OpenClaw: um processo long-lived que conecta canais externos ao AIAgent.

8.1 Configurar Telegram (exemplo)

hermes gateway setup
# Siga o wizard: selecione Telegram, informe bot token do @BotFather
hermes gateway start

Envie mensagem ao bot. Fluxo:

  1. Primeiro contato → DM pairing (autorização)
  2. Mensagem autorizada → session key → AIAgent
  3. Resposta → entregue no Telegram

8.2 Comandos do gateway

hermes gateway status
hermes gateway stop
hermes gateway logs

Slash commands funcionam nas plataformas de mensagem:

ComandoAção
/newNova sessão
/model provider:modelTrocar modelo
/stopInterromper execução
/statusStatus do gateway
/compressComprimir contexto

8.3 Continuidade cross-platform

Inicie conversa no Telegram, continue na CLI com a mesma sessão (quando configurado). Hermes espelha contexto entre plataformas — útil para “disparar tarefa no celular, revisar no desktop”.

8.4 Segurança no gateway

  • Configure allowlist de user IDs — não exponha bot público sem pairing
  • Revise hermes gateway pairing list
  • Documentação: Security guide

9. Ferramentas e backends de execução

Hermes registra 70+ ferramentas em ~28 toolsets. Destaques:

ToolsetCapacidades
fileread, write, patch, search_files
terminalshell com approval para comandos perigosos
webweb_search, web_extract
browserautomação completa (10 tools)
code_executionsandbox Python
delegatesubagentes isolados
mcpservidores MCP dinâmicos
visionanálise de imagem
cronagendamento

9.1 Backends de terminal

hermes config set terminal.backend docker
BackendQuando usar
localDev machine, confiança alta
dockerIsolamento por container
sshAgente remoto em outra VM
modalServerless, hiberna quando idle
daytonaDev environments na nuvem
singularityHPC / clusters acadêmicos

Mesma lógica de agente, ambiente de execução desacoplado — troque backend sem reescrever skills.

9.2 Approval de comandos perigosos

# Hermes detecta rm -rf, curl | bash, etc.
# Pede confirmação via callback CLI ou mensagem gateway

Configure patterns em config — Hermes importa allowlist do OpenClaw na migração.

9.3 MCP — estendendo capacidades

hermes mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /path/to/dir
hermes mcp list

Qualquer servidor MCP compatível expande o agente sem fork do core.


10. Subagentes e delegação

Para tarefas paralelas, use delegate tool:

> Analise o repositório em paralelo: (1) segurança do Dockerfile (2) performance do build Hugo (3) qualidade dos posts markdown

Hermes spawna subagentes com:

  • Conversas isoladas
  • Terminais próprios
  • Zero custo de contexto no agente principal (resultado resumido retorna)

10.1 Scripts Python via RPC

Pipeline multi-step pode colapsar em script Python que chama tools via RPC — uma “tool call” do ponto de vista do modelo, várias ações internas.


11. Cron — automações em linguagem natural

hermes cron add "Todo dia às 8h, envie resumo dos logs do gateway no Telegram"
hermes cron list
hermes cron remove <job-id>

Jobs ficam em jobs.json. Cada execução:

  1. Cria AIAgent sem histórico (sessão limpa)
  2. Injeta skills anexadas ao job
  3. Executa prompt
  4. Entrega resposta na plataforma configurada

Casos de uso:

  • Relatório diário de VPS
  • Backup noturno de ~/.hermes
  • Auditoria semanal de skills obsoletas

12. Migração a partir do OpenClaw

Se você já usa OpenClaw, Hermes oferece migração oficial:

hermes claw migrate --dry-run    # preview
hermes claw migrate              # interativo, preset full
hermes claw migrate --preset user-data   # sem secrets
hermes claw migrate --overwrite  # sobrescreve conflitos

O que migra:

Origem OpenClawDestino Hermes
SOUL.md~/.hermes/SOUL.md
MEMORY.md, USER.mdmemória equivalente
Skills do usuário~/.hermes/skills/openclaw-imports/
Allowlist de comandosapproval patterns
Config de messaginggateway platforms
API keys allowlistedcredenciais Hermes

Durante hermes setup, a detecção de ~/.openclaw é automática.


13. Hermes vs OpenClaw — quando usar cada um

CritérioOpenClawHermes Agent
FocoGateway + plugins + slotsLoop de aprendizado + TUI + skills
MemóriaMEMORY.md + plugins (memory-core, LanceDB)MEMORY.md + FTS5 + Honcho
CanaisPlugins de canal20 adapters nativos no gateway
CronVia plugins/hooksFirst-class hermes cron
Coding agentDelegável a Claude CodeTerminal + browser + delegate
Migraçãohermes claw migrate

Na KaiporaLabs, usamos OpenClaw quando precisamos de plugins customizados e slots explícitos. Hermes brilha quando queremos agente pessoal 24/7 que aprende skills e roda em VPS barata.

Ambos coexistem — não são excludentes.


14. Tutorial prático: agente pessoal em VPS

14.1 Provisionar VPS (Ubuntu 22.04)

ssh root@SEU_IP
apt update && apt upgrade -y
adduser hermes
usermod -aG sudo hermes
su - hermes

14.2 Instalar Hermes

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
source ~/.bashrc
hermes setup --portal   # ou configure API keys manualmente

14.3 Configurar Telegram

hermes gateway setup
# Token do @BotFather
hermes gateway start

14.4 Systemd para gateway persistente

# /etc/systemd/system/hermes-gateway.service
[Unit]
Description=Hermes Agent Gateway
After=network.target

[Service]
Type=simple
User=hermes
Environment=HOME=/home/hermes
ExecStart=/home/hermes/.local/bin/hermes gateway start --foreground
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl enable hermes-gateway
sudo systemctl start hermes-gateway
sudo systemctl status hermes-gateway

14.5 Testar do celular

Envie ao bot:

/status
/new
Monitore o disco desta VPS e me avise se passar de 85%

Hermes deve criar skill ou cron conforme configuração.


15. Troubleshooting

15.1 hermes doctor reporta erro de Python

# Reinstalar ambiente
curl -LsSf https://astral.sh/uv/install.sh | sh
hermes update
hermes doctor

15.2 Modelo não responde / 401

hermes config get providers
echo $OPENROUTER_API_KEY   # deve estar definida
hermes model set openrouter:anthropic/claude-sonnet-4

15.3 Gateway não conecta Telegram

hermes gateway logs
# Verificar token, webhook vs polling, firewall
hermes gateway pairing list

15.4 Contexto estourado

/compress
/usage

Ou troque para modelo com janela maior temporariamente.

15.5 Comando terminal bloqueado

Revise approval config. Para dev local:

hermes config set approval.auto_approve_safe true

Nunca em produção sem allowlist restrita.


16. FAQ

Hermes é gratuito?
Sim, open source MIT. Você paga infra (VPS) e APIs de modelo.

Preciso de GPU?
Não, se usar APIs cloud. GPU só para modelos locais (Ollama).

Funciona offline?
Parcialmente — com Ollama local. Gateway e web search precisam de rede.

Hermes envia telemetria?
Não, segundo a documentação. Dados ficam em ~/.hermes.

Quantos agentes simultâneos?
Use profiles (hermes -p nome) — cada um com HERMES_HOME isolado.

Posso contribuir?
Sim. Clone, ./setup-hermes.sh, scripts/run_tests.sh. Veja Contributing guide.


Conclusão

O Hermes Agent é a aposta da Nous Research por agentes stateful, self-improving e self-hosted. Diferente do conteúdo genérico que circulava sobre “Agentes Hermes”, o produto real é um framework técnico com CLI madura, gateway multi-canal, memória em Markdown, skills compatíveis com agentskills.io e migração oficial do OpenClaw.

Referências


Apêndice A — Referência rápida de comandos CLI

hermes                    # Iniciar CLI interativa
hermes setup              # Wizard de configuração
hermes model              # Selecionar modelo
hermes tools              # Configurar ferramentas
hermes config set KEY VAL # Alterar config
hermes gateway start      # Iniciar gateway
hermes gateway setup      # Configurar plataformas
hermes cron list          # Listar jobs agendados
hermes claw migrate       # Migrar do OpenClaw
hermes update             # Atualizar Hermes
hermes doctor             # Diagnóstico
hermes -p PROFILE         # Usar perfil isolado

Apêndice B — Glossário

TermoDefinição
AIAgentClasse central em run_agent.py; orquestra conversa
SkillDocumento Markdown com procedimento reutilizável
GatewayProcesso que conecta Telegram, Discord, etc.
ToolsetGrupo de ferramentas relacionadas
FTS5Full-text search SQLite para sessões
ACPAgent Client Protocol — integração IDE
ProfileInstância isolada com HERMES_HOME próprio
NudgeLembrete interno para persistir conhecimento

Apêndice C — Checklist de produção

  • hermes doctor limpo
  • Allowlist de usuários no gateway
  • Terminal backend = docker ou ssh (não local root)
  • Approval habilitado para comandos destrutivos
  • Backup de ~/.hermes/ agendado
  • MEMORY.md revisado manualmente
  • Modelo com custo adequado ao volume
  • Logs do gateway monitorados
  • Skills obsoletas arquivadas
  • Plano de rotação de API keys

Apêndice D — Configuração completa de exemplo (VPS produção)

# ~/.hermes/config.yaml — exemplo produção KaiporaLabs
providers:
  default: openrouter

models:
  default: anthropic/claude-sonnet-4

tools:
  enabled_toolsets:
    - file
    - terminal
    - web
    - delegate
  disabled_tools: []

terminal:
  backend: docker
  docker:
    image: python:3.11-slim
    mount_workspace: true

memory:
  enabled: true
  auto_nudge: true

approval:
  enabled: true
  auto_approve_safe: false
  patterns_file: ~/.hermes/approval-patterns.yaml

gateway:
  enabled: true
  platforms:
    telegram:
      enabled: true
      allowed_users:
        - 123456789
    discord:
      enabled: false

cron:
  enabled: true
  default_delivery: telegram

logging:
  level: info
  file: ~/.hermes/logs/hermes.log

Apêndice E — Configuração gateway Telegram detalhada

Passo 1: Crie bot no Telegram via @BotFather:

/newbot
KaiporaLabs Agent
kaiporalabs_agent_bot

Passo 2: Guarde o token e configure:

hermes gateway setup
# Selecione Telegram
# Cole o token
# Configure allowed_users ou habilite DM pairing

Passo 3: Inicie e valide:

hermes gateway start
hermes gateway status

Passo 4: Primeira mensagem — pairing:

/start

Se DM pairing estiver ativo, aprove:

hermes gateway pairing approve telegram <user_id>

Passo 5: Teste comandos:

/status
/model openrouter:anthropic/claude-sonnet-4
/new
Qual é o uptime desta máquina?

Apêndice F — Configuração gateway Discord

# 1. Crie app em https://discord.com/developers/applications
# 2. Bot → Reset Token → copie
# 3. OAuth2 → URL Generator → bot scope → Administrator (ou permissões mínimas)
# 4. Convide bot ao servidor

hermes gateway setup
# Selecione Discord
# Informe token e guild ID

hermes gateway start

Mensagem de teste no canal autorizado:

@KaiporaLabs Agent /status

Apêndice G — Docker backend para terminal

Quando terminal.backend: docker, cada comando shell roda em container isolado:

hermes config set terminal.backend docker
hermes config set terminal.docker.image python:3.11-slim
hermes
> Execute uname -a e confirme que está em container

Vantagens:

  • Processo host protegido
  • Filesystem isolado (exceto mounts configurados)
  • Reproducibilidade entre dev e prod

Desvantagens:

  • Latência extra por container
  • Imagens Docker consomem disco

Apêndice H — SSH backend para execução remota

terminal:
  backend: ssh
  ssh:
    host: 10.0.0.5
    user: deploy
    key_file: ~/.ssh/id_ed25519
    workspace: /home/deploy/projects

Use quando o agente roda em VPS leve mas execução pesada fica em outra máquina.

Apêndice I — Ollama local (sem API cloud)

# Instalar Ollama
curl -fsSL https://ollama.com/install.sh | sh
ollama pull llama3.1:8b

# Configurar Hermes
hermes model set ollama:llama3.1:8b
hermes tools disable browser   # reduzir carga
hermes
> Resuma o README deste diretório

Ideal para experimentação offline. Qualidade inferior a Sonnet/Opus, mas custo zero de API.

Apêndice J — Migração OpenClaw passo a passo

Cenário: você tem OpenClaw em ~/.openclaw com memória e skills.

# 1. Preview
hermes claw migrate --dry-run

# Saída esperada:
# - SOUL.md → ~/.hermes/SOUL.md
# - MEMORY.md entries
# - skills → ~/.hermes/skills/openclaw-imports/
# - telegram config
# - API keys (allowlisted)

# 2. Migrar sem sobrescrever conflitos
hermes claw migrate --preset user-data

# 3. Revisar manualmente
diff ~/.openclaw/SOUL.md ~/.hermes/SOUL.md
ls ~/.hermes/skills/openclaw-imports/

# 4. Testar memória
hermes
> O que você sabe sobre mim e meus projetos?

# 5. Se OK, migrar secrets
hermes claw migrate --overwrite

Apêndice K — Exemplos de cron jobs

# Relatório diário 8h
hermes cron add "Diariamente às 08:00 BRT, verifique disco, memória e processos do gateway. Envie resumo no Telegram."

# Backup semanal
hermes cron add "Domingo 03:00, compacte ~/.hermes em /backups/hermes-$(date +%Y%m%d).tar.gz e reporte tamanho."

# Listar
hermes cron list

# Remover
hermes cron remove <id>

Apêndice L — Skill completa de exemplo

Salve em ~/.hermes/skills/kaipora-blog-deploy/SKILL.md:

---
name: kaipora-blog-deploy
description: Deploy do blog Hugo KaiporaLabs para Dokku
version: 1.0.0
tags: [hugo, dokku, kaiporalabs]
---

# Deploy Blog KaiporaLabs

## Quando usar
Quando o usuário pedir para publicar, deployar ou atualizar blog.kaiporalabs.ai

## Pré-condições
- Repositório blog-hugo-heroku clonado
- Remote dokku configurado: git remote -v | grep dokku
- npm run build passa localmente

## Procedimento

### 1. Validar build local
```bash
cd /path/to/blog-hugo-heroku
npm run build

2. Verificar mudanças

git status
git diff --stat

3. Deploy

git push dokku main

4. Validar produção

curl -sI https://blog.kaiporalabs.ai/posts/ | head -1
curl -s https://blog.kaiporalabs.ai/posts/ | grep -c "text-primary"

Erros comuns

SintomaCausaFix
Posts mostram homeserve -s (SPA mode)serve public sem -s
Capas invisíveisSVG encodingPNG + resvg
Build Hugo failNode/Hugo versionscripts/install-hugo.sh

Rollback

git revert HEAD
git push dokku main

Invoque com `/kaipora-blog-deploy` ou peça em linguagem natural.

### Apêndice M — MCP servers recomendados

```bash
# Filesystem (acesso controlado a diretório)
hermes mcp add fs-work -- npx -y @modelcontextprotocol/server-filesystem ~/projects

# Git
hermes mcp add git -- uvx mcp-server-git --repository ~/projects/blog-hugo-heroku

# Fetch web
hermes mcp add fetch -- uvx mcp-server-fetch

hermes mcp list

Apêndice N — Tabela de slash commands (CLI + Gateway)

ComandoCLITelegram/DiscordDescrição
/newNova sessão
/resetAlias de /new
/model [p:m]Trocar modelo
/personality [n]Personalidade
/retryRepetir último turno
/undoDesfazer
/compressComprimir contexto
/usageTokens usados
/insights [days]Análise de sessões
/skillsListar skills
/stopInterromper (gateway)
/statusStatus gateway
/platformsPlataformas CLI

Apêndice O — Troubleshooting expandido

O.1 Gateway crash loop

journalctl -u hermes-gateway -n 100 --no-pager
hermes gateway logs
hermes doctor
# Verificar token expirado, porta em uso, permissões ~/.hermes

O.2 SQLite locked

# Parar gateway e CLI concorrentes
hermes gateway stop
fuser ~/.hermes/sessions/*.db 2>/dev/null
# Reiniciar
hermes gateway start

O.3 Skill corrompida

mv ~/.hermes/skills/nome-problema ~/.hermes/skills/nome-problema.bak
hermes
> Recrie a skill X com base no que aprendeu hoje

O.4 Memória incorreta

nano ~/.hermes/MEMORY.md
# Remova entradas erradas manualmente
hermes
> Releia MEMORY.md e confirme o que sabe sobre meus projetos

O.5 Custo de API alto

hermes config set models.default openrouter:anthropic/claude-haiku-4
# Use modelo grande só para tarefas complexas
/compress
/usage

Apêndice P — Integração com Claude Code e Harness

Workflow KaiporaLabs recomendado:

┌─────────────────┐     ┌──────────────────┐     ┌─────────────────┐
│  Hermes Agent   │────▶│  Claude Code     │────▶│  git push       │
│  (VPS 24/7)     │     │  (refactor local)│     │  dokku          │
│  Telegram ops   │     │  terminal        │     │  produção       │
└─────────────────┘     └──────────────────┘     └─────────────────┘
         │                        │
         └──────── Harness Cursor ┘
                  (orquestração IDE)
  1. Hermes monitora VPS, cron, alertas
  2. Harness/Cursor orquestra implementação no repo
  3. Claude Code executa refactor/testes no terminal
  4. Skill deploy publica via Dokku

Apêndice Q — 20 cenários de teste pós-instalação

Execute cada cenário após setup. Marque ✓ quando passar.

[ ] 1. hermes doctor sem erros
[ ] 2. hermes → pergunta simples respondida
[ ] 3. /model → troca de modelo funciona
[ ] 4. read_file em AGENTS.md
[ ] 5. web_search retorna resultados
[ ] 6. terminal uname -a (com approval)
[ ] 7. /compress reduz contexto
[ ] 8. MEMORY.md atualizado após pedido
[ ] 9. Skill criada automaticamente
[ ] 10. /skills lista skills
[ ] 11. gateway start sem crash
[ ] 12. Telegram /status responde
[ ] 13. Telegram /new limpa sessão
[ ] 14. DM pairing funciona
[ ] 15. cron add + list
[ ] 16. hermes update não quebra config
[ ] 17. hermes -p test isolado de default
[ ] 18. delegate subagent retorna resumo
[ ] 19. mcp list mostra servers
[ ] 20. claw migrate --dry-run (se OpenClaw)

Apêndice R — Perguntas para fazer ao agente no primeiro dia

1. Liste tools habilitadas e explique risco de cada uma.
2. Leia AGENTS.md e resuma o projeto atual.
3. Crie SOUL.md inicial se não existir — tom técnico, PT-BR.
4. Qual modelo está ativo? Qual custo estimado por 1000 tokens?
5. Como você persiste memória? Mostre caminho dos arquivos.
6. Se eu mandar mensagem no Telegram, qual session key usa?
7. Proponha 3 cron jobs úteis para este servidor.
8. O que acontece se contexto estourar mid-task?
9. Como migrar skill para outro perfil hermes -p?
10. Quais comandos precisam approval? Como auditar?

Apêndice S — Referência de arquivos do repositório upstream

CaminhoResponsabilidade
run_agent.pyAIAgent — loop principal
cli.pyHermesCLI — TUI
model_tools.pyDispatch de tools
hermes_state.pySQLite + FTS5
gateway/run.pyGatewayRunner
gateway/platforms/telegram/Adapter Telegram
tools/registry.pyRegistry central
tools/environments/Backends terminal
agent/prompt_builder.pySystem prompt
agent/memory_manager.pyOrquestração memória
cron/jobs.pyDefinição de jobs
hermes_cli/setup.pyWizard setup

Apêndice T — Glossário expandido

TermoDefinição detalhada
Loop agenticCiclo plan → act → observe → repeat até objetivo
Tool callInvocação de ferramenta pelo modelo
Session keyIdentificador único de conversa por plataforma/usuário
CompressionSumarização lossy de turnos intermediários
PairingAutorização de DMs no gateway
TrajectoryExport ShareGPT para fine-tuning
Tool GatewayNous Portal routing de web/image/TTS/browser
HonchoUser modeling dialectic em USER.md
agentskills.ioPadrão aberto de skills Markdown