MÓDULO 4.4

👥 Agentes Especializados

Planejador, Executor, Revisor, Auditor — cada papel tem responsabilidades distintas, prompts especializados e modelos adequados. Aprenda a definir contratos formais entre agentes que tornam o sistema substituível e testável.

6
Tópicos
50
Minutos
Avançado
Nível
Design
Tipo
1

🎯 Por que especializar agentes

A especialização não é sobre divisão de trabalho por conveniência — é sobre eficiência econômica e qualidade técnica. Um agente com escopo restrito precisa de menos contexto, usa um modelo mais barato, produz resultados mais consistentes e é muito mais fácil de avaliar.

Agente Generalista (o problema)

  • Prompt enorme com instruções para todos os domínios
  • Modelo mais caro necessário para manter qualidade
  • Hallucination mais frequente (contexto extenso confunde)
  • Difícil de avaliar — por qual critério você julga?
  • Impossível de substituir parcialmente sem refazer tudo

Agentes Especializados (a solução)

  • Prompt conciso e focado no domínio específico
  • Modelo mais barato — tarefas simples não precisam de opus
  • Menos hallucination — contexto mínimo, instrução clara
  • Avaliação por critério específico do domínio
  • Substituível individualmente sem afetar outros

📊 O impacto no custo

Um agente generalista usando Claude Opus 4 para cada tarefa pode custar $0.50 por execução. O mesmo sistema com agentes especializados — Opus para planejamento, Haiku para pesquisa, Sonnet para análise — pode custar $0.08. 6x mais barato com qualidade igual ou superior em cada especialidade.

2

🧭 Agente Planejador

O Planejador é o arquiteto do sistema — recebe o objetivo complexo e produz um plano estruturado executável pelos outros agentes. É o único agente que justifica um modelo de alto custo, porque um plano ruim contamina toda a execução seguinte.

🧭 Características do Agente Planejador

Modelo: Claude Opus 4 ou GPT-4o — raciocínio de alta qualidade
Input: Objetivo em linguagem natural + contexto de negócio
Output: JSON com TaskList, dependências, agentes, critérios
Freq.: Uma vez por objetivo (não por tarefa)
Custo: Alto por execução, mas apenas 1 call por objetivo
Falha: Sistema não inicia — deve ser validado antes de prosseguir

Exemplo de output do Planejador (JSON)

{
  "objective_summary": "Análise de 5 concorrentes com relatório executivo",
  "tasks": [
    {
      "id": "T1", "description": "Identificar top 5 concorrentes",
      "agent": "researcher", "dependencies": [],
      "success_criteria": "Lista JSON com nome, URL e categoria de 5 empresas"
    }
  ],
  "estimated_cost_usd": 0.45,
  "estimated_duration_min": 12
}
3

⚙️ Agente Executor

O Executor é o agente que mais executa e mais consome tokens. Recebe uma tarefa específica, usa suas ferramentas para completá-la e retorna resultado estruturado. É aqui que o custo do sistema é gerado — e onde a otimização de modelo tem maior impacto.

⚙️ O loop do Executor

1 Recebe task_description + context + acceptance_criteria
2 Decide quais ferramentas usar (busca web, código, banco, API)
3 Executa as ferramentas e observa os resultados
4 Avalia se o resultado satisfaz o acceptance_criteria
5 Se sim → retorna resultado. Se não → tenta de novo (max_iterations)
6 Retorna: { result, confidence_score, cost_usd, iterations }

💡 Seleção de modelo por tarefa

Pesquisa web: claude-haiku-3 — rápido e barato

Análise estruturada: claude-sonnet-4 — bom equilíbrio

Raciocínio complexo: claude-opus-4 — quando precisa

Geração de código: claude-sonnet-4 — excelente para código

⚠️ max_iterations é obrigatório

Um Executor sem limite de iterações pode entrar em loop tentando satisfazer um critério impossível de atingir. Defina sempre max_iterations=5 (ou similar) — após o limite, retorna resultado parcial com flag de falha.

4

🔍 Agente Revisor

