TRILHA 3

🏛️ Os 5 Pilares na Prática

Memória, Skills, Soul, Crons e o loop de auto-aperfeiçoamento. Aqui você sai do "instalei o Hermes" para "configurei um agente que aprende, sabe quem ele é e age sozinho".

5
Módulos
30
Tópicos
~2,5h
Duração
Médio
Nível

Mapa da trilha

Conteúdo detalhado

3.1~30 min

🧠 Memory: USER.md + MEMORY.md

Os dois arquivos que o agente injeta no system prompt como snapshot frozen no início de cada sessão. Limites de tamanho rígidos, auto-gerenciados via tool.

O que é:

No início de cada sessão, o conteúdo de USER.md e MEMORY.md é lido e injetado no system prompt como um bloco fixo. Modificações durante a sessão usam a tool memory.

Por que aprender:

Entender que é frozen explica por que o agente "esquece" alterações feitas no meio da sessão até a próxima. Você decide o que merece persistir.

Conceitos-chave:

Os arquivos ficam em ~/.hermes/memories/. Snapshot frozen = lido uma vez por sessão. A tool memory é o mecanismo oficial pra alterar entre sessões.

O que é:

Arquivo com o seu perfil: nome, papel, preferências, estilo de comunicação, idiomas, contextos relevantes. Limite rígido de 1.375 caracteres (~500 tokens).

Por que aprender:

É o que faz o agente parar de te tratar como estranho a cada sessão. Sem USER.md útil, você repete contexto sempre.

Conceitos-chave:

Foco em fatos estáveis (não em status atual). Bom: "Falo PT-BR, prefiro respostas curtas, programo em Python." Ruim: "Estou trabalhando no projeto X agora."

O que é:

Notas pessoais do agente sobre o ambiente: paths importantes, fatos aprendidos, decisões fechadas, atalhos. Limite rígido de 2.200 caracteres (~800 tokens).

Por que aprender:

É a memória "de trabalho" do agente. Sem ela, ele redescobre o ambiente toda vez (onde fica o repo X, qual o stack Y, como você prefere commits).

Conceitos-chave:

Limite apertado obriga a consolidar. Quando enche, o próprio agente reescreve entradas mais antigas pra abrir espaço. Foco em conhecimento durável, não em tarefas.

O que é:

A ferramenta memory tem três operações: add (adicionar entrada), replace (substituir), remove (apagar). O agente usa sozinho quando você pede "salva isso".

Por que aprender:

Saber que existe te dá o vocabulário pra pedir certo: "salva na memória X", "remove a entrada Y do MEMORY.md", "atualiza o que sabe sobre meu setup".

Conceitos-chave:

Quando o arquivo enche, o agente consolida automaticamente — junta entradas redundantes pra liberar espaço. Você pode auditar manualmente abrindo os MD.

O que é:

Cada sessão é gravada em SQLite (~/.hermes/state.db) com índice full-text (FTS5). A tool session_search permite achar conversas antigas por palavra-chave.

Por que aprender:

É a "memória longa". Quando algo não cabe em MEMORY.md mas você sabe que falou disso, peça pro agente buscar no histórico de sessões.

Conceitos-chave:

Memória ≠ histórico. MEMORY.md é o que está sempre carregado; SQLite é o arquivo morto pesquisável sob demanda. Backup do state.db = backup da história toda.

O que é:

Memória NÃO é cofre de senhas. NÃO é to-do list. NÃO é status atual. Salvar tipo errado polui o snapshot e desperdiça os 1.375/2.200 chars de orçamento.

Por que aprender:

Memória mal usada vira ruído que prejudica o raciocínio. Secret salvo lá pode vazar em logs ou prompts de modelos remotos.

Conceitos-chave:

Secrets vão em ~/.hermes/.env. Tarefas temporárias ficam na conversa. Status atual é volátil. Memória = conhecimento durável que vai te servir em sessões futuras.

Ver Completo
3.2~35 min

🛠️ Skills: SKILL.md + Progressive Disclosure

Procedimentos reutilizáveis em Markdown com YAML front matter. Padrão aberto (agentskills.io). Skills são como funções que o agente aprende a chamar com nome e descrição.

O que é:

