Pular para o conteúdo
← artigos
atualizado Hermes AgentAgent SkillsAI AgentsSelf-Hosted AINous Research

Skills do Hermes Agent: deixe ele aprender o procedimento, escreva o julgamento você

Skills do Hermes Agent explicadas a partir da produção: o formato SKILL.md, o hub de skills por trás do hermes skills install, plugins versus skills, e por que o background review que escreve as próprias skills nunca deveria tocar em julgamento.

Skills do Hermes Agent são markdown, não magia. Um arquivo SKILL.md, um nome, uma descrição, e instruções que o agente segue quando a descrição bate com o que você pediu. O que torna esse assunto digno de um guia inteiro não é o formato. É o fato de o Hermes escrever algumas dessas skills sozinho, num timer, sem você no loop, e quase ninguém pergunta o que esse loop deveria e não deveria ter permissão pra decidir.

Eu rodo o Hermes Agent em produção, e escrevo as minhas próprias skills na mão pras partes do meu trabalho que precisam de um ponto de vista, não só de um procedimento. Este é o guia pras duas metades: o que uma skill do Hermes realmente é, de onde o hermes skills install puxa, como um plugin difere de uma skill, e a linha que eu traço entre o que o background review tem permissão de aprender e o que eu continuo escrevendo eu mesmo.

O que são skills do Hermes Agent?

Uma skill do Hermes Agent é um documento de conhecimento sob demanda que o agente carrega quando o trabalho pede, construído sobre SKILL.md mais pastas opcionais references/, templates/, scripts/ e assets/. O formato é compatível com o padrão aberto agentskills.io, o mesmo spec por trás das skills do Claude, então uma skill que você escreveu pra um runtime lê certo no outro.

Uma skill, em disco

  • ~/.hermes/skills/// fonte única da verdade
    • mlops/axolotl/// categoria, depois skill
      • SKILL.mdobrigatório// nome, descrição, instruções
      • references/// conhecimento destilado, carregado sob demanda
      • scripts/// helpers que a skill pode chamar
      • templates/// formatos de saída
      • assets/// arquivos complementares
    • .hub/// estado do hub de skills
      • lock.json// fonte, hash, veredito do scan
      • audit.log

O que de fato entra no contexto é a parte que vale entender. O system prompt carrega um índice compacto do nome e da descrição de cada skill (agent/prompt_builder.py:1338), o que a documentação publicada coloca em algo como 3.000 tokens pra um catálogo completo. Nada além disso carrega até o agente pedir pela ferramenta de skills (tools/skills_tool.py:701): o corpo completo do SKILL.md quando há um match, e um arquivo específico dentro de references/ só quando as próprias instruções da skill dizem ao agente pra buscar ele pelo caminho. Três camadas, cada uma trancada atrás da anterior. Isso é o mesmo progressive disclosure que eu descrevi pras skills do Claude, e a mecânica bate quase exatamente, porque os dois seguem o mesmo padrão aberto.

Skills do Hermes Agent, direto do código fonte

3
camadas de carregamentoíndice, corpo, references, cada uma trancada atrás da anterior
10
iterações de ferramentaintervalo padrão antes de um nudge de skill disparar
14 / 30
dias pra ficar obsoleta / ser arquivadao curador semanal nunca deleta
6
fontes de instalaçãooficial, GitHub, skills.sh, ClawHub, LobeHub, browse.sh
Checado contra o código fonte da v0.21.5 e a documentação publicada, não contra a landing page.

Hub de skills do Hermes Agent: de onde o hermes skills install realmente puxa

hermes skills install é um único comando sobre vários registries, e o hub trata eles de forma bem diferente dependendo de quem garante a fonte. Skills oficiais opcionais vêm dentro do próprio repositório do Hermes e instalam com trust nativo, sem aviso de scan. Instalações via GitHub cobrem tanto caminhos diretos de repositório quanto um conjunto de taps padrão: anthropics/skills, openai/skills, huggingface/skills e NVIDIA/skills, onde as entradas da NVIDIA ainda carregam um skill.oms.sig assinado e um skill-card.md de governança, um sinal de confiança que a maioria das fontes comunitárias não oferece. Depois disso vêm três registries comunitários: o skills.sh da Vercel, o marketplace de terceiros ClawHub, e o browse.sh, o catálogo da Browserbase de skills de automação de navegador específicas de site, pra sites como Airbnb e Amazon. Uma instalação por URL direta também funciona, buscando o SKILL.md mais tudo que ele referenciar explicitamente.

Ache, leia, instale

  1. Busque num registry

    hermes skills search kubernetes
  2. Leia antes de confiar

    hermes skills inspect openai/skills/k8s
  3. Instale com um scan de segurança

    hermes skills install openai/skills/k8s