O Revisor é o controle de qualidade automático do sistema. Sem ele, você entrega ao usuário final resultados de qualidade variável sem filtro. Com ele, cada resultado passa por avaliação criteriosa antes de prosseguir no pipeline.

📥
Input

Resultado do Executor + acceptance_criteria definido pelo Planejador

⚖️
Processo

Avalia qualidade por critério específico, atribui score e gera feedback estruturado

📤
Output

approved: true/false, score: 0-10, feedback: "o que está faltando"

🔄 O ciclo Executor → Revisor

for attempt in range(max_revision_cycles):

result = executor.run(task, context)

review = revisor.evaluate(result, criteria)

if review.approved:

return result # aprovado

# Executor recebe feedback e tenta de novo

context.add_feedback(review.feedback)

return escalate_to_human(result) # esgotou revisões

5

📊 Agente Auditor

O Auditor não participa da execução — ele observa e registra. Em ambientes enterprise, o audit trail não é opcional: é um requisito de compliance, segurança e governança. O Auditor é o agente que torna o sistema explicável.

📊 O que o Auditor registra

Cada ação de cada agente com timestamp e custo
Cada handoff entre agentes com contexto transferido
Cada decisão de roteamento com justificativa
Custo acumulado em tempo real por agente e total
Violações de política (acesso não autorizado, custo acima do limite)
Anomalias de comportamento (muitas iterações, saída atípica)

📋 Requisitos de compliance

  • SOC2: audit trail de todas as operações
  • LGPD/GDPR: log de acesso a dados pessoais
  • HIPAA: audit completo de acesso a dados de saúde

💡 Implementação: append-only log

O audit trail é um log append-only com hash de integridade (cada entrada referencia o hash da anterior). Impossível alterar retroativamente. Pode exportar para SIEM corporativo.

6

📜 Contratos entre agentes

Contratos formais entre agentes são o que transforma um conjunto de scripts acoplados em um sistema substituível e testável. Com contratos explícitos, você pode trocar o Executor A pelo Executor B sem tocar no Revisor ou no Planejador — desde que ambos respeitem o mesmo contrato.

📜 Anatomia de um contrato de agente

class ExecutorContract(BaseModel):

# Input schema (o que o Executor aceita)

task_description: str

context: Dict[str, Any]

acceptance_criteria: str

max_cost_usd: float = Field(gt=0, le=5.0)

timeout_seconds: int = Field(ge=10, le=300)

# Output schema (o que o Executor sempre retorna)

class ExecutorResult(BaseModel):

result: Any

confidence_score: float # 0.0 - 1.0

cost_usd: float

iterations: int

status: Literal["done", "partial", "failed"]

✓ Com contratos formais

  • Substituição de agente sem modificar outros
  • Testes unitários por agente isolado
  • Validação automática de output antes de usar
  • Documentação gerada automaticamente do schema

✗ Sem contratos formais

  • Acoplamento implícito descoberto só em produção
  • Mudança em um agente quebra outro silenciosamente
  • Impossível testar agente de forma isolada
  • Ninguém sabe o que cada agente realmente precisa

💡 Use Pydantic para contratos em Python

Pydantic valida automaticamente que o input do agente é válido antes de executar, e que o output é válido antes de passar para o próximo. Quando o output é inválido, você recebe um ValidationError com o campo específico — não um resultado silenciosamente errado descoberto 10 etapas depois.

Resumo do Módulo 4.4

Especialização = eficiência + qualidade — 6x mais barato com qualidade igual ou superior
Planejador usa modelo caro uma vez — invista aqui para economizar em todo o resto
Executor é o agente mais frequente — modelo adequado à tarefa com max_iterations obrigatório
Revisor é o controle de qualidade — aprova/rejeita com feedback antes de avançar
Contratos Pydantic tornam o sistema substituível, testável e documentado automaticamente

Próximo Módulo:

4.5 — Gerenciamento de Estado: quando múltiplos agentes precisam ler e escrever o mesmo dado, o que acontece? Redis, locks, versionamento e recovery.