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

arquivos MEMORY.md e USER.md que formam a memória do Hermes Agent em ~/.hermes/memories/
Resposta rápida

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 gerais
  • USER.md: preferências e perfil do usuário
Formação Claude Code
Formação Recomendada

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:

  1. identidade
  2. orientação de ferramentas e índice de skills
  3. context files
  4. 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:

  1. .hermes.md
  2. AGENTS.md
  3. CLAUDE.md
  4. .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:

  1. roda hermes prompt-size e olha o custo fixo que tu paga hoje em toda mensagem
  2. abre MEMORY.md e USER.md e lê como se fosse texto de outra pessoa
  3. 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.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares