O que o Hermes Agent precisa saber sobre você para ser útil de verdade?

A memória do Hermes Agent vive em dois arquivos de texto em ~/.hermes/memories/: MEMORY.md para fatos gerais (cerca de 2.200 caracteres) e USER.md para perfil e preferências (cerca de 1.375 caracteres). Esse conteúdo é injetado no system prompt como snapshot no início da sessão, então tudo que está lá é cobrado em toda mensagem. Serve para ambiente, preferências, localização de projetos, peculiaridades de ferramentas e convenções estáveis. Não serve para log, código colado, efêmero de sessão nem progresso de tarefa. O comando hermes prompt-size mostra esse custo fixo, offline
Agente genérico responde genérico
Fala aí, beleza? O Hermes Agent é um agente open source da Nous Research, publicado sob licença MIT, e a versão mais recente publicada é a v0.20.0, de 3 de agosto de 2026
Só que ferramenta boa não adivinha o teu ambiente
Ele só vira útil de verdade quando recebe o contexto certo sobre você: onde ficam teus projetos, como tu gosta de trabalhar, qual ferramenta tem aquela manha esquisita
Aí vem a outra ponta da moeda, e é ela que quase ninguém comenta: contexto não é de graça
Tudo que tu guarda é reinjetado a cada mensagem, então informação a mais não é só "inofensiva", ela é cara e ainda pode empurrar dado pessoal pra dentro do prompt sem necessidade
Bora entender onde traçar essa linha?
Onde essa informação fica guardada
Antes do "o que escrever", o "onde mora"
A memória do Hermes Agent vive em dois arquivos de texto dentro do diretório do Hermes, em ~/.hermes/memories/
MEMORY.md: fatos geraisUSER.md: preferências e perfil do usuário
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 45min
Dois arquivos de texto, nada de banco mágico escondido, tu abre no editor e lê
Esses arquivos são injetados no system prompt como um snapshot congelado no início da sessão
Congelado é a palavra importante aqui: o que entrou quando a sessão abriu é o que o agente enxerga durante ela
Quem mexe nas entradas é o próprio agente, pela ferramenta memory, com três operações: add, replace e remove
Como o prompt é montado por camadas:
O Hermes monta o system prompt do mais estável pro mais volátil, nesta ordem:
- identidade
- orientação de ferramentas e índice de skills
- context files
- blocos de memória, perfil e timestamp
Se você conhece a ideia de camada de cache em build de imagem, é o mesmo raciocínio: o que muda pouco vem primeiro, o que muda toda hora vem por último
Isso não é detalhe estético, e daqui a pouco vou mostrar por que isso mexe direto no teu bolso
Contexto útil x ruído: o que vira memória e o que não
A própria documentação já corta esse debate no meio, beleza?
Memória é pra fato: o que ainda vai importar depois
| Vira memória (e por quê) | Não vira memória (e por quê) |
|---|---|
| Ambiente e convenções estáveis, porque não mudam a cada sessão e valem pra qualquer tarefa | Despejo de dado bruto (bloco grande de código, arquivo de log, tabela), porque devora o teto e não é fato, é anexo |
| Preferências e perfil, porque orientam o tom e o formato de toda resposta | Efêmero de sessão (caminho temporário, contexto pontual de debug), porque morre junto com a tarefa |
| Localização dos projetos, porque poupa o agente de sair caçando diretório | Informação que já está nos context files, porque tu paga duas vezes pelo mesmo contexto |
| Peculiaridade de ferramenta, porque evita repetir o mesmo aviso toda semana | Progresso ou estado temporário de tarefa, porque na próxima sessão aquilo já é mentira |
Repara no padrão: o lado esquerdo é sobre você e o teu mundo, o lado direito é sobre uma tarefa específica
É um teste simples de aplicar antes de deixar qualquer coisa entrar 🙂
O que colocar na memória segundo a sua rotina
Regra abstrata é bonita, mas rotina é rotina
Se tu alterna entre vários projetos, o que rende é a localização deles e as convenções que se repetem, tipo gerenciador de pacote, jeito de rodar os testes, aquela pasta que ninguém deveria tocar
Se tu tem stack e fluxo fixos, aí a memória compensa muito: preferência de linguagem, formato de resposta que tu curte, ferramenta que sempre trava do mesmo jeito
E se tu usa o agente em várias plataformas de mensagem, a memória é justamente o que faz o contexto viajar contigo em vez de ficar preso num terminal
O que NÃO precisa entrar:
Histórico de conversa
Sério, não gaste teu teto com isso
As sessões de CLI e de mensageria são gravadas em SQLite (~/.hermes/state.db) com busca full-text FTS5, consultável pela ferramenta session_search
Ou seja: o passado já é pesquisável, colar resumo de conversa na memória é pagar aluguel por coisa que tu já tem
Contexto de projeto também não precisa
O Hermes varre o diretório de trabalho procurando arquivo de contexto nesta ordem de precedência:
.hermes.mdAGENTS.mdCLAUDE.md.cursorrules
O primeiro que casar vence
Tome cuidado com isso: se tu já tem um CLAUDE.md no repo e cria um .hermes.md do lado, o .hermes.md é quem manda, o outro fica sentado no banco de reservas
Por que contexto demais encarece toda resposta
Agora o ponto que muda a forma de escrever memória
A memória é injetada em cada turno
Então ela não é um custo de uma vez, é um custo fixo por mensagem
Aquele parágrafo lindo que tu salvou "só por garantia" vai junto na pergunta de hoje, na de amanhã e naquela pergunta de uma linha que tu manda às pressas
E dá pra medir, não precisa achismo:
hermes prompt-size
Ele reporta o orçamento fixo de uma sessão nova (system prompt, índice de skills, memória e schemas das ferramentas) e funciona offline
Os context files também têm freio
Existe um teto de caracteres, definido por context_file_max_chars no config.yaml
Sem ele, o teto escala com a janela de contexto do modelo, com piso de 20.000 e teto de 500.000 caracteres
E o corte não é aleatório: fica 70% do início e 20% do fim, com um marcador no meio avisando que ali houve corte
Ou seja, arquivão de contexto não é "mais contexto", é contexto com miolo faltando
E o cache ajuda?
Ajuda, em parte
Pra Claude na Anthropic nativa, no OpenRouter e no Nous Portal, o Hermes aplica breakpoints de cache_control com TTL de 1 hora no system prompt e nos blocos de skill
Por isso a montagem em camadas importa tanto: o que é estável fica no começo e tende a se aproveitar do cache, enquanto o que muda toda hora fica no fim
Mesmo assim, cache é desconto, não é passe livre
Quando a memória enche ou vira bagunça
Três situações que aparecem na prática, com causa e saída
Sintoma: a escrita de memória falha com erro
Causa: a memória é intencionalmente limitada por número de caracteres, cerca de 2.200 para MEMORY.md e cerca de 1.375 para USER.md
E ela não compacta sozinha: uma escrita que ultrapassa o limite retorna erro em vez de descartar entradas em silêncio
Solução: consolidar com replace ou remove e tentar de novo
Detalhe pra não cair na pegadinha: o replace também é limitado pelo mesmo teto, não adianta "substituir" por um texto ainda maior 😛
Sintoma: tu percebe tarde que a memória lotou
Causa: ninguém acompanha a ocupação
Solução: a capacidade aparece no cabeçalho do system prompt, e a recomendação é consolidar as entradas quando passar de 80% da capacidade
Melhor arrumar a casa com folga do que descobrir o limite no meio de uma tarefa
Sintoma: aparecem entradas que você jura que nunca escreveu
Causa: dois processos do agente compartilhando o mesmo diretório home do Hermes
Como as escritas de memória são automáticas e voltam pro system prompt no início da sessão, dois escritores no mesmo home acumulam entradas que nenhum dos dois escreveu
Solução: perfis
Cada perfil é um diretório sob ~/.hermes/profiles/, com memória, banco de sessões e diretório de skills próprios, totalmente isolados
Como prevenir:
Revise o que está esperando pra entrar:
/memory pending
Ele lista as escritas de memória em staging, pela CLI ou por qualquer plataforma de mensagem
É o teu filtro humano antes de o texto virar custo fixo
Até onde vale expor dado pessoal ao agente
Aqui mora a parte desconfortável
Contexto útil e exposição desnecessária andam bem coladas, e a diferença costuma ser uma frase a mais que tu escreveu no automático
O Hermes tem proteções reais, vale reconhecer:
- entradas de memória e context files passam por varredura antes de entrar no prompt, checadas contra padrões de injeção de prompt (unicode invisível, tentativa de sobrescrever instruções) e contra padrões de exfiltração de credenciais, e o que casa com padrão de ameaça é bloqueado
- existe um redator central de segredos, que mascara formatos de credencial como prefixos de chave de API, JWTs, chaves privadas e strings de conexão de banco
- o filtro do Mixture of Agents acrescenta redação de e-mail e de telefone em formato claro
- perfis isolam completamente o contexto de agentes diferentes
E se tu quiser ir no botão vermelho, dá pra desligar a memória por completo, por configuração:
memory_enabled: false
Útil pra quando tu quer usar o agente de forma pontual, sem nada sendo gravado entre sessões
Tem mais um ponto que pesa a favor: o Hermes não coleta telemetria, dados de uso ou analytics do próprio Hermes, e conversas, memória e skills ficam em ~/.hermes/
O que sai da máquina são as chamadas ao provedor de LLM configurado
E é exatamente aí que a responsabilidade volta pro teu colo, porque a escolha do provedor e da autenticação muda a conversa toda, coisa que já apareceu quando falamos da autenticação do OpenCode com Antigravity
Redator de segredo pega formato de segredo
Ele não tem como adivinhar que aquele endereço, aquele nome de cliente ou aquela informação de saúde não deviam estar ali
E dado que virou texto num arquivo é dado que pode vazar por caminho que ninguém previu, como o vazamento no Claude Code deixou bem claro
A decisão do que escrever continua sendo tua, e ela é a camada de segurança que nenhum filtro substitui
Comece pequeno e deixe a memória crescer com uso
O teto apertado da memória do Hermes Agent parece defeito no primeiro dia e vira recurso na primeira semana
Com 2.200 e 1.375 caracteres, tu é obrigado a escolher o que importa, e é justamente essa escolha que separa um agente que te conhece de um agente carregando um diário inútil
Próximo passo, bem prático:
- roda
hermes prompt-sizee olha o custo fixo que tu paga hoje em toda mensagem - abre
MEMORY.mdeUSER.mde lê como se fosse texto de outra pessoa - corta tudo que é efêmero, progresso de tarefa ou duplicata do que já está no context file
E se um dia a memória embutida ficar apertada demais pro teu caso, existem 8 plugins de provedor de memória externo (Honcho, OpenViking, Mem0, Hindsight, Holographic, RetainDB, ByteRover e Supermemory)
Detalhe importante: eles rodam ao lado da memória embutida e nunca a substituem
Ou seja, a faxina continua sendo tua responsabilidade de qualquer jeito 😀
Contexto certo, na medida certa, é o que transforma um agente genérico em alguém que já sabe como tu trabalha
Até o próximo post!
Perguntas frequentes
Quantos caracteres cabem na memória do Hermes Agent?
O teto é por arquivo: cerca de 2.200 caracteres para o MEMORY.md (fatos gerais) e cerca de 1.375 caracteres para o USER.md (preferências e perfil). A ocupação aparece no cabeçalho do system prompt, e a recomendação é consolidar entradas assim que passar de 80% da capacidade.
O que acontece quando a memória do Hermes Agent ultrapassa o limite de caracteres?
Não tem compactação automática nem descarte silencioso: uma escrita que estoura o teto simplesmente retorna erro. O agente precisa consolidar com replace ou remove primeiro, já que o replace também é limitado pelo mesmo teto, e só então tentar de novo.
Dá pra desligar a memória persistente do Hermes Agent?
Dá, por configuração: memory_enabled: false desliga a memória por completo, como aparece na seção sobre exposição de dado pessoal. Útil se você quer usar o Hermes de forma pontual, sem que nada seja gravado em MEMORY.md ou USER.md entre sessões.
O Hermes Agent manda dados de memória pra algum servidor externo?
Não. Sem telemetria, dados de uso ou analytics do próprio Hermes: conversas, memória e skills ficam salvas localmente em ~/.hermes/, e o que sai da máquina são as chamadas ao provedor de LLM que você configurou.
Dois processos do Hermes Agent podem usar a mesma pasta de memória?
Não é recomendado. Como as escritas de memória são automáticas e voltam pro system prompt logo no início da sessão, dois escritores apontando pro mesmo diretório home acumulam entradas que nenhum dos dois pretendia salvar. O caminho correto pra isolar contextos é usar perfis separados, cada um com memória, banco de sessões e skills próprios em ~/.hermes/profiles/.
Dá pra revisar o que o Hermes Agent vai gravar na memória antes de salvar?
Dá, o comando /memory pending lista as escritas de memória que estão em staging, tanto pela CLI quanto por qualquer plataforma de mensagem conectada. Assim dá pra conferir antes de aquilo virar entrada fixa em MEMORY.md ou USER.md.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 27min
Blog | Mais populares
Hermes Agent é gratuito para usar em trabalho de cliente?
Hermes Agent é licenciado em MIT: uso comercial liberado sem taxa. Veja o que isso cobre, o que fica de fora e as regras para trabalho de cliente.
Como testar o Hermes Agent em ambiente controlado antes de dar acesso ao que importa?
Aprenda a testar o Hermes Agent em ambiente controlado: perfil isolado, container descartável, aprovação manual e skills sob revisão antes do acesso real.
Hermes Agent e Claude Code: onde cada um entra no fluxo de quem programa?
Hermes Agent e Claude Code fazem coisas diferentes: veja onde cada um entra no fluxo de quem programa e como a skill claude-code liga os dois.
