⚡ AutomationsAI|Portal de Cursos →

Verificando acesso...

MÓDULO 6.1

🛠️ Criando Skills próprias

Skills são a unidade de extensibilidade de mais alto nível do Hermes. Aprenda o padrão aberto agentskills.io, escreva um SKILL.md que o roteador realmente carrega, teste com eval e publique para a comunidade.

6
Tópicos
~60
Minutos
Avançado
Nível
Dev
Tipo
1

📜 Padrão agentskills.io

Skills no Hermes seguem o padrão aberto agentskills.io: uma pasta autocontida com um arquivo SKILL.md na raiz. Esse padrão também é usado por Claude Code, Codex e outros runtimes — escrever uma skill bem feita significa portabilidade real entre agentes.

💡 Por que um padrão aberto importa

  • Portabilidade: mesma pasta roda em Hermes, Claude Code, Codex sem alteração.
  • Descoberta: marketplaces e busca semântica funcionam por description padronizada.
  • Sem lock-in: trocar de runtime não exige reescrever conhecimento.

Spec oficial: agentskills.io · Docs Hermes: hermes-agent.nousresearch.com/docs/user-guide/features/skills

📊 Tamanho típico no ecossistema

  • ~120 linhas - tamanho mediano do SKILL.md de uma skill bem feita
  • 1-3 arquivos auxiliares - scripts, templates ou referências
  • < 8KB - tamanho de carga no contexto quando a skill é ativada
  • 2-5 segundos - tempo de install típico via git clone
2

📂 Estrutura de uma skill

A estrutura mínima é uma pasta com o nome da skill contendo SKILL.md na raiz. Arquivos auxiliares (scripts, templates) ficam ao lado e são referenciados por path relativo.

# Estrutura típica
~/.hermes/skills/
└── deploy-helper/
    ├── SKILL.md           # manifest + instruções (obrigatório)
    ├── README.md          # docs humanas (opcional)
    ├── scripts/
    │   ├── precheck.sh    # asset executável
    │   └── rollback.sh
    ├── templates/
    │   └── deploy.yaml.j2 # template Jinja
    └── evals.yaml         # casos de teste
# Criar esqueleto rapidamente
$ hermes skill new deploy-helper
✓ Criado ~/.hermes/skills/deploy-helper/SKILL.md
✓ Criado ~/.hermes/skills/deploy-helper/evals.yaml
→ Edite SKILL.md e rode: hermes skill eval deploy-helper

💡 Dica: use hermes skill new

O scaffolder gera SKILL.md com frontmatter válido e evals.yaml vazio. Evita 90% dos erros de sintaxe e te dá um ponto de partida com as seções certas.

3

✍️ SKILL.md anatomy

O SKILL.md tem duas partes: frontmatter YAML (metadados que o roteador usa) e corpo markdown (instruções operacionais que entram no contexto quando a skill é ativada).

---
name: deploy-helper
description: Deploy de aplicações para staging e produção com checagens de
  pré-deploy, blue-green switch e rollback automático. Use quando o usuário
  pedir "fazer deploy", "subir para prod", "release nova versão" ou mencionar
  ambientes staging/production.
version: 1.2.0
author: nei
license: MIT
tags: [devops, deploy, ci-cd]
---

# Deploy Helper

Você é o assistente de deploy. Siga este processo SEMPRE:

## 1. Pré-checagem
Rode `./scripts/precheck.sh` antes de qualquer deploy. Se falhar, ABORTE
e mostre o erro ao usuário. Nunca prossiga com warnings não resolvidos.

## 2. Confirmação humana (apenas produção)
Para ambiente `production`, peça confirmação explícita: "Confirma deploy
da v{X.Y.Z} para PRODUÇÃO? (sim/não)". Só prossiga com "sim".

## 3. Deploy blue-green
- Renderize o template `templates/deploy.yaml.j2` com a versão
- Aplique no slot inativo
- Aguarde health checks (max 120s)
- Faça switch de tráfego
- Mantenha slot antigo por 10min para rollback rápido

## 4. Rollback
Se health check falhar, rode `./scripts/rollback.sh` IMEDIATAMENTE
e notifique o canal #deploys.

## Exemplos

**Usuário:** "deploy v2.3.1 para staging"
**Ação:** precheck → deploy direto (sem confirmação em staging)

**Usuário:** "subir para produção"
**Ação:** peça versão → precheck → confirmação → blue-green

✓ Description que FUNCIONA

  • Diz o que faz em 1 frase
  • Lista gatilhos naturais ("Use quando...")
  • Inclui sinônimos e variações de pedido
  • Menciona domínio (deploy, devops, etc)

✗ Description que NÃO funciona

  • "Helper para deploy" (vago demais)
  • Lista apenas funções técnicas internas
  • Em outro idioma do que o user fala
  • 500+ palavras (vira parede ignorada)

⚠️ Atenção: skills com side-effects

