Skills, não agentes gigantes: a próxima abstração para workflows de AI

Audiência: Engenheiros sênior / AI builders
Formato: Opinião + padrões de arquitetura
Contexto: Sistemas simples, compostos e mantíveis


TL;DR

  • Agentes monolíticos estão atingindo um limite prático
  • A nova direção: skills pequenas, específicas e reutilizáveis
  • Menos “inteligência centralizada”, mais composição explícita

O problema com agentes gigantes

O padrão dominante em 2024–2025 foi:

:backhand_index_pointing_right: um agente que “faz tudo”

  • decide
  • planeja
  • executa
  • itera

Em teoria parece poderoso.

Na prática:

  • difícil de testar
  • difícil de debugar
  • comportamento imprevisível

Sinais de saturação

Equipes reais estão vendo:

  • workflows frágeis
  • loops desnecessários
  • dependência de prompts complexos
  • resultados inconsistentes

O problema não é o modelo.

:backhand_index_pointing_right: É a forma como estamos encapsulando lógica.


A alternativa: skills

Em vez de um agente monolítico:

:backhand_index_pointing_right: divida em capacidades pequenas

Uma skill é:

  • específica
  • testável
  • reutilizável

Exemplo:

  • generate_summary
  • validate_schema
  • run_tests

Mudança de modelo mental

Antes:

:backhand_index_pointing_right: “o agente decide o que fazer”

Agora:

:backhand_index_pointing_right: “o sistema compõe capacidades”


Arquitetura recomendada

1. Skills como funções

async function generateSummary(input: string) {
  return llm.call({ prompt: `Resume: ${input}` });
}

2. Orquestração explícita

if (task === "summarize") {
  return generateSummary(input);
}

3. Composição

const result = await runPipeline([
  extractData,
  validateData,
  generateReport
]);

4. Observabilidade

Cada etapa:

  • logs claros
  • inputs/outputs visíveis

Por que isso funciona melhor

:check_mark: Controle

Você sabe exatamente o que está acontecendo.


:check_mark: Testabilidade

Cada skill pode ser validada de forma isolada.


:check_mark: Reutilização

Mesmo bloco → múltiplos workflows.


:check_mark: Manutenibilidade

Mudanças locais, não sistêmicas.


Quando usar agentes (de verdade)

Os agentes continuam sendo úteis quando:

  • o problema é aberto
  • não há fluxo claro
  • exploração é necessária

Mas mesmo assim:

:backhand_index_pointing_right: limite seu escopo


Anti-patterns comuns

  • agente com acesso total
  • lógica implícita em prompts
  • loops autônomos sem limites
  • falta de logs

Padrão híbrido

Uma arquitetura prática:

:backhand_index_pointing_right: skills determinísticas + agente leve

O agente:

  • seleciona
  • não executa diretamente

Implicações para equipes

Isso não é apenas técnico.

É organizacional.

  • melhor onboarding
  • menos dependência de especialistas
  • mais velocidade sem perder controle

Veredicto

O problema não é que os agentes não funcionem.

É que estamos tentando usá-los para tudo.


Reflexão final

A próxima geração de sistemas de IA não será:

  • mais autônoma

Será:

  • mais modular
  • mais observável
  • mais componível

Porque em sistemas reais:

:backhand_index_pointing_right: a simplicidade escala melhor que a “inteligência”.