Pular para o conteúdo
🟠 Builder

Agent Trust Stack: quando confiar qual agente com qual tarefa

Versão estendida do Agent Trust Stack — as 5 dimensões aplicadas com exemplos práticos de Claude Code, Cowork e produção, com matriz de decisão completa.

O Agent Trust Stack define 5 dimensões para decidir o que um agente pode fazer autonomamente. Este post estende com exemplos práticos aplicados a Claude Code, Cowork e produção em geral.

A matriz aplicada

Pontuação de 0-3 em cada dimensão, soma de 0-15. Faixas:

  • 0-5: autonomia total.
  • 6-10: autonomia com durable pause em ações específicas.
  • 11-15: bloqueio — exige humano no loop.

Exemplo 1 · Claude Code rodando git status

DimensãoScorePor quê
Reversibility0Read-only, nada muda
Blast radius0Local apenas
Auditability0Comando logado
Cost0Trivial
Time0<1s
Soma0Autonomia total

Claude Code roda sem perguntar.

Exemplo 2 · Claude Code rodando git push --force-with-lease

DimensãoScorePor quê
Reversibility2Recuperável via reflog, mas pessoas no time podem ter feito pull
Blast radius2Branch compartilhado
Auditability1Comando logado mas histórico pode confundir
Cost0Trivial
Time0<1s
Soma5Borderline. Em prática, durable pause.

Claude Code pergunta antes.

Exemplo 3 · Agente Cowork enviando email para cliente externo

DimensãoScorePor quê
Reversibility3Email enviado é enviado. Sem desfazer
Blast radius3Cliente externo afetado
Auditability1Email log existe
Cost0Centavos
Time0Instantâneo
Soma7Durable pause obrigatório

Mesmo agente confiável, exige confirmação humana.

Exemplo 4 · Agente automatizando transferência bancária

DimensãoScorePor quê
Reversibility3Transfer banking é irreversível
Blast radius3Conta corporativa, vendor real
Auditability2Log existe mas integração crítica
Cost3Valor monetário direto
Time0Instantâneo
Soma11Bloqueio — humano no loop sempre

Não importa quão “bom” o agente seja. Política bloqueia.

A pegadinha do score igual com causa diferente

Dois fluxos com soma 7 podem precisar de policies diferentes. Email (R3, B3) vs criar ticket público (R2, B3, A2) tem o mesmo score, mas:

  • Email: reversibility é a dor. Durable pause antes do envio.
  • Ticket: auditability é a dor. Logging detalhado + permissão de auditor.

A soma é screening; a decomposição é design.

Como aplicar em código

function evaluateTrust(task: Task): TrustDecision {
  const score = task.reversibility + task.blastRadius + 
                task.auditability + task.cost + task.time;
  
  if (score <= 5) return { autonomy: 'full', requireGate: false };
  if (score <= 10) return { 
    autonomy: 'partial', 
    requireGate: true,
    gateType: chooseGate(task), // durable pause, confirmation, escalation
  };
  return { autonomy: 'blocked', requireHuman: true };
}

Em prática, scoring vem de policy file editável (YAML/JSON), não hardcoded. Permite ajuste sem deploy.

A integração com Harness Stack

Trust Stack pressupõe Harness Stack presente. Sem Harness, as dimensões caem:

  • Sem Verification (camada 3) → Reversibility piora (qualquer action pode dar errado).
  • Sem Failure corpus (camada 9) → Auditability piora (não há trace usável).
  • Sem Durable pause (camada 7) → o gate da faixa 6-10 não existe operacionalmente.

Construa Harness primeiro. Aplique Trust Stack como camada de decisão por cima.

Onde aprofundar

Agent Trust Stack hub para o framework canônico. Harness Stack introdução para a infra que destrava as decisões.