Toda instalação pelo hub passa por um scanner de segurança pra exfiltração, prompt injection, comandos destrutivos e sinais de supply chain antes de pousar em disco, e o resultado é registrado com um hash de conteúdo em skills/.hub/lock.json. Os níveis de trust travam o que o --force pode sobrepor: ele consegue passar por cima de um alerta de nível caution numa fonte comunitária, e não consegue tocar num veredito que o scanner marcou como dangerous. Essa hierarquia é a resposta honesta pra “quais são as melhores skills do Hermes Agent pra instalar”: não as com mais downloads, e sim as cuja fonte está mais alto nessa escada de confiança, e cujo scan você realmente leu antes de usar.

Se você combina as mesmas skills pra um trabalho recorrente, um bundle (~/.hermes/skill-bundles/<slug>.yaml) agrupa vários nomes de skill sob um único slash command, então /backend-dev carrega review, testes e o workflow de PR numa única chamada em vez de três. É um alias em YAML, não um instalador: as skills que ele lista precisam existir antes.

Plugins vs skills no Hermes Agent: ferramentas e hooks, não procedimento

Uma skill ensina o modelo o que fazer. Um plugin muda o que o runtime consegue fazer. Essa é a fronteira inteira, e ela importa porque as duas coisas são confundidas direto em qualquer setup self-hosted.

Plugins se registram via plugins/plugin_loader.py:144, e a superfície é estreita de propósito: register_tool adiciona uma ferramenta nova que o modelo pode chamar, register_hook conecta nos hooks de antes e depois em volta de uma chamada ao provider (agent/api_request_hooks.py), register_cli_command adiciona um subcomando, e register_memory_provider é como um backend de memória externo, como o Honcho ou o mem0, se conecta. Model providers, plataformas de mensagem e backends de execução são construídos do mesmo jeito, como plugins, não como skills.

Skill

  1. 01Markdown: SKILL.md mais references
  2. 02Carrega sob demanda, por match de descrição
  3. 03Ensina um procedimento ou um método
  4. 04Portável entre runtimes agentskills.io
  5. 05Você, o curador, ou o próprio agente pode escrever uma

Plugin

  1. 01Python, registrado via plugin_loader.py
  2. 02Sempre carregado se habilitado, sem gatilho
  3. 03Estende ferramentas, hooks, comandos, memory providers
  4. 04Específico do runtime do Hermes
  5. 05Só um dev publica um
Uma skill é conteúdo que o modelo lê. Um plugin é código que o runtime executa.

É por isso também que uma skill é o lugar errado pra resolver uma capacidade que falta. Se o agente precisa de uma ferramenta que não existe, nenhuma quantidade de SKILL.md faz ela passar a existir. Esse é trabalho de plugin, e é um tipo de trabalho diferente de destilar um procedimento em markdown.

O background review que escreve as próprias skills

A cada 10 iterações de ferramenta, o Hermes sugere uma review de skill, um intervalo configurável que vive em skills.creation_nudge_interval em agent/agent_init.py (padrão 10, ao lado do nudge de memória no mesmo padrão em memory.nudge_interval). A review roda como um agente forkado, restrito à ferramenta skill_manage, e decide se o que acabou de acontecer vale a pena salvar como um procedimento reutilizável: um workflow em vários passos que ele descobriu, um beco sem saída que ele achou como contornar, uma correção que você deu a ele.

Um curador semanal (agent/curator.py) roda num cronograma travado por ociosidade, cada sete dias com pelo menos duas horas ocioso, e marca uma skill como obsoleta depois de 14 dias sem uso, arquivada depois de 30. Ele nunca deleta. Qualquer coisa que ele arquivou pode voltar se o agente recorrer a ela de novo.

skills:
  write_approval: true # false = write freely (default) | true = stage every write

Revise uma escrita de skill em fila

  1. Liste o que está esperando

    /skills pending
  2. Leia o diff completo

    /skills diff <id>
  3. Aplique

    /skills approve <id>
Criar, corrigir e deletar, tudo fica em fila aqui em vez de ir direto pro disco.

A ferramenta skill_manage também roda um linter consultivo em toda escrita, e três das suas regras nomeadas dizem mais sobre o que uma skill deveria ser do que a maioria dos guias de estilo: incident-log-shape sinaliza um corpo denso de números de PR ou issue, references-sprawl sinaliza mais de 60 arquivos de referência, e oversized-body sinaliza um SKILL.md acima de aproximadamente 24.000 caracteres, porque o skill_view carrega o arquivo inteiro e ele fica no contexto pro resto da sessão. A orientação oficial pro que uma skill deve capturar é lição, não log: uma regra generalizável mais o mecanismo por trás dela, não um incidente narrado. Eu não escrevi essa regra. Eu concordo com ela por completo, e é o mesmo instinto por trás de toda skill de persona que eu construo na mão.

