Tudo o que você precisa para entender e personalizar o Hermes Agent. Habilidades auto evolutivas, memória, memória de três níveis, otimização GEPA e como ir de 1 a 10 agentes que trabalham para você 24 horas por dia, 7 dias por semana.
O Hermes Agent ultrapassou 90.000 estrelas no GitHub em dois meses. Desenvolvedores estão construindo silenciosamente agentes de IA pessoais que aprendem seu fluxo de trabalho, lembram seu contexto e funcionam 24 horas por dia, 7 dias por semana.
Todo agente de IA que você já usou tem o mesmo problema: ele esquece tudo no momento em que sua sessão termina.
Suas preferências de codificação, as convenções do projeto que você o corrigiu três vezes, a correção que ele levou 10 minutos para descobrir ontem. Tudo se foi. Na próxima sessão, você começa do zero.
O Hermes Agent, da Nous Research, adota uma abordagem fundamentalmente diferente. Ele vem com um loop de aprendizado que:
- Lembra entre sessões
- Escreve suas próprias habilidades reutilizáveis
- As poda em segundo plano
- E as valida offline por meio de um mecanismo evolutivo chamado GEPA
Nenhum outro agente de código aberto combina todos os três. Nem mesmo o OpenClaw.
Este guia aborda como esse loop de aprendizado funciona, o que cada camada de memória faz e como configurar tudo do zero.
Ao final, você terá três agentes totalmente isolados rodando em sua máquina: um programador (que usa seu Claude Code), um pesquisador profundo e um designer, cada um com sua própria personalidade, memória, habilidades e bot do Telegram.
Veja só:
<payloadbloco id="blk_1" type="upload" />
Toda a configuração leva minutos e tudo aqui é reproduzível em seu próprio hardware.
Nota: Todas as ilustrações deste guia foram projetadas por Pixel, um dos agentes Hermes que você aprenderá a construir ao final. Fique atento a elas enquanto lê.
Vamos começar!
Como Ler Este Guia
Duas partes: teoria primeiro, prática depois.
Com pressa? Pule para a seção "Colocando em Funcionamento". Os comandos funcionam por si só.
Mas a teoria compensa. Saber como as habilidades evoluem, como a memória se compõe e quando o GEPA mostra seu valor é a diferença entre usar o Hermes como um chatbot com anotações e usá-lo como algo que se acumula.
O que vem pela frente:
- O que é o Hermes Agent. A proposta, mais uma comparação com o OpenClaw.
- Como Ele é Construído. Arquitetura em um diagrama.
- Antes da Memória: Quem é o Agente? SOUL.md, a camada de identidade.
- O Sistema de Memória. Três níveis, três velocidades.
- Habilidades Auto Evolutória. Manuais criados pelo agente mais o Curador.
- GEPA. Otimização de habilidades offline.
- Colocando em Funcionamento. Instalação, Telegram, primeiro agente.
- Executando Múltiplos Agentes. Perfis, três personas, resumos agendados.
- Personalizando os agentes de acordo com suas necessidades.
O que é o Hermes e o que o torna arquitetural diferente
A proposta em uma linha: um agente que melhora quanto mais você o usa.
O que torna isso real é que três capacidades geralmente separadas residem em um único framework: aprendizado de habilidades em tempo de execução, memória persistente em várias camadas e um pipeline opcional de treinamento de peso. Nenhum outro agente de código aberto oferece todos os três.
A comparação mais próxima no ecossistema aberto é o OpenClaw. Ambos são persistentes e amigáveis para mensagens, mas fazem escolhas arquitetônicas opostas.
Uma definição clara do blog Kilo captura isso: "O Hermes empacota um gateway em torno de um agente de aprendizado. O OpenClaw empacota um agente em torno de um gateway de mensagens."
<payloadbloco id="blk_2" type="upload" />
Como Ele é Construído
Antes que o loop de aprendizado faça sentido, você precisa de uma ideia básica de como o Hermes é estruturado.
Tudo flui através de uma única classe AIAgent em um script run_agent.py. CLI, gateway de mensagens, executor em lote, integração com IDE: são todos pontos de entrada para o mesmo agente central.
É isso que torna a história de ser independente de plataforma realmente funcional.
<payloadbloco id="blk_3" type="upload" />
O loop central é do tipo ReAct e síncrono. Construa o prompt do sistema, verifique se a compressão é necessária, faça uma chamada de API interrompível, execute quaisquer chamadas de ferramenta, repita o loop.
Alguns detalhes que importam mais tarde:
- O agente pode executar comandos em seis lugares diferentes. Terminal local, Docker, SSH, Modal, Daytona ou Singularity. Mesmo código, apenas uma mudança de configuração. Mova a execução do seu laptop para um servidor GPU na nuvem sem tocar em mais nada.
- Funciona com quase qualquer modelo. Uma camada de tradução roteia qualquer provedor através de um de três formatos de API. É por isso que você pode trocar de Claude para GPT para Gemini para Ollama local Ollama local com um comando e nada quebra.
- O agente tem um limite máximo de 90 turnos por tarefa. Sem ele, um agente preso em um loop (repetindo uma API com falha, relendo o mesmo arquivo) queimaria seus créditos silenciosamente. Subagentes compartilham o mesmo orçamento, então uma cadeia de delegação descontrolada não pode passar despercebida.
Isso é andaime suficiente. Agora a parte interessante.
Antes da Memória: Quem é o Agente?
Antes de chegarmos à memória e às habilidades auto evolutória, há uma camada que fica acima de ambas: a identidade.
Memória é o que o agente sabe. Habilidades são como ele faz as coisas. Mas nenhuma delas diz quem ele é quando aparece. Sem uma camada de identidade, todo agente parece o mesmo agente usando chapéus diferentes.
O Hermes resolve isso com um único arquivo: SOUL.md.
Ele fica em ~/.hermes/SOUL.md e ocupa o slot #1 no prompt do sistema, antes de qualquer outra coisa carregar. Ele define a personalidade, o tom, o estilo de comunicação e os limites rígidos do agente.
O SOUL.md é escrito à mão e estático. Você o escreve uma vez, ajusta ao longo do tempo, e ele permanece consistente em todos os projetos e sessões. Se o arquivo estiver faltando, o Hermes usa uma identidade padrão embutida.
Por que isso importa para a história de auto aprimoramento? Porque tudo que se segue (a memória que o agente escreve, as habilidades que ele cria, a forma como consolida o conhecimento) acontece através das lentes dessa identidade.
O SOUL.md é o quadro fixo. Memória e habilidades são as partes móveis dentro dele.
O Sistema de Memória: Três Níveis, Três Velocidades
O Hermes
O Hermes não tem uma única "memória". Ele tem três camadas, cada uma projetada para um propósito diferente.
<payloadbloco id="blk_4" type="upload" />
Nível 1: Dois arquivos Markdown pequenos.
No centro estão dois arquivos armazenados em disco:
- MEMORY.md (máx. 2.200 caracteres) contém as anotações do agente sobre seu ambiente, convenções do projeto, peculiaridades de ferramentas e lições aprendidas.
- USER.md (máx. 1.375 caracteres) contém seu perfil: nome, preferências de comunicação, nível de habilidade e coisas a evitar.
Ambos são injetados no prompt do sistema como um instantâneo congelado quando uma sessão começa. Se o agente escrever uma nova entrada de memória no meio da sessão, essa mudança persiste no disco imediatamente, mas não aparecerá no prompt do sistema até a próxima sessão.
Quando a memória fica cheia (~80% da capacidade, mostrada como uma porcentagem no cabeçalho do prompt do sistema), o agente precisa consolidar.
Ele mescla entradas relacionadas em versões mais densas e ricas em informações, para que apenas informações úteis sobrevivam.
Nível 2: Pesquisa de sessão em texto completo.
Cada conversa (CLI e mensagens) é armazenada em SQLite com pesquisa de texto completo. O agente pode pesquisar semanas de conversas passadas a partir daqui.
A compensação é clara: O Nível 1 está sempre está no contexto, mas é minúsculo. O Nível 2 tem capacidade ilimitada, mas requer uma pesquisa ativa mais sumarização por LLM.
Fatos críticos vivem na memória. Todo o resto é pesquisável sob demanda.
Nível 3: Provedores de memória externa (8 plugins).
Para memória persistente mais profunda, o Hermes vem com 8 provedores conectáveis que funcionam junto com a memória embutida (nunca a substituindo). Apenas um pode estar ativo por vez.
Quando qualquer provedor externo está ativo, o Hermes busca automaticamente memórias relevantes antes de cada turno, sincroniza os turnos da conversa após cada resposta e extrai memórias no final da sessão.
<payloadbloco id="blk_5" type="upload" />
Habilidades Auto Evolutória: O Agente Escreve Seus Próprios Manuais
Memória lida com fatos. Habilidades lidam com procedimentos.
Habilidades são arquivos Markdown com frontmatter YAML e funcionam como a memória procedural do agente: não o que ele sabe, mas como ele faz as coisas.
Aqui está a anatomia de uma habilidade:
Para manter os custos de token baixos, as habilidades usam divulgação progressiva:
<payloadbloco id="blk_6" type="upload" />
- Nível 0: O agente vê apenas nomes + descrições (~3k tokens para o catálogo completo)
- Nível 1: Ele carrega o conteúdo completo da habilidade quando realmente precisa de uma
- Nível 2: Ele pode se aprofundar em arquivos de referência específicos dentro de uma habilidade
O loop de auto aprimoramento.
Este é o diferencial central. O agente cria suas próprias habilidades autonomamente usando a ferramenta skill_manage. A criação de habilidades é acionada quando:
- O agente completa uma tarefa complexa (5+ chamadas de ferramenta)
- Ele encontra erros ou becos sem saída e encontra o caminho funcional
- O usuário corrige sua abordagem
- Ele descobre um fluxo de trabalho não trivial
Então o loop funciona assim: o agente encontra um problema → o resolve através de tentativa e erro → salva a abordagem bem sucedida como um arquivo SKILL.md → da próxima vez que encontrar um problema semelhante, ele carrega a habilidade e segue o procedimento comprovado em vez de redescobrir a abordagem do zero.
A ferramenta suporta seis ações: criar, patch (correção direcionada, preferida por ser eficiente em tokens), editar (reescrita completa), excluir, write_file e remove_file.
<payloadbloco id="blk_7" type="upload" />
O Curador: coleta de lixo para habilidades.
Sem manutenção, as habilidades criadas pelo agente se acumulam. Você acaba com dezenas de manuais estreitos e sobrepostos que desperdiçam tokens e poluem o catálogo.
O Curador é um sistema de manutenção em segundo plano que lida com isso. Ele é executado em uma verificação de inatividade (não um daemon cron): se 7 dias se passaram desde a última execução e o agente ficou ocioso por 2+ horas, uma ramificação em segundo plano do agente é iniciada com seu próprio cache de prompt, nunca tocando na conversa ativa.
Ele opera em duas fases:
- Transições automáticas (determinísticas, sem LLM): Habilidades não usadas por 30 dias tornam-se obsoletas. Habilidades não usadas por 90 dias são arquivadas.
- Revisão por LLM (até 8 iterações): Um agente bifurcado pesquisa todas as habilidades criadas pelo agente e decide por habilidade se deve manter, corrigir, consolidar ou arquivar.
Duas restrições importantes:
- O Curador nunca toca em habilidades empacotadas ou instaladas do hub. Apenas aquelas criadas pelo agente.
- Ele nunca auto exclui. O pior resultado é o arquivamento para ~/.hermes/skills/.archive/, que é recuperável com um comando.
Antes de cada passagem do Curador, o Hermes tira um instantâneo tar.gz de todo o diretório de habilidades. O rollback é um comando, e os rollbacks são reversíveis.
Você também pode fixar habilidades críticas com hermes curator pin <skill> para protegê-las de arquivamento e exclusão. Patches e edições ainda são permitidos, para que o agente possa melhorar uma habilidade fixada sem exigir que você a desafixe primeiro.
<payloadbloco id="blk_8" type="upload" />
GEPA: Evoluindo Habilidades Offline com Traços de Execução
Aqui é onde fica interessante.
O loop de aprendizado no agente (criação de habilidades + Curador) tem uma fraqueza conhecida:
- O agente tende à autossatisfação. Ele quase sempre acha que se saiu bem, mesmo quando não se saiu. O feedback da comunidade confirmou isso.
- O mesmo sistema que gera habilidades automaticamente habilidades automaticamente também pode sobrescrever personalizações manuais com versões piores.
É aqui que entra o GEPA.
GEPA (Genetic-Pareto Prompt Evolution) não está embutido no tempo de execução do Hermes. Ele vive em um repositório complementar (NousResearch/hermes-agent-self-evolution) e opera como um pipeline de otimização offline. Publicado como um artigo Oral do ICLR 2026, licenciado sob MIT.
A ideia central: em vez de perguntar ao agente "você se saiu bem?", o GEPA lê traços de execução para entender por que as coisas falharam e, em seguida, propõe melhorias direcionadas por meio de busca evolutiva.
O pipeline:
- Leia a habilidade atual do repositório Hermes
- Gere um conjunto de dados de avaliação de avaliação (casos de teste sintéticos via Claude Opus, histórico de sessão real do SQLite ou conjuntos dourados curados manualmente)
- Execute o otimizador GEPA: leia traços de execução → entenda pontos de falha → gere variantes candidatas
- Avalie as variantes usando pontuação LLM-as-judge com rubricas (não aprovação/reprovação binária)
- Aplique portões de restrição: conjunto de testes completo deve passar 100%, habilidades devem ficar abaixo de 15KB, compatibilidade de cache é preservada, propósito semântico não se desvia
- A melhor variante sai como um PR contra o repositório Hermes. Nunca um commit direto.
Nenhuma GPU necessária. Tudo funciona através de chamadas de API. Custo: aproximadamente $2-10 por execução de otimização.
Isso pode ser pulado inicialmente, mas é altamente eficaz quando você encontra um obstáculo e não quer gastar tempo e dinheiro com ajuste fino (RL/GRPO).
Mais detalhes neste repositório →
<payloadbloco id="blk_9" type="upload" />
Recentemente escrevi um artigo sobre o GEPA.
É uma ótima alternativa para tentar antes de partir para o ajuste fino completo ou ajuste fino baseado em RL.
<payloadbloco id="blk_10" type="upload" />
Ok, para resumir:
O SOUL.md define a identidade. O loop de captura a experiência. O Curador mantém a biblioteca limpa. O GEPA garante que o que está na biblioteca realmente funciona.
Essa é a teoria completa. Agora vamos colocá-lo em funcionamento na sua máquina.
Colocando em Funcionamento
Linux, macOS ou WSL2. Python 3.11+ vem com o instalador. 8GB de RAM é suficiente para uso baseado em API.
Instalação em uma linha:
Execute o assistente de configuração. Ele orienta sobre provedor, chave de API, modelo e ferramentas:
Comece a conversar no terminal:
Conecte-o ao Telegram:
Se quiser falar com seu agente pelo seu agente pelo telefone em vez do terminal, aponte-o para um bot do Telegram.
Obtenha um token de bot do @BotFather (execute /newbot) e, em seguida, obtenha seu ID de usuário do Telegram do @userinfobot.
É isso. Você tem um agente funcional:
O que Vive em ~/.hermes/
Logo após a instalação, seu diretório inicial recebe uma nova pasta.
Vale a pena entender o layout porque tudo que você faz com o Hermes toca um desses caminhos.
Alguns arquivos merecem uma olhada mais atenta.
- config.yaml é a fonte da verdade para tudo que não é segredo. Escolha do modelo, backend do terminal, ativação de ferramentas, servidores MCP - tudo fica aqui. Edite com hermes config edit ou defina valores um de cada vez com hermes config set <chave> <valor>.
- .env guarda seus segredos. Chaves de API, tokens de bot, senhas. O Hermes roteia valores com aparência de segredo para cá automaticamente.
- SOUL.md é o slot #1 no prompt do sistema, antes de tudo. Camada de identidade, abordada anteriormente.
- skills/ é onde todo o loop de aprendizado vive. Cada habilidade que o agente cria, mais tudo que você instala, vai parar aqui.
- state.db é o banco de dados SQLite que dá suporte à pesquisa de sessão. Seguro no modo WAL, indexado com FTS5. É isso que faz "o que discutimos há três semanas?" realmente funcionar.
Você não editará manualmente a maior parte disso. Mas conhecer o layout faz todo o resto se encaixar.
Adicionando Novas Habilidades
O Hermes mantém seu próprio Hub de Habilidades oficial com 687 habilidades em 18 categorias. A divisão:
- 87 habilidades embutidas que vêm com o agente
- 79 habilidades opcionais que você pode ativar sob demanda
- 16 da Anthropic (frontend-design, pdf, pptx, docx, mcp-builder, etc.)
- 505 da LobeHub (contribuições mais amplas da comunidade)
<payloadbloco id="blk_11" type="upload" />
Você também pode adicionar qualquer repositório GitHub como um tap personalizado:
É assim que você compartilharia habilidades em uma equipe ou manteria sua própria coleção privada.
Indo de 1 a 10 Agentes
Um agente é suficiente. Múltiplos agentes especializados é onde o Hermes fica interessante.
O Hermes tem um recurso de primeira classe para isso chamado perfis. Cada perfil é uma instância Hermes totalmente isolada com sua própria configuração, memória, habilidades, sessões e SOUL.md próprios. Eles não compartilham nada por padrão.
Vamos configurar três: um designer, um programador e um pesquisador.
Criar uma equipe
--clone copia a configuração e o .env do seu perfil padrão como ponto de partida.
Dê a cada um seu próprio bot do Telegram
Cada perfil precisa de seu próprio bot do BotFather. O Telegram permite apenas uma conexão por token, então compartilhar quebra as coisas.
Execute /newbot três vezes com o BotFather e salve os três tokens. Em seguida, execute o assistente de gateway uma vez por perfil:
A configuração é exatamente a mesma de um agente regular, onde você pode criar novos bots no BotFather e conectá-los aos seus respectivos agentes.
Dê a cada um uma personalidade via SOUL.md
É aqui que os agentes se tornam genuinamente diferentes uns dos outros. Edite o SOUL.md de cada perfil.
Designer em ~/.hermes/profiles/designer/SOUL.md:
Confira estes exemplos:
<payloadbloco id="blk_12" type="upload" />
Programador em ~/.hermes/profiles/programmer/SOUL.md:
Pesquisador em ~/.hermes/profiles/researcher/SOUL.md:
Personalizando o programador: rotear a execução através do Claude Code
O programador é mais interessante se ele não apenas escreve código, mas delega a execução ao Claude Code CLI. O Hermes orquestra. O Claude Code faz as edições de arquivo, executa comandos, gerencia o git. O Hermes lê o resultado e decide o que vem a seguir.
É também assim que executo o meu sobre minha assinatura do Claude Max. Nenhuma chave de API separada. O Claude Code usa as credenciais do Max automaticamente.
Inicie uma sessão e envie este único prompt de ativação:
Já tenho uma assinatura do Claude Max. Você é meu engenheiro sênior sênior que
me ajuda com minhas tarefas diárias de codificação, e por baixo dos panos você
usa o Claude Code para todas as execuções. Configure-se de acordo.
O programador instalará a habilidade autonomous-ai-agents/claude-code por conta própria, verificará se o claude está no PATH e começará a usá-lo para execução de código. A partir da próxima mensagem, qualquer coisa relacionada a código (ler arquivos, escrever código, executar testes, commitar, fazer push) será roteada através do Claude Code por baixo dos panos.
Duas coisas que valem a pena saber:
- Certifique-se de que o claude esteja no seu PATH antes de ativar. which claude deve imprimir um caminho binário real.
- O Claude Code tem um modo de impressão (único, rápido, sem TUI) e um modo interativo (sessão tmux completo tmux). O programador escolhe com base na tarefa. Você não precisa pensar sobre isso.
Personalizando o designer: ensine seu estilo visual
O designer se torna genuinamente útil quando pode gerar imagens no seu estilo, e não uma saída de IA genérica. O padrão: alimente-o com designs de referência, deixe-o estudá-los, peça-lhe para criar uma habilidade que gere novas imagens no mesmo estilo.
Este é o loop de auto aprimoramento sendo usado como um mecanismo de configuração. Em vez de escrever uma habilidade manualmente, você está mostrando ao agente bons exemplos e pedindo-lhe que codifique o padrão.
Inicie uma sessão com o designer e cole suas imagens de referência (arraste e solte no CLI ou anexe no Telegram). Em seguida, envie este prompt:
O designer estudará as referências, escreverá o SKILL.md, gerará o script Python, salvá-lo-á em ~/.hermes/profiles/designer/skills/my-design-style/ e verificará se o script funciona.
Se você já executou hermes setup e escolheu OpenRouter como seu provedor, a chave já está no .env do perfilo do designer graças a --clone. Caso contrário, adicione-a uma vez:
A partir de então, pedir ao designer uma nova ilustração aciona a habilidade. Ele escreve um prompt informado por sua impressão digital de estilo, chama o Nano Banana através do OpenRouter e salva a saída.
O mesmo padrão funciona para qualquer saída específica de estilo específico. Alimente conteúdo de referência, peça ao agente para construir uma habilidade que reproduza o padrão. Introduções de newsletter, threads no X, comentários de revisão de código, qualquer coisa onde a consistência importa.
Agendando Trabalho: Cron em Inglês Simples
O SOUL.md do pesquisador diz que ele é responsável por um resumo diário do Telegram. Isso implica um trabalho executado em sua própria programação, sem que você precise lembrar de pedir. É para isso que serve o Hermes cron.
O Hermes vem com um agendador embutido. O daemon de gateway funciona a cada 60 segundos, executa quaisquer trabalhos pendentes em sessões de agente isoladas e entrega a saída para qualquer plataforma de mensagens que você especificar. Os trabalhos sobrevivem a reinicializações. Eles vivem em ~/.hermes/cron/jobs.json e a saída vai para ~/.hermes/cron/output/.
<payloadbloco id="blk_13" type="upload" />
A parte interessante: você não escreve expressões cron. Você descreve o que quer em inglês e o Hermes converte.
Configure o resumo diário do pesquisador
Abra uma sessão com o pesquisador e envie este prompt:
O pesquisador cria o trabalho usando sua ferramenta cronjob, o destino de entrega padrão é o chat atual (Telegram neste caso), e o agendador assume a partir daí. Verifique se foi criado:
Você deve ver o trabalho com seu próximo horário de execução agendado. Amanhã de manhã às 8h, seu Telegram acende com o resumo. Nenhuma ação adicional necessária.
Outros padrões úteis
A sintaxe cron é flexível. Algumas variações que vale a pena conhecer:
- Atrasos únicos. /cron add 30m "Lembrar de verificar o build" é executado uma vez em 30 minutos.
- Intervalos recorrentes. /cron add "a cada 2h" "Verificar status do servidor" é executado a cada duas horas.
- Expressões cron padrão. /cron add "0 9 1-5" "..." para controle preciso. Dias de semana às 9h, neste caso.
- Anexo de habilidade. /cron add "a cada 1h" "Resumir novos itens do feed" --skill blogwatcher carrega uma habilidade antes de executar o prompt.
Você também pode encadear trabalhos. A saída de um cron se torna a entrada do próximo cron através de um sinalizador context_from. Útil para automações de vários estágios onde você deseja que uma etapa de pesquisa alimente uma etapa de escrita.
É isso.
Obrigado por ler. Deixe nos comentários o que você gostaria que eu abordasse em seguida.
Se você aprende melhor com vídeo, estou lançando um tutorial completo do Hermes Agent no YouTube e no X em alguns dias.
Fique ligado!
Falou! :)





