MÓDULO 3.4

🎯 A descrição é o gatilho

Entre 20 skills instaladas, como o agente sabe qual usar? Ele não lê o `skill.md` inteiro de cada uma — ele lê um único campo, curtinho, de cada. Este módulo é sobre esse campo: a description, o texto que decide se sua skill é encontrada ou ignorada.

6
Tópicos
25
Minutos
Fundamento
Nível
Teoria
Tipo
0 de 60%
1

🔎 O único texto que conta na hora de escolher

Novo aqui? Quando você tem várias skills instaladas, o agente não lê o `skill.md` completo de cada uma toda hora — isso custaria caro em tokens (a unidade que mede quanto texto foi processado, vista no módulo 0.1). O que ele varre, pra decidir qual skill combina com o seu pedido, é só a description — a frase curta que fica no front matter, no topo do arquivo.

É exatamente o carregamento em 3 níveis do módulo 3.2 na prática: nível 1 é nome+descrição, e é SÓ com esse nível 1 que o agente decide se abre a skill inteira (nível 2). Se a descrição não convencer, a skill nem é considerada — não importa quão bom seja o passo a passo lá dentro. É a etiqueta da gaveta: se ela não descreve bem o que tem dentro, ninguém vai abrir aquela gaveta na hora certa.

💡 Conceito Principal

A description não descreve o QUE a skill é — ela descreve QUANDO usar.

  • É comparada contra o pedido do usuário, não lida isoladamente.
  • Palavras concretas que o usuário diria pesam mais que jargão técnico interno.
2

⚖️ Vaga vs. específica

Uma descrição vaga fala do domínio geral; uma boa fala da SITUAÇÃO concreta que o dispara. Compare: "ajuda com documentos" não diz nada que ajude a decidir — quase qualquer pedido "combina" com isso, ou nenhum combina de verdade. Já "gera um PDF de contrato a partir de um modelo Word quando o usuário pedir 'contrato', 'gerar PDF' ou 'modelo de documento'" dá ao agente palavras-gatilho reais pra comparar com o pedido.

✗ Descrição vaga

  • "Ajuda com documentos."
  • "Ferramenta para relatórios."
  • "Skill de automação geral."

✓ Descrição específica

  • "Gera PDF de contrato a partir de modelo Word quando o usuário pedir 'contrato' ou 'gerar PDF'."
  • "Monta o relatório mensal de vendas em PDF quando o usuário disser 'fechamento do mês'."
  • "Agenda tarefa recorrente quando o usuário disser 'todo dia', 'toda semana' ou 'roda sozinho'."

Dica Prática

Escreva a description como se estivesse respondendo "quando eu devo abrir essa gaveta?" — não "o que tem dentro dessa gaveta?". A pergunta certa muda o texto inteiro.

3

⌨️ /comando explícito vs. linguagem natural

Novo aqui? Existem dois jeitos de disparar uma skill. O primeiro é digitar o /nome-da-skill direto — igual chamar alguém pelo nome exato, sem margem de erro, porque você está apontando pro `name` do front matter. O segundo é escrever em português normal ("gera o relatório do mês") e deixar o agente CASAR sua intenção com a description de alguma skill instalada — como um recepcionista que ouve seu pedido e sabe pra qual departamento te mandar.

"gera o relatório do mês" skill A: "ajuda com pedidos" skill B: "envia e-mail de cobrança" skill C: "relatório mensal em PDF" skill D: "agenda tarefa recorrente" Match: skill C carrega nível 2

Legenda: o pedido em português entra à esquerda; o agente compara com a description de cada skill instalada (destacadas no meio) e ativa a que casa melhor — no exemplo, a skill C.

🔍 Por dentro

  • /comando: zero ambiguidade — você escolheu a skill pelo nome, ponto final.
  • Linguagem natural: depende inteiramente da qualidade da description de TODAS as skills instaladas, não só da sua.
  • A maioria das skills bem feitas funciona nos dois modos porque o `name` é claro E a `description` é específica.
4

⚠️ Erros comuns de description

Três armadilhas se repetem: (1) genérica demais — palavras que servem pra qualquer skill do domínio; (2) focada em "o que a skill é" ("ferramenta de PDF") em vez de "quando usá-la" ("gera PDF de contrato quando o usuário disser X"); (3) concorrência — duas skills com description parecida disputando o mesmo pedido, o que faz o agente escolher errado ou hesitar entre as duas.