Skills que tocam filesystem, fazem chamadas de rede ou executam comandos shell devem deixar isso EXPLÍCITO no SKILL.md ("Esta skill executa scripts locais", "Esta skill faz POST em API externa"). O usuário precisa saber o blast radius antes de instalar.

4

🧪 Testando skills

Sem eval, você não sabe se sua skill é chamada nem se a saída faz sentido. Hermes embute um runner de eval que mede trigger rate (a skill carrega quando deveria?) e acerto (a saída bate com o esperado?).

# evals.yaml
cases:
  - name: trigger_deploy_staging
    prompt: "faz deploy da v1.0.0 pro staging"
    expect_skill: deploy-helper      # deve ativar
    expect_contains: ["precheck", "staging"]

  - name: trigger_deploy_prod
    prompt: "subir versão nova pra produção"
    expect_skill: deploy-helper
    expect_contains: ["confirma", "PRODUÇÃO"]

  - name: negative_listar_arquivos
    prompt: "lista os arquivos do diretório"
    expect_skill: null               # NÃO deve ativar

  - name: negative_explicar_kubernetes
    prompt: "o que é kubernetes?"
    expect_skill: null
$ hermes skill eval deploy-helper

Running 4 cases against deploy-helper...
  ✓ trigger_deploy_staging        (skill loaded, contains OK)
  ✓ trigger_deploy_prod           (skill loaded, contains OK)
  ✓ negative_listar_arquivos      (skill not loaded, as expected)
  ✗ negative_explicar_kubernetes  (skill loaded — false positive!)

3/4 passed. Trigger rate: 100% (target). False positives: 1.
→ Aperte a description para excluir perguntas conceituais.

💡 Dica: rode eval a cada upgrade de modelo

Modelos novos podem mudar como interpretam descriptions. Uma skill com 100% trigger rate no Hermes-3-70B pode cair para 60% no Hermes-4. Inclua hermes skill eval --all no seu CI pós-upgrade.

5

📦 Publicando

Skill publicada = skill em repositório git público + (opcional) registro em marketplace. A partir daí qualquer um instala em 2 segundos.

1

Ideia

Identifique tarefa repetitiva

"Toda vez que faço deploy preciso lembrar 7 passos." Isso é uma skill esperando para nascer.

2

SKILL.md

Escreva as instruções

Frontmatter + corpo. Foque em description acionável e processo passo-a-passo.

3

Eval

Teste trigger e saída

Mínimo 4 casos (2 positivos + 2 negativos). 100% pass rate antes de publicar.

4

Install local

Use você mesmo por uma semana

Nenhuma skill sobrevive sem dogfooding. Use, sofra, ajuste.

5

Publicar

Push para GitHub com LICENSE

README com screenshot, MIT license, tag semântica v1.0.0.

6

Iterar

Issues viram patches

Bump versão, atualize evals, anuncie no Discord da Nous.

# Install de skill publicada
$ hermes skill install https://github.com/nei/deploy-helper
Cloning... done.
Validating SKILL.md... ok
Installed deploy-helper@1.2.0 in ~/.hermes/skills/

$ hermes skill list
NAME              VERSION   SOURCE
deploy-helper     1.2.0     github.com/nei/deploy-helper
db-migrator       0.4.1     github.com/nei/db-migrator
morning-briefing  2.0.0     (local)
6

🔄 Skills auto-geradas

Hermes observa seu histórico de interações e, quando detecta um padrão repetido N vezes, sugere consolidar como nova skill. O SKILL.md inicial é gerado automaticamente e fica em modo "draft" até você revisar.

🤖 Como funciona

  • Detecção: mesma sequência de tools/perguntas em 3+ sessões diferentes.
  • Síntese: Hermes gera SKILL.md draft a partir do log + parafraseia em description acionável.
  • Revisão humana: você aprova/edita antes de virar skill ativa — nada é instalado automaticamente.
  • Iteração: a cada N usos, Hermes sugere refinamentos baseados no que funcionou vs falhou.

⚠️ Governance importa

Skills auto-geradas podem capturar workflows ruins que você só repetia por hábito. Trate o draft como ponto de partida, não verdade. Revise: faz sentido? Tem side-effects perigosos? Description está clara? Só depois aprove.

Resumo do Módulo

Padrão aberto: agentskills.io torna skills portáveis entre runtimes (Hermes, Claude Code, Codex).
Estrutura: pasta com SKILL.md na raiz + assets ao lado, referenciados por path relativo.
Description é gatilho: descreva "Use quando..." com sinônimos — sem isso o roteador ignora.
Eval obrigatório: positivos + negativos, rode a cada mudança e a cada upgrade de modelo.
Publicar = git push: repo público + LICENSE MIT + tag semver = install via URL.
Auto-geração: Hermes propõe skills a partir de padrões repetidos, mas humano aprova sempre.

Próximo módulo:

6.2 — 🔌 MCP, Tool Gateway, canais e Cron: integrar MCP servers, criar tools customizadas em Python, adicionar canais novos e agendar jobs.