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ão | Score | Por quê |
|---|---|---|
| Reversibility | 0 | Read-only, nada muda |
| Blast radius | 0 | Local apenas |
| Auditability | 0 | Comando logado |
| Cost | 0 | Trivial |
| Time | 0 | <1s |
| Soma | 0 | Autonomia total |
Claude Code roda sem perguntar.
Exemplo 2 · Claude Code rodando git push --force-with-lease
| Dimensão | Score | Por quê |
|---|---|---|
| Reversibility | 2 | Recuperável via reflog, mas pessoas no time podem ter feito pull |
| Blast radius | 2 | Branch compartilhado |
| Auditability | 1 | Comando logado mas histórico pode confundir |
| Cost | 0 | Trivial |
| Time | 0 | <1s |
| Soma | 5 | Borderline. Em prática, durable pause. |
Claude Code pergunta antes.
Exemplo 3 · Agente Cowork enviando email para cliente externo
| Dimensão | Score | Por quê |
|---|---|---|
| Reversibility | 3 | Email enviado é enviado. Sem desfazer |
| Blast radius | 3 | Cliente externo afetado |
| Auditability | 1 | Email log existe |
| Cost | 0 | Centavos |
| Time | 0 | Instantâneo |
| Soma | 7 | Durable pause obrigatório |
Mesmo agente confiável, exige confirmação humana.
Exemplo 4 · Agente automatizando transferência bancária
| Dimensão | Score | Por quê |
|---|---|---|
| Reversibility | 3 | Transfer banking é irreversível |
| Blast radius | 3 | Conta corporativa, vendor real |
| Auditability | 2 | Log existe mas integração crítica |
| Cost | 3 | Valor monetário direto |
| Time | 0 | Instantâneo |
| Soma | 11 | Bloqueio — 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.