Domínio 5 — Context Management & Reliability · Lição 3 de 5

Escalonamento, ambiguidade e human-in-the-loop

Objetivos de aprendizagem

Gatilhos corretos de escalação

Escalar tudo destrói a resolução autônoma; escalar nada gera decisões fora de alçada. Os gatilhos que a prova considera corretos:

A técnica de implementação é adicionar critérios explícitos de escalação com exemplos few-shot ao system prompt, demonstrando quando escalar versus resolver autonomamente — antes de qualquer infraestrutura adicional (classificadores, ML, etc.).

Proxies não confiáveis

Proxy tentadorPor que falha
Sentimento do cliente (escalar quando negativo)Frustração não se correlaciona com complexidade do caso: clientes irritados têm problemas triviais e clientes calmos têm casos que exigem exceção de política.
Confiança auto-reportada do modelo (score 1–10 no prompt)É mal calibrada: o modelo tende a estar incorretamente confiante justamente nos casos difíceis. Não substitui calibração contra dados rotulados.

Ambiguidade de identidade: múltiplos matches

Quando get_customer retorna múltiplos clientes possíveis (mesmo nome, dados parciais), o agente deve pedir identificadores adicionais (e-mail, número do pedido, CPF parcial) — nunca selecionar por heurística ("o mais recente", "o da mesma cidade"). Seleção heurística leva a contas mal identificadas e ações irreversíveis no cliente errado.

Se a ação errada tem consequência financeira (reembolso na conta errada), a clarificação não é opcional. Instrua explicitamente o agente a interromper e perguntar quando a resolução de identidade for ambígua.

Métricas agregadas mascaram segmentos ruins

Um pipeline de extração com "97% de acurácia geral" pode ter 99,5% em notas fiscais digitais e 74% em recibos manuscritos — o agregado esconde o segmento problemático. Antes de reduzir revisão humana ou automatizar extrações de alta confiança:

Confiança field-level calibrada

O padrão robusto de human-in-the-loop para extração:

  1. O modelo emite score de confiança por campo (não um único score por documento);
  2. Os thresholds de roteamento são calibrados contra um validation set rotulado — descobrindo empiricamente, por exemplo, que confiança ≥ 0,9 corresponde a 99% de acurácia no campo "total", mas só 92% no campo "data";
  3. Vão para revisão humana: extrações com baixa confiança e documentos-fonte ambíguos ou contraditórios — priorizando a capacidade limitada dos revisores onde o risco é maior.

Exemplo: roteamento de revisão com thresholds calibrados

import anthropic

client = anthropic.Anthropic()

# Thresholds POR CAMPO, calibrados contra um validation set rotulado
# (nao sao a "confianca auto-reportada" crua: foram ajustados ate que
# cada threshold correspondesse a taxa de erro tolerada pelo negocio)
CALIBRATED_THRESHOLDS = {"total_amount": 0.93, "issue_date": 0.88, "vendor_name": 0.85}

def route_extraction(extraction: dict) -> dict:
    """Decide, campo a campo, o que vai para revisao humana."""
    needs_review = []
    for field, threshold in CALIBRATED_THRESHOLDS.items():
        data = extraction["fields"].get(field)
        if data is None or data["confidence"] < threshold:
            needs_review.append(field)
    if extraction.get("source_contradictory"):
        needs_review = list(extraction["fields"].keys())  # fonte ambigua: revisar tudo
    return {"auto_approved": not needs_review, "fields_for_review": needs_review}

# System prompt com criterios EXPLICITOS de escalacao + few-shot
system = """Voce e um agente de suporte. Criterios de escalacao:
1. Cliente pede um humano -> escale IMEDIATAMENTE, sem investigar antes.
2. Politica ambigua ou silenciosa sobre o pedido -> escale com o contexto coletado.
3. Voce nao consegue progredir (ferramentas falharam, dados inacessiveis) -> escale.
Caso contrario, resolva autonomamente.

Exemplo (escalar): "Quero falar com uma pessoa AGORA" -> transferir imediatamente.
Exemplo (resolver): "Produto chegou quebrado, tenho fotos" -> troca padrao, resolver.
Exemplo (escalar): "A loja X cobre o preco de voces?" e a politica so trata de
ajustes no proprio site -> lacuna de politica, escalar."""

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    system=system,
    messages=[{"role": "user", "content": "Quero falar com um atendente humano."}],
)
print(response.content[0].text)

Pegadinhas da prova

Resumo em 5 linhas

  1. Gatilhos corretos de escalação: pedido explícito do cliente (imediato), lacuna/exceção de política, incapacidade de progredir.
  2. Sentimento e confiança auto-reportada são proxies não confiáveis de complexidade — não os use como gatilho primário.
  3. Múltiplos matches de cliente exigem pedir identificadores adicionais, nunca seleção heurística.
  4. Métricas agregadas mascaram segmentos ruins: estratifique acurácia por tipo de documento e campo antes de automatizar.
  5. Roteie revisão humana por confiança field-level calibrada em validation set rotulado + amostragem estratificada contínua das extrações de alta confiança.

Documentação oficial

Questões de fixação

1. Um cliente escreve: "Chega, quero falar com uma pessoa de verdade." O problema dele parece ser uma troca simples. O que o agente deve fazer?

2. A busca por "Maria Souza" retorna três clientes com esse nome. O cliente na conversa quer um reembolso. Qual é o comportamento correto do agente?

3. Um pipeline de extração exibe 97% de acurácia geral. A equipe quer eliminar a revisão humana das extrações de alta confiança. Qual passo é necessário ANTES dessa decisão?

4. Quais duas práticas tornam confiável um roteamento de revisão humana baseado em confiança? (escolha duas)