Documentação oficial desta página · v0.20.6
Quando o Agente Parece Ter Piorado
Às vezes o Hermes parece menos afiado do que estava ontem, ou esquece algo que você disse vinte minutos atrás. Isso quase nunca é um mistério — em geral há uma causa específica e verificável. Percorra esta lista de conferência na ordem: os passos estão ordenados pela frequência com que cada um acaba sendo a resposta.
1. Confira qual modelo a sessão está usando de verdade
Sintoma: As respostas estão mais rasas, a qualidade do código caiu, o raciocínio parece fraco — em tudo.
Confira: Rode /model sem argumentos para ver o modelo atual, ou /status para ver modelo, provedor e perfil da sessão numa única tela.
O que isso significa: Trocar de modelo é mudar de capacidade, e é fácil acabar em um modelo diferente do que você imagina:
- Uma troca simples com
/model <nome>vale só para a sessão por padrão (a menos quemodel.persist_switch_by_default: trueesteja definido), então o modelo em uso pode não bater com o que está noconfig.yaml. - Mudar o modelo principal pela página Models do painel vale só para sessões novas — um chat já aberto continua rodando o modelo com que começou.
- Se você trocou para um modelo mais rápido em uma tarefa simples (um padrão recomendado em Dicas e Boas Práticas), lembre de voltar para o modelo bom no trabalho de raciocínio complexo.
Se o modelo estiver errado, /model <nome> resolve nesta sessão; use --global para gravar a mudança no config.yaml. Note que trocar de modelo no meio da sessão zera o cache de prompt, então o turno seguinte relê a conversa pagando preço cheio de entrada — numa sessão longa pode sair mais barato começar do zero já no modelo certo.
2. Confira o uso de contexto
Sintoma: A sessão começou bem, mas as respostas estão ficando lentas, truncadas, ou perdendo detalhes anteriores.
Confira: Rode /usage para ver o consumo de tokens e o estado da janela de contexto, ou /context para uma visão detalhada do que ocupa a janela (prompt de sistema, definições de ferramentas, skills, memória, conversa) contra o espaço livre.
O que isso significa: Conversas longas acumulam mensagens e saídas de ferramentas, chegando perto dos limites de contexto. Quando notar queda numa sessão longa:
# Comprime a conversa (resume o histórico, preserva o contexto essencial)
/compress
# Ou comece uma sessão nova
/new
O /compress resume o histórico da conversa, reduzindo muito a contagem de tokens e preservando o contexto essencial. O /compress here [N] mantém as N trocas mais recentes na íntegra e resume o resto, e um tópico de foco (/compress focus <tópico>) restringe o que um resumo completo preserva.
Use /compress com regularidade em sessões longas, em vez de esperar o problema aparecer, e /usage de tempos em tempos para saber como está a situação.
3. Verifique o tamanho de contexto detectado
Sintoma: Os problemas de contexto aparecem cedo demais — a primeira conversa longa já bate no limite, ou a compressão dispara bem antes do que a janela anunciada do modelo permitiria.
Confira: Olhe a linha de inicialização da CLI — ela mostra o tamanho de contexto detectado (por exemplo, 📊 Context limit: 128000 tokens). Você também pode checar com /usage durante a sessão.
O que isso significa: O Hermes pode ter detectado automaticamente o tamanho de contexto errado para o seu modelo. Defina explicitamente:
# Em ~/.hermes/config.yaml
model:
default: nome-do-seu-modelo
context_length: 131072 # a janela de contexto real do seu modelo
Ou, para endpoints personalizados, por modelo na entrada do provedor:
providers:
meu-servidor:
api: "http://localhost:11434/v1"
models:
qwen3.5:27b:
context_length: 64000
Quem usa Ollama: se você definir um num_ctx personalizado, defina o tamanho de contexto correspondente no Hermes — o /api/show do Ollama informa o contexto máximo do modelo, não o num_ctx efetivo que você configurou. Com o gateway rodando, edições em model.context_length ou em qualquer chave compression.* valem a partir da mensagem seguinte — não precisa reiniciar.
Veja Detecção de tamanho de contexto para entender como a detecção automática funciona e todas as opções de sobrescrita.
4. "Eu falei uma coisa e ele esqueceu" — o retrato congelado da memória
Sintoma: Você pediu ao Hermes para lembrar de algo durante esta sessão, ele confirmou que salvou, mas depois, na mesma sessão, ele parece não saber.
Confira: Nada está quebrado — repare no momento. A memória salva no meio da sessão é escrita em disco na hora, mas o prompt de sistema só reflete isso na sessão seguinte.
O que isso significa: É um comportamento documentado e intencional. A memória é injetada no prompt de sistema como um retrato congelado no início da sessão, e essa injeção nunca muda no meio do caminho — isso preserva o cache de prefixo do LLM e o desempenho. Quando o agente adiciona ou remove entradas de memória durante uma sessão, as mudanças vão para o disco imediatamente, mas só aparecem no prompt de sistema quando a próxima sessão começa. As respostas das ferramentas sempre mostram o estado ao vivo, então o salvamento em si é confirmado e real.
O retrato congelado na prática: "lembre de X" durante uma sessão significa que X está garantido na próxima sessão. Dentro da sessão atual, o fato continua existindo no próprio histórico da conversa — o agente só o esquece se aquela parte da conversa já tiver sido comprimida (veja o passo 7).
Veja Memória persistente para a mecânica completa.
5. A memória é limitada e curada — não é uma transcrição
Sintoma: O Hermes não lembra de um detalhe de uma sessão da semana passada, mesmo que vocês tenham discutido bastante o assunto.
Confira: A capacidade e o conteúdo da memória. O cabeçalho de memória do prompt de sistema mostra o uso (por exemplo, [67% — 1,474/2,200 chars]), e hermes journey list mostra todas as entradas de memória e skills salvas.
O que isso significa: A memória persistente é limitada de propósito — 2.200 caracteres (~800 tokens) para o MEMORY.md e 1.375 caracteres (~500 tokens) para o USER.md. Ela guarda fatos-chave curados, não transcrições de conversa. Vale salvar preferências, fatos do ambiente, convenções e correções; detalhe bruto de discussão não é guardado ali, por design.
Para lembrar do tipo "a gente discutiu X semana passada?", o agente tem outro mecanismo: o session_search consulta todas as sessões passadas (guardadas em SQLite com busca full-text) e consegue achar coisas discutidas semanas atrás, mesmo fora da memória ativa. É só pedir — "procure nas nossas sessões passadas a discussão sobre o deploy".
Você também pode ajudar diretamente: diga "lembre disso para a próxima" depois de uma sessão produtiva, ou "faça uma limpeza na sua memória" quando ela estiver perto da capacidade, para o agente consolidar as entradas. Veja Dicas de memória e skills e Gestão de capacidade.
6. Confira se as skills e as ferramentas estão carregadas
Sintoma: O Hermes cuidava de um fluxo específico com maestria e agora o encara de forma ingênua, ou diz que não consegue fazer algo que já fez antes.
Confira:
/skills— navegue pelas skills instaladas (uma skill de que o agente dependia pode ter sido removida)./reload-skills— varre de novo~/.hermes/skills/em busca de skills instaladas ou removidas recentemente./tools list— veja as ferramentas disponíveis; uma ferramenta desativada antes com/tools disablefica fora do conjunto do agente pelo resto da sessão./context all— lista o custo por skill e por conjunto de ferramentas, o que serve também como inventário do que está realmente carregado.
O que isso significa: As skills são o conhecimento procedural do agente — fluxos de vários passos e instruções específicas de ferramentas. Se uma skill sumiu ou um conjunto de ferramentas foi enxugado (por exemplo, uma sessão iniciada com hermes chat -t "terminal" para reduzir o peso do prompt), o agente realmente tem menos com que trabalhar naquela sessão. Reative ferramentas com /tools enable, ou invoque a skill explicitamente pelo nome (/github-pr-workflow) para confirmar que ela carrega.
7. Efeitos colaterais da compressão
Sintoma: Depois de uma sessão longa (ou logo após rodar /compress), o Hermes lembra das linhas gerais mas perdeu detalhes finos do começo da conversa.
Confira: Se a compressão disparou — /usage e /context mostram estatísticas de compressão e o estado do contexto nas plataformas de mensagem, e o /compress manual sempre informa o resultado.
O que isso significa: A compressão substitui o histórico mais antigo por um resumo — é esse o objetivo, e isso necessariamente troca detalhe por espaço. Entenda o formato disso:
- As mensagens recentes são protegidas: por padrão, as últimas 20 mensagens ficam sem compressão (
protect_last_n) e a troca inicial é fixada (protect_first_n: 3), para que o objetivo original continue visível. - A compactação não é destrutiva: com o padrão
compression.in_place: true, a sessão mantém um único id durável e os turnos anteriores à compactação são arquivados de forma leve — ainda pesquisáveis viasession_searche recuperáveis, não apagados. - Com
in_place: false(comportamento antigo), cada compactação rotaciona para uma sessão nova ligada à anterior — uma sessão com título vira"meu projeto" → "meu projeto #2" → "meu projeto #3". Se você retomar pelo título,hermes -c "meu projeto"escolhe automaticamente a variante mais recente. - Um tópico de foco restringe o que um resumo completo preserva:
/compress focus refatoracao-authmantém o detalhe daquele fio às custas do resto.
Se um detalhe que sumiu na compressão importa, peça ao agente para procurá-lo (o session_search alcança os turnos arquivados), ou cole os fatos-chave de novo na conversa.
Veja Compressão de contexto para a referência completa de configurações e Linhagem automática na compressão para entender como as sessões com título se encadeiam.
Referência rápida
| Sintoma | Primeiro comando | Causa provável |
|---|---|---|
| Tudo parece menos capaz | /model | A sessão está em um modelo diferente do que você pensa |
| Sessão longa piorando | /usage | Pressão de contexto — comprima ou comece de novo |
| Limites batidos cedo demais | Linha de inicialização da CLI / /usage | Tamanho de contexto detectado errado |
| Esqueceu o que eu disse nesta sessão | — (por design) | Retrato congelado da memória — aparece na próxima sessão |
| Esqueceu a discussão da semana passada | peça um session_search | A memória é limitada, só fatos curados |
| Perdeu uma habilidade específica | /skills, /tools list | Skill ou conjunto de ferramentas não carregado nesta sessão |
| Perdeu detalhes antigos depois de sessão longa | /usage, /context | A compressão resumiu o histórico mais antigo |