As melhores skills do Hermes Agent são as que você não consegue instalar

As minhas skills de persona não vêm de um registry. Elas vêm de estudar o material real de alguém: livros, palestras, transcrições, e depois escrever os princípios, os frameworks e as regras de decisão com as minhas próprias palavras, divididas pela decisão que cada referência responde. Eu cobri o método completo pras skills de persona no Claude Code, e a arquitetura se mantém sem mudança, porque uma skill em markdown é agnóstica de runtime: o mesmo arquivo funciona como uma skill do Hermes, uma skill de empresa no Paperclip, ou uma skill do Claude Code, porque o modelo de carregamento é o mesmo padrão por baixo.

Uma tentativa concreta: uma skill de ghostwriter que extraiu a voz de um criador a partir de 152 posts originais dele, virando regras explícitas, minúsculo, um gancho de provocação, um loop aberto no fechamento. Fazer o deploy disso no bot do Hermes era o plano, e quero ser preciso aqui: ela foi construída e calibrada, e o deploy em si ainda está pela frente, não é algo pronto que eu possa apontar como rodando.

O pipeline de conteúdo que está rodando: em julho, duas skills, youtube-packaging e social-post-packaging, junto com uma skill de persona do Gary Vaynerchuk, derivaram cerca de 13 peças de conteúdo a partir de um vídeo pilar. Funcionou bem o suficiente pra usar, e tinha uma lacuna real. O packaging fixava o título antes da derivação rodar, o que significava que o número que era pra ser o gancho ficava travado cedo demais e nunca chegava nas peças reposicionadas mais adiante. Isso é um erro de sequenciamento num pipeline criativo, e nenhum background review pegou isso, porque nada ali parecia um erro de ferramenta. Parecia o pipeline funcionando.

Um detalhe de infraestrutura que vale saber se você roda skills tanto no Hermes quanto no Paperclip: o build de runtime do Paperclip reduz uma skill a só o SKILL.md, descartando a pasta references/ por completo. O meu adaptador do Paperclip faz um symlink de volta pro diretório fonte pra que as references de que uma skill depende sobrevivam a essa travessia. Se uma skill parece boa no Hermes e volta genérica quando um orquestrador fica na frente dela, confira se as suas references fizeram a travessia.

O próprio Hermes traz uma ideia relacionada no /learn: aponte ele pra um livro, um site de documentação, ou um workflow que você acabou de fazer ele passar, e ele escreve um SKILL.md mais um arquivo de referência por capítulo ou tópico, seguindo o mesmo formato de dividir-por-decisão que eu uso na mão. É uma boa ferramenta pra skills de base de conhecimento, do tipo em que a fonte é a autoridade e o trabalho é organizar ela bem. Não é um substituto pra parte que de fato exige julgamento: decidir qual voz, quais frameworks, quais anti-padrões pertencem a uma skill de persona em primeiro lugar. Essa decisão é minha. O /learn pode formatar. Ele não pode criar.

O que o learning loop é bom em fazer vs o que ele não deveria tocar

Essa é a única regra que vale tirar de tudo acima. O loop é bom em procedimento. Ele não deveria ser confiável com julgamento.

Bom em: procedimento

  1. 01A flag que uma ferramenta precisa e a ordem de um deploy
  2. 02Um workaround pra uma API instável, achado uma vez e que vale guardar
  3. 03Convenções de formatação e nomenclatura que você corrigiu uma vez
  4. 04Um workflow em vários passos que ele descobriu depois de um beco sem saída

Não deveria tocar: julgamento

  1. 01Se a voz de uma persona é certa pra uma peça de conteúdo
  2. 02Se uma decisão de packaging tomada lá atrás foi a correta
  3. 03O que pertence a um SOUL.md, a sua identidade, sempre ligada
  4. 04Qualquer coisa que precise do material que você de fato estudou, não do resultado de uma sessão
Mesmo mecanismo, dois trabalhos bem diferentes.

O mecanismo explica o motivo. Um background review faz um fork depois de uma sessão e julga essa sessão contra ela mesma: o mesmo modelo, geralmente, que acabou de fazer o trabalho. Ele consegue te dizer que um comando precisava de uma flag que estava faltando. Ele não consegue te dizer que a decisão de título de um pipeline de conteúdo aconteceu na ordem errada, porque de dentro daquela única rodada, o título parecia correto. A lacuna que eu encontrei em julho não era um bug que o loop poderia ter pego. Era um erro de design no procedimento que o loop estava fielmente salvando.

