Gating por confiança e escalonamento para um humano
A página anterior defendeu que o código deve ser dono do limiar. Esta página trata do que o limiar divide — as três faixas de cada lado.
Três faixas, não duas
Projetos reais raramente fazem “automático ou não”. Três faixas é a forma comum:
| Faixa | Condição | Ação |
|---|---|---|
| Automática | Confiança acima do limiar superior e verificações extras passam | Só faça |
| Escalonar | Cai no meio | Entregar a um humano |
| Descartar | Confiança abaixo do limiar inferior | Não faça nada, e não gaste a atenção de um humano tampouco |
A terceira faixa é fácil de ignorar e é a mais barata das três. “Não olhado” e “uma pessoa dá uma olhada” diferem por um humano.
Uma implementação de triagem é típica: pagine apenas quando P(SEV1) + P(SEV2) ≥ 0.80; descarte
abaixo de 0.20 apenas quando uma verificação de acionabilidade também discorda; mande a faixa do meio para
um humano.
A faixa do meio é onde vivem os problemas de fato
Uma vez que as três faixas existem, toda pergunta difícil se move para a do meio:
É capacidade humana, não capacidade ociosa. Quanto mais larga a faixa, mais escalonamentos, mais uma pessoa trata. Uma taxa de escalonamento de 9% parece baixa — até a taxa base ser milhares por dia.
Ela precisa de um fail-safe, ou fica travada silenciosamente. Assim que você entrega uma decisão a um humano, nada acontece até um humano olhar. Num painel, isso se parece exatamente com “está tudo bem”. A resposta da ferramenta de triagem é direta: sem confirmação em 15 minutos, pagine de qualquer forma. Melhor acordar alguém do que deixar um P1 parado numa fila.
A própria condição de escalonamento pode falhar. Um gate de autonomia dentro de um agente
continua apenas quando um Choice ultrapassa 0.6 e um Noul de segurança de autonomia ultrapassa 0.5,
devolvendo o turno ao humano caso contrário. Os dois números precisam passar — porque “o que devo
fazer” e “isso é seguro” são perguntas separadas, e uma confiança só não pode honestamente
responder às duas.
Definir o limiar: meça primeiro
Escolher 0.8 do nada é a abordagem mais comum e a que mais provavelmente vira ruído três meses depois. A abordagem reproduzível é medir, sobre os seus próprios dados rotulados, o limiar necessário para atingir a precisão desejada.
Um exemplo público: com 0.7 como gate de baixa confiança, uma execução sobre n=130 pegou 3 de 3 classificações erradas a uma taxa de escalonamento de 9%. A amostra é pequena. Seu valor não é o 0.7 — é que é assim que um número desses deveria ser relatado: tamanho da amostra, taxa de escalonamento e o que foi pego.
Latência é o risco subestimado
Os números medidos da ferramenta de triagem merecem uma tabela própria:
| Métrica | Valor |
|---|---|
| p50 | 418 ms |
| p95 | 1477 ms |
| Custo | cerca de $0.04 por mil |
| Chamada mais lenta | 151 ms a menos que o seu próprio timeout de 2 segundos |
O p95 é 3.5× o p50. Isso significa que a cauda importa mais do que a média — porque a política de timeout dispara na cauda, e quando ela dispara você está no ramo de fallback, não no ramo que você projetou. A chamada mais lenta chegou a 151 ms do timeout, ou seja, o determinismo do sistema dependia de uma moeda que por acaso não caiu mal.
Então os sistemas de gating geralmente falham não por “julgar errado”, mas por estourar o timeout e seguir o fallback. Teste o fallback independentemente do caminho principal.
Duas direções de fallback, ambas corretas
Quando algo dá erro, as implementações públicas se dividem em dois campos, e ambos estão certos:
- fail-closed: um juiz de permissões nega em timeout ou erro. Um gate de segurança tem que funcionar assim — um gate de segurança fail-open é um buraco silencioso.
- fail-open: um hook Stop do Claude Code permite em qualquer erro. Um gate de eficiência tem que funcionar assim — um gate de eficiência fail-closed trava todo o fluxo.
O critério não é “qual é mais seguro”, mas qual custo é maior: um bloqueio falso ou um bloqueio perdido. E isso tem que ser decidido quando você escreve o código, porque o que ele determina é o caminho de exceção, não o principal.
Em uma frase
Num desenho de três faixas, o trabalho está na faixa do meio: sua largura é um custo, seu fail-safe é uma propriedade de confiabilidade. Projete os dois explicitamente em vez de usar os padrões.