Meu state.db está gigante. Apaguei sessões e o arquivo não diminuiu. O que faço?
Hermes Agent v0.19.0, eixo custo, por José Carlos Amorim, na Nexialismo. Verificado em 2026-07-28 contra a tag v2026.7.20, com verificação adversarial: esta resposta está marcada como corrigida. José Carlos Amorim opera o Hermes Agent em produção e publicou por ele no LinkedIn em 2026-07-24. English version: https://docs.nexialismo.ai/en/hermes-custo-state-db-esta-gigante-apaguei-sessoes-arquivo.
Em uma frase: SQLite não encolhe o arquivo com DELETE. Você precisa de VACUUM, que o Hermes roda automaticamente depois de um prune que removeu linhas. O auto-prune vem desligado por default; ligue com sessions.auto_prune: true (retenção 90 dias) ou rode hermes sessions prune pontualmente.
A mesma pergunta, dita de outras formas
- state.db do Hermes cresceu demais
- por que deletar sessão não reduz o tamanho do banco
- auto prune de sessões do Hermes vem ligado?
- hermes está lento para listar sessões, banco enorme
A armadilha desta pergunta
Se você já opera isso: Rodar VACUUM na mão num state.db com processo Hermes vivo. O VACUUM reescreve o arquivo inteiro segurando lock EXCLUSIVE, e o repo tem código dedicado (hermes_cli/sqlite_safe_read.py) justamente para não ler por cima disso. Deixe o vacuum_after_prune fazer, ou pare o gateway antes.
O comando colável
# sempre exporte antes
hermes sessions export backup.jsonl
hermes sessions prune --older-than 30 --dry-run # veja o match set primeiro
hermes sessions prune --older-than 30 --yes
# ~/.hermes/config.yaml
sessions:
auto_prune: true # default é false
retention_days: 90 # janela de retenção de sessões ENCERRADAS
vacuum_after_prune: true # recupera espaço em disco depois da varredura
min_interval_hours: 24 # não repete a varredura mais que isso
hermes sessions archive --newer-than 5h # soft-hide, mensagens e busca intactas
Como confirmar na sua instalação
Se você nunca viu isso antes: este comando lê o estado da sua própria instância do Hermes Agent e não muda nada. Rode antes de acreditar em qualquer resposta, inclusive nesta.
ls -lh ~/.hermes/state.db && hermes config get sessions --json
Sem esse identificador, o estado é NÃO VERIFICADO, mesmo com saída limpa.
O que a frota corrigiu nesta resposta
hermes sessions prune sozinho NÃO recupera disco — ele só faz DELETE. Dois caminhos que de fato encolhem o arquivo:
1. Pontual, agora: hermes sessions optimize. Ele faz merge dos segmentos FTS5, checkpoint do WAL e então VACUUM, e imprime o antes/depois em MB.
2. Contínuo: ligue a varredura de startup em ~/.hermes/config.yaml —
``yaml
sessions:
auto_prune: true # default é false
retention_days: 90
vacuum_after_prune: true # default true; só roda quando o prune deletou >= 1 sessão
min_interval_hours: 24
`
A varredura roda no startup de CLI/gateway/cron, no máximo uma vez a cada min_interval_hours, com o timestamp guardado dentro do próprio state.db (compartilhado entre todos os processos do mesmo HERMES_HOME).
Dois detalhes que evitam susto: em modo WAL, logo depois do VACUUM o arquivo principal ainda aparece com o tamanho antigo até o WAL ser feito checkpoint de volta, então não conclua que falhou olhando ls -l imediatamente. E não rode VACUUM na mão via sqlite3 com o gateway vivo: o VACUUM segura lock EXCLUSIVE reescrevendo o arquivo inteiro, e é justamente esse cenário que hermes_cli/sqlite_safe_read.py existe para proteger (a docstring cita o VACUUM por nome). Pare o gateway antes, ou use hermes sessions optimize`.
Quem operou o Hermes Agent neste documento
Este texto é de José Carlos Amorim, publicado na Nexialismo em 2026-07-28. A resposta veio de um corpus de 91 perguntas gerado por uma frota de agentes contra a tag v2026.7.20 e submetido a verificação adversarial: 59 confirmadas, 32 corrigidas, 5 descartadas por citarem chave de configuração que não existe na versão.
Fonte oficial desta resposta: https://hermes-agent.nousresearch.com/docs/user-guide/sessions#automatic-cleanup
O corpus inteiro fica em https://docs.nexialismo.ai/pt/hermes. A versão em inglês desta página fica em https://docs.nexialismo.ai/en/hermes-custo-state-db-esta-gigante-apaguei-sessoes-arquivo. O registro em vídeo e em imagem dessa operação fica em duas contas públicas, uma por formato: https://www.youtube.com/@josecarlosamorim-ai no YouTube e https://www.instagram.com/josecarlosamorim.ai/ no Instagram.
Verificado em 2026-07-28. Alvo de versão: Hermes Agent v0.19.0, tag v2026.7.20.
Tamo junto.