Skill é um arquivo SKILL.md com YAML front matter no topo e instruções abaixo. Diz ao agente "quando usar isto", "como executar passo-a-passo", "armadilhas", "como verificar".

Por que aprender:

Skill transforma "instrução repetida toda sessão" em "procedimento documentado uma vez". Cada tarefa que você fez 3 vezes vira candidata a skill.

Conceitos-chave:

Skill ≠ código. É linguagem natural estruturada. O modelo lê e segue. Padrão aberto: agentskills.io/specification.

O que é:

Cabeçalho YAML com campos: name, description, version, platforms (opcional), e metadata.hermes com tags, category, fallback_for_toolsets, requires_toolsets, config.

Por que aprender:

É o que aparece no skills_list(). Description ruim = skill nunca chamada. Tags e category ajudam a filtrar e ativar condicionalmente.

Conceitos-chave:

platforms restringe a OS (macos, linux). fallback_for_toolsets ativa quando outro toolset falha. requires_toolsets ativa só quando tem o toolset disponível. config gera prompts no setup.

O que é:

Quatro seções: When to Use (gatilhos), Procedure (passos), Pitfalls (armadilhas conhecidas), Verification (como saber que deu certo).

Por que aprender:

É o esqueleto que o modelo espera. Skill sem "When to Use" é chamada errada. Sem "Verification" é dada como sucesso quando falhou.

Conceitos-chave:

Procedure deve ser numerado e direto. Pitfalls vem da experiência: o que já quebrou antes e como contornou. Verification é teste curto de saída esperada.

O que é:

Padrão de carregamento em 3 níveis: L0 skills_list() (~3k tokens, só nome+descrição+categoria), L1 skill_view(name) (corpo completo), L2 skill_view(name, path) (referência específica).

Por que aprender:

Permite ter centenas de skills sem estourar contexto. O agente só carrega corpo completo quando decide usar.

Conceitos-chave:

Description curta e poderosa importa MUITO — é o que entra no L0. Referências grandes ficam em references/ e são puxadas só no L2.

O que é:

Skill mora em ~/.hermes/skills/category/skill-name/. Dentro: SKILL.md (obrigatório), references/, templates/, scripts/, assets/.

Por que aprender:

Permite skill rica sem inflar SKILL.md principal. Scripts ficam separados para execução, templates pra outputs, references pra docs longas.

Conceitos-chave:

Categoria do diretório é tipicamente igual ao metadata.hermes.category. Versionamento da skill toda via git fica trivial — é só Markdown e arquivos auxiliares.

O que é:

Hub público em agentskills.io. Cinco fontes de instalação: official (bundled), skills-sh (hub), GitHub (user/repo/path), URL direta, well-known (auto-discovery via /.well-known/agent-skills).

Por que aprender:

Você não precisa criar tudo do zero. Vê demo no X → cola link da skill → o agente instala e usa.

Conceitos-chave:

Auto-discovery em /.well-known/agent-skills permite que sites publiquem skills oficiais — basta apontar o agente pro domínio.

Ver Completo
3.3~25 min

👻 Soul: identidade do agente

SOUL.md ocupa o slot #1 do system prompt. É a identidade — quem o agente é, como fala, no que acredita. Diferente de USER.md.

O que é:

SOUL.md é o primeiro bloco do system prompt — antes de memória, antes de skills. É a base da identidade que o modelo lê pra qualquer interação.

Por que aprender:

Posição importa. Coisa no slot #1 tem mais peso na decisão do modelo. Tom errado lá ecoa em tudo. Tom certo lá molda toda a conversa.

Conceitos-chave:

Sempre carregado (não condicional). É a única peça desse trio (SOUL/USER/MEMORY) que NÃO tem limite rígido documentado, mas mantenha conciso pra economizar tokens.

O que é:

Arquivo único em ~/.hermes/SOUL.md. Escopo global (vale pra qualquer projeto). Markdown puro — não tem YAML front matter como SKILL.md.

Por que aprender:

Está no home do Hermes, não dentro de projeto. Por isso não muda quando você troca de pasta — a identidade do agente é constante.

Conceitos-chave:

Pra ter identidades diferentes (marketing alegre, financeiro sério), você usa perfis Hermes diferentes — cada perfil com seu próprio diretório ~/.hermes-marketing/, ~/.hermes-financeiro/.

O que é:

