Hermes Ops — Produção
Procedimentos para manter o Hermes Agent saudável 24/7. Use antes/depois de update, quando o gateway “some”, quando Telegram para de responder, ou quando systemctl --user falha.
Guia longo: guides/instalacao-producao-vps.md neste repositório.
Quando carregar
hermes update/ dúvida se a versão subiuhermes gateway restarttrava ou não relança processoshermes statusok mas mensagem não chega- Erro
Failed to connect to bus: No medium found - Pós-reboot do VPS
Update
hermes update
hermes version # obrigatório validar
hermes doctor --fix
O update tipicamente:
- Backup em
~/.hermes/backups/pre-update-YYYY-MM-DD-HHMMSS... git pullno source (ex.:/usr/local/lib/hermes-agentem install root FHS)- Reinstall no venv do projeto
- Build da web UI se existir
Pitfalls
- Timeout do comando ≠ update falhou. Backup grande demora; confira
hermes version. - Nunca use
pipdo sistema. Fallback manual:cdno source e./venv/bin/pip install -e . - Depois do update, reinicie gateway se as conexões de messaging ficarem stale
Restart do gateway
hermes gateway restart
# se a CLI aceitar na sua versão:
hermes gateway status
ps aux | grep 'gateway run' | grep -v grep
Graceful shutdown pode estourar timeout da CLI enquanto o processo ainda está drenando sessões. Olhe o PID e os logs.
Sem systemd user bus
systemctl --user stop hermes-gateway
# → Failed to connect to bus: No medium found
Nesse ambiente:
- Não dependa de
systemctl --user ps aux | grep 'gateway run'kill -TERM <pid>no gateway principal- Relançar via supervisor do Hermes,
hermes gateway run, ou o unit/supervisor que você configurou no host
Se a imagem permitir systemd de verdade:
sudo loginctl enable-linger "$USER"
# units em ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user restart hermes-gateway
SIGKILL no stop (systemd)
Se o journal mostra status=9/KILL no restart, o gateway passou de TimeoutStopSec drenando agentes. Mitigações comuns:
- Aumentar
TimeoutStopSecno unit KillMode=process(não mata cgroup inteiro de uma vez)- Ajustar timeouts de drain/inactivity na
config.yamldo Hermes
Health-check ponta a ponta
Ordem curta:
hermes version
hermes doctor --fix
hermes status --all
tail -40 ~/.hermes/logs/gateway.log
tail -20 ~/.hermes/logs/errors.log
hermes send --to telegram:CHAT_ID "ping pós-ops"
# fórum/tópico:
hermes send --to telegram:CHAT_ID:THREAD_ID "ping thread"
Checklist mental:
| Check | OK se |
|---|---|
| Versão | string de versão + commit recente |
| Doctor | sem erro bloqueante |
| Processo | gateway run presente |
| Send | mensagem chega no app |
| Cron | hermes cron list sem rain de last_status ruim |
Avisos comuns (muitas vezes não-críticos)
Home-channel startup notification failed: send_path_degraded— confirme comhermes sendAPI server network-accessible AND terminal backend local— risco de desenho; não “ignore para sempre” se a API está públicaSecret redaction: DISABLED— ligue se quiser:hermes config set security.redact_secrets trueRunning as ROOT— comum em VPS single-tenant; ciente do blast radius
Profiles múltiplos
hermes profile list
ps aux | grep 'hermes.*-p \|gateway run' | grep -v grep
Após update/restart, confira se o default voltou. Workers Kanban usam -p <profile> no spawn — profile inexistente = task pronta que nunca anda (assignee fantasma).
Ver: guides/profiles-e-kanban.md
Cron (ponte)
Jobs de produção: prompt autocontido, delivery explícito, ledger se muta o mundo, script = filename em ~/.hermes/scripts/.
Ver: guides/cron-em-producao.md
Segurança operacional rápida
.enve tokens fora de git e de skill pública- Preferir approve mode consciente em gateway (
approvals.mode) - Não expor API server + shell local na internet sem auth e rede restrita
- Backup de
~/.hermesantes de migração grande (hermes backupse disponível na versão)
Comandos de bolso
hermes version
hermes doctor --fix
hermes status --all
hermes update
hermes gateway status
hermes gateway restart
hermes cron list
hermes profile list
hermes logs # se disponível
tail -f ~/.hermes/logs/gateway.log
Referências
- Docs: https://hermes-agent.nousresearch.com/docs/
- Skill oficial de produto (no seu Hermes instalado):
hermes-agent - Guias neste repo:
guides/instalacao-producao-vps.md,cron-em-producao.md,profiles-e-kanban.md