A divisão que eu realmente sigo: skill é método, carregada de forma lazy, uma skill por tópico. SOUL.md é julgamento, sempre ligado, um por agente. O mesmo julgamento aplicado a um conjunto de tarefas, um agente mais uma estante de skills que ele carrega conforme precisa. Julgamentos diferentes, agentes totalmente diferentes. Um fork em background que observou uma sessão é o autor certo pro primeiro tipo. É o autor errado pro segundo, sempre, porque ele nunca estudou nada. Ele só observou.

Como falar com o background review

  1. 01

    Nomeie o procedimento, não a sessão.

    O nudge dispara por uma contagem de iterações de ferramenta, não por significado. Uma instrução vaga deixa uma decisão de julgamento ser arquivada como se fosse um workaround.

    Em vez de

    Remember what we just did.

    Digite isto

    Save this as a skill: the retry backoff for the webhook that kept timing out. Don't save anything about which voice we used for the post.
  2. 02

    Coloque um humano entre o fork e o disco pra qualquer coisa que envolva persona.

    write_approval coloca em fila toda escrita do skill_manage pra revisão, em vez de aplicar direto no disco, o que é um seguro barato contra um modelo pequeno julgando mal o que aprendeu.

    Digite isto

    Set skills.write_approval to true, and show me /skills pending before anything you wrote applies.
Como falar com o background review: 2 regras, cada uma com o que digitar.

Antes de deixar o background review escrever uma skill

  • Obrigatório:
    Ligue o write_approval se um modelo pequeno é quem está revisando.skills.write_approval: true coloca cada escrita numa fila que você limpa na mão.
  • Obrigatório:
    Leia o que foi salvo, não só que algo foi salvo.Uma lição mais o mecanismo é útil. Um incidente narrado não é.
  • Obrigatório:
    Mantenha persona e trabalho de julgamento totalmente fora do loop automático.Escreva essas na mão, a partir de material que você de fato estudou.
  • Obrigatório:
    Confira se as references/ sobreviveram, se um orquestrador fica na frente do Hermes.O build do Paperclip descarta elas; um symlink de volta pra fonte resolve.
  • Obrigatório:
    Confie nos níveis de trust do hub mais do que em contagem de instalações.builtin e official pulam o painel de aviso. community pode ser forçada a passar de um caution, nunca de um veredito dangerous.
O loop é mão de obra de graça pra procedimento. Trate ele como exatamente isso, e nada mais.

Skills do Hermes Agent, respostas rápidas

O que é uma skill do Hermes Agent?

Um arquivo SKILL.md mais references, scripts, templates e assets opcionais que o agente carrega sob demanda. Segue o padrão aberto agentskills.io, o mesmo modelo de carregamento (metadados sempre, corpo no gatilho, references sob demanda) das skills do Claude.

O que é o hub de skills do Hermes Agent?

A camada de instalação e descoberta por trás do hermes skills install: skills oficiais opcionais, repositórios e taps do GitHub (anthropics/skills, openai/skills, huggingface/skills, NVIDIA/skills entre os padrões), e registries comunitários incluindo skills.sh, ClawHub e browse.sh.

Toda instalação passa por um scan de segurança primeiro, e o nível de trust decide o que uma flag --force pode sobrepor.

Qual é a diferença entre um plugin e uma skill no Hermes Agent?

Uma skill é markdown que o modelo lê pra aprender um procedimento. Um plugin é Python registrado via plugin_loader.py que estende o que o próprio runtime consegue fazer: ferramentas novas, hooks de requisição, comandos de CLI, ou memory providers. Skills são opcionais e carregadas por descrição. Plugins ficam sempre ativos depois de habilitados.

O Hermes Agent consegue escrever as próprias skills?

Consegue. Um background review sugere a cada 10 iterações de ferramenta, por padrão, e pode salvar um workflow como skill via ferramenta skill_manage, restrita a um agente forkado. Um curador semanal marca skills sem uso como obsoletas depois de 14 dias e arquiva depois de 30, e nunca deleta.

Quais são as melhores skills do Hermes Agent pra usar?

As cuja fonte está mais alto na escada de confiança do hub, oficial ou um tap verificado do GitHub em vez de uma instalação comunitária sem auditoria, e, pra qualquer coisa que precise de ponto de vista em vez de procedimento, as que você mesmo escreve a partir de material que de fato estudou, não as que um background review salvou depois de observar uma única sessão.

As skills do Hermes Agent são compatíveis com as skills do Claude Code?

São, os dois implementam o padrão aberto agentskills.io. O mesmo módulo SKILL.md, com as mesmas references e o mesmo mapa de carregamento, funciona em qualquer um dos dois runtimes sem precisar reescrever nada.