Bom SOUL.md cobre: tom (formal, descontraído, direto), personalidade (quem é o agente), princípios (o que sempre/nunca faz), regras de comunicação (idioma, comprimento, emojis).

Por que aprender:

É a diferença entre "ChatGPT padrão" e "agente que parece COM você". Quanto mais específico, mais característico fica.

Conceitos-chave:

Evite contradições internas. "Seja sucinto" + "explique cada decisão em detalhe" briga. Soul deve ser coerente como personagem.

O que é:

Em setups com múltiplos perfis, soul é o que dá personalidade distinta a cada um. Marketing pode ser leve e usar emojis. Financeiro deve ser sóbrio e direto.

Por que aprender:

Sem soul próprio, todos os perfis soam igual e perdem o sentido de existir separados. Cada um carrega sua voz.

Conceitos-chave:

Soul define voz; skills definem capacidades; memory carrega fatos. Os três se combinam pra dar caráter ao perfil.

O que é:

"Atualize seu soul para ser X" → o próprio agente edita SOUL.md. Funciona surpreendentemente bem porque ele entende o efeito de cada linha.

Por que aprender:

Você não precisa virar designer de prompts. Descreve o ajuste em linguagem natural ("seja mais direto", "menos emojis", "use exemplos práticos") e o agente formaliza.

Conceitos-chave:

Sempre revise o diff antes de aceitar. Soul é arquivo crítico — uma reescrita ruim degrada o agente todo.

O que é:

Diferença fundamental: SOUL.md = quem o agente é (identidade dele). USER.md = quem você é (perfil seu). Confundir os dois é erro comum.

Por que aprender:

Misturar gera coisas estranhas. Colocar "sou Nei, programador" em SOUL.md faz o agente achar que ELE é Nei. Colocar "seja sucinto" em USER.md desperdiça espaço.

Conceitos-chave:

Teste mental: "Se eu trocasse o usuário, isto continuaria valendo?" Se sim → SOUL. Se não → USER.

Ver Completo
3.4~35 min

⏰ Crons: agendamento e flags

Crons transformam o Hermes de reativo em proativo. Sessão fresh por execução, file lock, flags --workdir, --no-agent, --deliver, --skill.

O que é:

Cron = job agendado. A cada disparo o gateway scheduler abre uma sessão fresh de AIAgent — sem histórico de conversa anterior, mas com SOUL.md, USER.md e MEMORY.md carregados.

Por que aprender:

É o que faz o agente ser realmente útil 24/7. Você dorme, ele trabalha. Acorda com resumo no Telegram.

Conceitos-chave:

Sessão fresh = prompt deve ser auto-contido. "Continua o que estava fazendo" não funciona — não há contexto. Bom: "Audite PRs abertos no repo X e poste resumo no Telegram."

O que é:

Comandos no chat criam crons sem CLI: /cron add 30m "...", /cron add "every 2h" "...", /cron add "every 1h" "..." --skill blogwatcher.

Por que aprender:

É o jeito mais rápido de criar cron — direto do Telegram. Não precisa SSH no servidor.

Conceitos-chave:

Aceita expressões naturais ("every 2h", "every 1d at 09:00") e durações ("30m", "1h", "2d"). Múltiplas skills com --skill A --skill B.

O que é:

Mesma capacidade via terminal: hermes cron create "every 1d at 09:00" "Audit PRs" --workdir /path/projeto. Ideal pra scripts de setup e infra-as-code.

Por que aprender:

CLI permite versionar crons no repositório (script setup-crons.sh que recria tudo). Reproduzível.

Conceitos-chave:

Outras subcomandos úteis: hermes cron list, hermes cron remove <id>. Definição persiste em ~/.hermes/cron/jobs.json.

O que é:

Define o diretório de trabalho da sessão fresh. O scheduler faz cd pra lá antes de rodar e detecta os arquivos de contexto do projeto: .hermes.md, AGENTS.md ou CLAUDE.md.

Por que aprender:

Cron pra um projeto específico precisa do contexto desse projeto. Sem --workdir, ele roda em ~ e não acha nada.

Conceitos-chave:

Ordem de prioridade do contexto de projeto: .hermes.md → AGENTS.md → CLAUDE.md → .cursorrules. Apenas UM tipo é carregado por sessão.

O que é:

