Phase 14 - Lesson 10
Bibliotecas de Habilidades e Aprendizado ao Longo da Vida (Voyager)
Voyager (Wang et al., TMLR 2024) trata o código executável como uma habilidade (skill). As habilidades são nomeadas, recuperáveis, compostas e refinadas pelo feedback do ambiente. Esta é a arquitetura de referência para as skills do Claude Agent SDK, o skillkit e o padrão skill-library de 2026.
Tipo: Build Linguagens: Python (stdlib) Pré-requisitos: Phase 14 · 07 (MemGPT), Phase 14 · 08 (Letta Blocks) Tempo: ~75 minutos
Objetivos de Aprendizado
- Nomear os três componentes do Voyager — currículo automático (automatic curriculum), biblioteca de habilidades (skill library) e mecanismo de prompting iterativo (iterative prompting) — e a função de cada um.
- Explicar por que o Voyager torna o espaço de ação um código, e não comandos primitivos.
- Implementar uma biblioteca de habilidades em stdlib com registro, recuperação, composição e refinamento direcionado por falhas.
- Mapear o padrão do Voyager nas skills do Claude Agent SDK de 2026 e no ecossistema skillkit.
O Problema
Agentes que reconstroem cada capacidade do zero em cada sessão erram em três aspectos:
- Desperdício de tokens. Cada tarefa exige novamente o mesmo raciocínio.
- Perda de progresso. Uma correção aprendida na sessão A não é transferida para a sessão B.
- Falha na composição de longo prazo. Tarefas complexas exigem hierarquias de capacidade; prompts de uso único (one-shot prompts) não conseguem expressá-las.
A resposta do Voyager: tratar cada capacidade reutilizável como um bloco de código nomeado armazenado em uma biblioteca, recuperável por similaridade, combinável com outras habilidades e refinado por feedback de execução.
O Conceito
Três componentes
O Voyager (arXiv:2305.16291) estrutura um agente em torno de:
- Currículo automático (Automatic curriculum). Um propositor guiado pela curiosidade escolhe a próxima tarefa com base no conjunto atual de habilidades do agente e no estado do ambiente. A exploração é de baixo para cima (bottom-up).
- Biblioteca de habilidades (Skill library). Cada habilidade é um código executável. Novas habilidades são adicionadas quando uma tarefa é bem-sucedida. As habilidades são recuperadas por similaridade entre a consulta (query) e a descrição.
- Mecanismo de prompting iterativo (Iterative prompting mechanism). Em caso de falha, o agente recebe erros de execução, feedback do ambiente e a saída da autoverificação, e então refina a habilidade.
A avaliação no Minecraft (Wang et al., 2024): 3,3x mais itens únicos, ferramentas de pedra 8,5x mais rápidas, ferramentas de ferro 6,4x mais rápidas e travessia de mapa 2,3x mais longa em comparação com as linhas de base (baselines). Os números são específicos do Minecraft, mas o padrão se transfere.
Espaço de ação = código
A maioria dos agentes emite comandos primitivos. O Voyager emite funções JavaScript. Uma habilidade é:
async function craftIronPickaxe(bot) {
await mineIron(bot, 3);
await mineStick(bot, 2);
await placeCraftingTable(bot);
await craft(bot, 'iron_pickaxe');
}
Composta a partir de sub-habilidades. Armazenada e indexada por descrição e embedding. Recuperada como um programa, não como um prompt.
Esta é a skill do Claude Agent SDK de 2026: um bloco de código nomeado e recuperável, além de instruções que o agente carrega sob demanda.
Recuperação de habilidades
Nova tarefa: "fazer uma picareta de diamante" ("make a diamond pickaxe"). Agente:
- Gera o embedding da descrição da tarefa.
- Consulta a biblioteca de habilidades em busca das top-k habilidades semelhantes.
- Recupera
craftIronPickaxe,mineDiamond,placeCraftingTableetc. - Compõe a nova habilidade a partir das primitivas recuperadas + nova lógica.
Este é o padrão que os recursos do MCP (Fase 13) e as skills do Agent SDK implementam: recuperação sobre uma superfície de conhecimento/código, limitada ao escopo da tarefa atual.
Refinamento iterativo
O loop de feedback do Voyager:
- O agente escreve uma habilidade.
- A habilidade é executada no ambiente.
- Um de três sinais retorna:
success,error(com stack trace) ouself-verification failure(falha de autoverificação). - O agente reescreve a habilidade usando o sinal como contexto.
- Repete o loop até obter sucesso ou atingir o limite de rodadas.
Este é o Self-Refine (Lição 05) aplicado à geração de código com verificação baseada no ambiente. O CRITIC (Lição 05) é o mesmo padrão com ferramentas externas atuando como o verificador.
Currículo e exploração
O módulo de currículo do Voyager propõe tarefas como "construir um abrigo perto do lago" com base no que o agente possui e no que ele ainda não fez. O propositor usa o estado do ambiente + o inventário de habilidades para escolher uma tarefa que esteja logo acima da capacidade atual — a zona ideal de exploração.
Para agentes em produção, isso se traduz em um operador do tipo "o que está faltando": dada a biblioteca de habilidades atual e um domínio, quais habilidades ainda não estamos cobrindo? As equipes normalmente implementam isso manualmente como uma revisão de currículo.
Onde este padrão falha
- Degradação da biblioteca de habilidades (Skill library rot). A mesma habilidade é adicionada 10 vezes com descrições ligeiramente diferentes. Adicione uma etapa de eliminação de duplicatas (deduplication) na escrita; a recuperação deve retornar apenas uma.
- Desvio de habilidade composta (Composed-skill drift). A habilidade pai depende de uma habilidade filha que foi refinada. Controle a versão das habilidades; um pai fixado na v1 não deve adotar magicamente a v3.
- Qualidade de recuperação. A recuperação vetorial sobre descrições de habilidades se degrada conforme a biblioteca cresce além de algumas centenas de itens. Complemente com filtros de tags e restrições rígidas ("apenas habilidades com
category=tooling").
Construa
code/main.py implementa uma biblioteca de habilidades com stdlib:
Skill— nome, descrição, código (como string), versão, tags, dependências.SkillLibrary— registrar, pesquisar (sobreposição de tokens), compor (ordenação topológica de dependências) e refinar (incremento de versão na atualização).- Um agente programado por script que registra três habilidades primitivas, compõe uma quarta, encontra uma falha e realiza o refinamento.
Execute:
python3 code/main.py
O rastreamento (trace) mostra escritas na biblioteca, recuperação, composição, uma execução malsucedida e um refinamento para v2 — o loop do Voyager de ponta a ponta.
Use
- Claude Agent SDK skills (Anthropic) — a referência de 2026: cada habilidade possui uma descrição, código e instruções; carregada sob demanda durante uma sessão do agente.
- skillkit (npm: skillkit) — gerenciamento de habilidades multiagente para mais de 32 agentes de codificação de IA.
- Bibliotecas de habilidades personalizadas — específicas de domínio (habilidades SQL para agentes de dados, habilidades Terraform para agentes de infraestrutura). O padrão Voyager é perfeitamente dimensionável.
- OpenAI Agents SDK
tools— no nível mais básico; cada ferramenta é uma habilidade leve.
Envie para Produção
outputs/skill-skill-library.md gera uma biblioteca de habilidades no formato do Voyager com registro, recuperação, versionamento e refinamento integrados para qualquer ambiente de execução de destino.
Exercícios
- Adicione um detector de ciclo de dependência a
compose(). O que acontece quando a habilidade A depende de B que depende de A? Erro vs aviso? - Implemente a fixação de versão por habilidade (version pinning). Quando uma habilidade pai compõe a filha
crafting@1, um refinamento paracrafting@2não deve atualizar silenciosamente o pai. - Substitua a recuperação por sobreposição de tokens por embeddings do sentence-transformers (ou uma implementação BM25 em stdlib). Meça a métrica retrieval@5 em uma biblioteca de testes com 50 habilidades.
- Adicione um agente de "currículo": dada a biblioteca atual e uma descrição do domínio, proponha 5 habilidades que estejam faltando. Execute-o semanalmente.
- Leia a documentação do Claude Agent SDK de skills da Anthropic. Portar a biblioteca de testes para o esquema de skill do SDK. O que muda em relação à descoberta de habilidades (discoverability)?
Termos-Chave
| Termo | O que dizem | O que realmente significa |
|---|---|---|
| Habilidade (Skill) | "Capacidade reutilizável" | Bloco de código nomeado + descrição, recuperável por similaridade |
| Biblioteca de habilidades | "Memória de procedimentos do agente" | Armazenamento persistente de habilidades, pesquisável e combinável |
| Currículo | "Propositor de tarefas" | Gerador de metas de baixo para cima impulsionado pela lacuna de capacidade atual |
| Composição | "DAG de Habilidades" | Habilidades invocando habilidades; ordenadas topologicamente na execução |
| Refinamento iterativo | "Loop de autocorreção" | Feedback do ambiente + erros + autoverificação integrados na próxima versão |
| Espaço de ação como código | "Ações programáticas" | Emitir funções, e não comandos primitivos, para comportamentos estendidos no tempo |
| Deduplicação na escrita | "Colapso de habilidades" | Descrições quase duplicadas colapsam em uma única habilidade canônica |
Leituras Adicionais
- Wang et al., Voyager (arXiv:2305.16291) — o artigo original sobre biblioteca de habilidades
- Claude Agent SDK overview — skills como a facilitação de produto de 2026
- Anthropic, Building agents with the Claude Agent SDK — skills e subagentes na prática
- Madaan et al., Self-Refine (arXiv:2303.17651) — o loop de refinamento subjacente ao Voyager