Evolução de uma description: ruim → melhor → boa

# Ruim
description: Ajuda com relatórios da empresa.

# Melhor
description: Gera relatórios em PDF a partir de planilhas Excel.

# Boa
description: Gera o PDF do relatório mensal de vendas a partir da
  planilha vendas.xlsx quando o usuário pedir "relatório mensal",
  "fechamento do mês" ou "PDF de vendas". Não usar para relatórios
  de outro tipo (ver skill "relatorio-financeiro-anual").

⚠️ Atenção

A versão "boa" acima faz mais que descrever — ela também diz o que NÃO cobrir, apontando pra outra skill. Isso resolve a concorrência antes dela virar problema (ver tópico 5).

5

🥊 Concorrência entre skills parecidas

Quando duas skills disputam a mesma situação — por exemplo, "skill-relatorio-vendas" e "skill-relatorio-geral" com descriptions parecidas — o agente pode confundir, escolher a errada, ou perguntar demais pra você desempatar. A saída é DIFERENCIAR: cada description deve deixar claro o limite que a separa da outra, não só o que ela faz. Pense em duas placas de loja vizinhas — se ambas dizem "vende comida", o cliente não sabe qual é a pizzaria e qual é a sorveteria.

t=0

Usuário digita: "monta o relatório de vendas de julho".

t=1

Agente varre as descriptions de todas as skills instaladas em paralelo — não uma por vez em ordem.

t=2

Se duas descriptions batem igualmente bem, o agente pode escolher a "mais específica" ou parar e perguntar — comportamento nem sempre previsível.

t=3

Com descriptions bem diferenciadas, o match é único e imediato — sem hesitação.

✗ Descriptions em conflito

  • "Gera relatório de vendas." (skill A)
  • "Gera relatório mensal." (skill B)

✓ Descriptions diferenciadas

  • "Gera relatório de vendas por região, em Excel." (skill A)
  • "Gera relatório financeiro consolidado do mês, em PDF." (skill B)
6

🧪 Testando se a description dispara certo

Você não precisa adivinhar se a description funciona — dá pra testar direto. Abra uma sessão nova (sem contexto da conversa anterior), escreva um pedido em linguagem natural do jeito que um usuário real escreveria, e veja se o agente reconhece e ativa a skill certa. Repita com 2-3 frases diferentes que descrevem a mesma intenção — se alguma falhar, o gatilho ainda está fraco.

Copy-run — objetivo

Testar, numa sessão nova, se a description de uma skill sua dispara com 3 frases diferentes que um usuário real diria.

Sem executar nada ainda: olhando só as descriptions das skills
que você tem disponíveis agora, me diga qual skill você usaria
para cada um destes três pedidos, e por quê:
1) "<frase 1 que um usuário real diria>"
2) "<frase 2, mesma intenção, palavras diferentes>"
3) "<frase 3, mais indireta/informal>"
Se nenhuma skill combinar bem com algum pedido, me diga isso
também — não force um match.

Como verificar: as três respostas devem apontar pra sua skill <nome-da-skill>. Se alguma apontar pra outra skill (ou pra nenhuma), volte na description e ajuste as palavras-gatilho.

Dica Prática

Peça pra alguém que NÃO escreveu a skill descrever, com as próprias palavras, quando usaria ela — se a frase dela não bate com sua description, é a description que está errada, não a pessoa.

Checagem rápida (opcional): o que o agente lê PRIMEIRO para decidir qual skill usar entre várias instaladas?

Resumo do Módulo

Gatilho: a description é o único texto varrido pra triagem entre skills.
Vaga vs. específica: descreva QUANDO usar, com palavras que o usuário diria.
Dois modos de disparo: /comando exato ou linguagem natural via description.
Erros comuns: genérica, focada em "o que é" em vez de "quando", concorrência não resolvida.
Teste: validar com 3 frases reais numa sessão nova.

Exercício rápido:

Pegue uma description sua (ou escreva uma nova pra alguma tarefa repetitiva) e reescreva-a três vezes: uma focada só em "o que é", outra focada em "quando usar", e a versão final combinando as duas — compare qual soa mais fácil de reconhecer.

Próximo módulo:

3.5 — Projeto vs. global: onde guardar cada skill, e por que isso muda o quanto ela precisa ser genérica.