Modo que pula o LLM completamente. O cron roda só um script .sh/.bash/.py. Saída vazia = silêncio. Saída não-zero = alerta entregue.

Por que aprender:

Watchdogs (memória, disco, heartbeat) não precisam de IA. Usar LLM aí é desperdício de token. NOAGENT mantém custo zero.

Conceitos-chave:

Padrão: stdout vazio = tick silencioso, stderr ou exit não-zero = alerta. Scripts .sh rodam sob bash, outros sob Python interpreter.

O que é:

--deliver <plataforma> escolhe o destino: telegram, discord, all, origin. --skill <name> injeta uma skill no início da sessão fresh.

Por que aprender:

Sem --deliver, a saída vai pro canal padrão. Com --skill, você garante que o procedimento certo está disponível mesmo numa sessão fresh.

Conceitos-chave:

File lock ~/.hermes/cron/.tick.lock previne double-run quando o tick demora. Você pode passar múltiplas --skill pra combinar habilidades.

Ver Completo
3.5~25 min

🔄 Loop de Auto-Aperfeiçoamento

Como os 4 pilares (memória, skills, soul, histórico) se combinam num loop que faz o agente ficar melhor com uso. Não é mágico — exige feedback.

O que é:

Memória (MEMORY.md/USER.md) = fatos. Skills (SKILL.md) = procedimentos. Histórico (SQLite FTS5) = conversa. As três funcionam juntas pra acumular contexto útil.

Por que aprender:

Saber qual camada usar para qual tipo de aprendizado evita inflar memória com coisas que deveriam virar skill, ou virar skill coisa que é só fato isolado.

Conceitos-chave:

Fato pontual → memória. Procedimento repetível → skill. Conversa específica → fica no histórico (busca via session_search).

O que é:

Você pede tarefa → ele executa → você corrige se errado → o aprendizado é persistido em memória ou skill → próxima sessão usa isso.

Por que aprender:

É a regra do jogo. Sem o passo 4 (persistência), você vai corrigir os mesmos erros sempre. Tudo o que evolui o agente passa por esse ciclo.

Conceitos-chave:

Frases de gatilho: "salva isso na memória", "vira skill", "atualiza seu soul", "lembra disso pra próxima". Sem elas, o aprendizado some no fim da sessão.

O que é:

Heurística simples: errou uma vez, é descuido. Errou duas vezes na mesma coisa, é padrão — atualize o pilar correspondente.

Por que aprender:

Sem critério você ou inflama memória pra qualquer detalhe ou ignora o que precisaria ser corrigido. O 2 é um bom limiar pragmático.

Conceitos-chave:

Erro de fato → memória. Erro de processo → skill. Erro de tom → soul. A camada certa depende do tipo de erro.

O que é:

Toda vez que você se pega digitando "primeiro faz X, depois Y, cuidado com Z" pela 3ª vez, é a deixa: vire skill.

Por que aprender:

Identificar o gatilho cedo economiza horas. A skill paga investimento em poucas execuções.

Conceitos-chave:

Frase pronta: "Transforma esse procedimento numa skill chamada X, com when-to-use, procedure, pitfalls e verification." O agente formaliza.

O que é:

Diagnóstico simples: "ele falou de um jeito que não gostei" → soul. "ele esqueceu fato sobre meu setup" → memória. "ele errou o passo a passo" → skill.

Por que aprender:

Roteamento claro evita gastar tempo editando a coisa errada. Soul mais grosso não conserta falta de fato; memória mais cheia não conserta tom.

Conceitos-chave:

A tabela mental: tipo do erro → camada correspondente. Aplicar errado degrada tudo (memória virando soul fica longa demais e desperdiça os 2.200 chars).

O que é:

A cada poucas semanas, peça: "Mostre o conteúdo atual de SOUL.md, USER.md, MEMORY.md e a lista de skills. O que está obsoleto, contraditório ou redundante?"

Por que aprender:

Sem revisão, esses arquivos viram lixo acumulado. Entradas antigas brigam com novas. O agente perde clareza.

Conceitos-chave:

Auditoria mensal de 10 minutos vale mais que reescrever do zero. Comite os arquivos no GitHub — assim você tem histórico de evolução do agente.

Ver Completo
← Trilha 2: Setup do Zero Próxima trilha: Segurança →