05 Fechar o ciclo
Notas do instrutor para promover evidências revisadas, calibrar um judge geral de política e operar com segurança o ciclo de melhoria contínua.
Material do facilitador para 05 Fechar o ciclo.
Duração
~25 minutos no total.
- 5 min — criar e promover os três registros derivados da produção.
- 5 min — iniciar experimentos pareados
policy-v1epolicy-v2. - 5 min — comparar correctness e calibrar
business-policy-adherence. - 5 min — ativar a regra protegida de observação e reproduzir quatro tipos de métrica.
- 5 min — inspecionar evidências e discutir rollback, custo e próximo ciclo.
Os dois experimentos e evaluators assíncronos podem ultrapassar esses blocos. Inicie cedo, use a espera para conceitos e ensaie a latência do provedor no dia anterior.
Preflight do instrutor
Na raiz, execute verificações não mutantes e confirme a configuração selecionada:
cd ClickHouse_Demos/workshops/agent_arena
.venv/bin/python -m scripts.promote_to_golden --help
.venv/bin/python -m scripts.provision_online_evaluators --help
.venv/bin/python -m eval.harness --help
.venv/bin/python -m scripts.verify_online_scores --helpDepois, confirme:
- o Módulo 03 tem uma raiz
chat_turncomsql-execution-success=truee Booleanuser-thumbs=false; - a tarefa
production-investigation-<session>do Módulo 04 está concluída, o SQL foi executado, o ID real está disponível em privado e o ID da anotação foi registrado quando exibido; reviewed.jsonvirá da revisão genuína, não do fixture sintético;WINNER_MODEL,WINNER_PROMPTeWINNER_CONFIG_IDdescrevem o mesmo vencedor;- a conexão
agent-arena-openrouteralcança o modelo judge com credenciais válidas; - a saída categórica aceita exatamente
PASS,FAILeNOT_APPLICABLE, com raciocínio; e - o dispatcher está saudável e recebe pontuações assíncronas.
Para cada ensaio, crie um sufixo único e mantenha o par junto:
export LOOP_RUN_SUFFIX="$(date +%Y%m%d-%H%M%S)"
export BASELINE_RUN_ID="online-loop-baseline-${LOOP_RUN_SUFFIX}"
export CANDIDATE_RUN_ID="online-loop-candidate-${LOOP_RUN_SUFFIX}"Não reutilize IDs de sessão. O harness acrescenta versão da política e configuração; um ID base único evita comparar evidências desconexas ou sobrescritas.
Limite da anotação manual
A anotação do Módulo 04 não é automatizada. Scripts não criam a fila, preenchem julgamentos, inserem saída corrigida, aprovam nem concluem. Um fixture sintético versionado serve ao ensaio sem revisão real, mas continua source=synthetic-reviewed-fixture e não comprova ciclo humano.
Para participantes, use o reviewed.json genuíno e ignorado. A formulação original é uma pergunta real; as outras duas são paráfrases escritas pelo revisor:
How many active customers do we have?
What is our active customer count right now?
How many customers qualify as active under our business definition?As três preservam o mesmo trace e proveniência. Diga isso para não confundirem um incidente com três traces de feedback.
Confiabilidade e proveniência da promoção
Antes da execução, inspecione reviewed.json sem projetá-lo. Ele precisa de SQL exato somente leitura, proveniência obrigatória e três IDs únicos seguros. A promoção valida o lote local e lê metadados autenticados antes de executar no ClickHouse ou fazer upsert. Falha de modo fechado se não puder ler metadados e rejeita colisão com proveniência diferente.
Promoção genuína idêntica é idempotente. Fixture sintético exige --synthetic-fixture; não pode ser caminho direto nem combinar com reviewed.json. Nunca o execute depois da promoção real. Em colisão, preserve fontes, investigue o item e escolha novo ID auditado somente se forem casos realmente distintos.
Regra de experimento versus regra de observação
Mantenha os contextos visíveis:
| Contexto | Regra/pontuação inspecionada | Estado na calibração |
|---|---|---|
| Itens de Experiment do Langfuse | business-policy-adherence | habilitada para arena-golden |
observações raiz chat_turn ao vivo | agent-arena-business-policy-online | desabilitada |
O provisionador instala um evaluator geral orientado pelo catálogo, não só para contagem de clientes. O catálogo policy-v2 cobre clientes ativos, receita, conversão e margem bruta; perguntas sem relação devem ser NOT_APPLICABLE.
A fase --business-policy-experiments deve indicar online rule enabled=False. Confira a interface. O comando posterior prova a existência de uma pontuação business-policy-adherence no dataset, mas não substitui a revisão completa.
Portões de calibração
Compare baseline e candidata com mesmos IDs, modelo e prompt. Há 20 perguntas YAML, mas q019 e q020 são holdouts; um projeto limpo passa de 18 a 21 itens após a promoção. O projeto compartilhado verificado tinha 22 por conter um item antigo; a execução foi de 16/22 para 19/22. Isso é evidência qualificada, não contagem obrigatória nem garantia de agregados estocásticos.
Não ative até que:
- os três
prod-active-*passem deFAILe incorretos empolicy-v1aPASSe corretos empolicy-v2; - receita (
q005) e conversão (q018) da candidata sejamPASS; - a contagem simples (
q001) sejaNOT_APPLICABLE; - não haja regressão 1→0 de
correctnessem nenhum item existente; - a correctness agregada não regrida; e
- todo item tenha
correctness,agent-arena-llm-judgee a pontuação exatabusiness-policy-adherencecom saída estruturada válida.
Um judge que chama toda contagem de PASS falhou. A sonda NOT_APPLICABLE prova que aplicabilidade é uma classificação real.
Pontuação assíncrona e solução de ausência de pontuação
Avaliações de experimentos e observações são assíncronas. O harness espera pontuações; scripts.verify_online_scores consulta traces por 180 segundos. Não atualize freneticamente, recrie regras nem ative cedo por uma pontuação pendente.
Se não aparecerem:
- Confirme o nome: Experiments usam
business-policy-adherence; serving usaagent-arena-business-policy-online. - Confirme dispatcher/worker saudável.
- Verifique a conexão
agent-arena-openroutere o modelo judge. Atraso, limite ou roteamento podem deixar avaliação pendente/falha mesmo com resposta do agente. - Confirme regra de experimento em
arena-goldene regra de observação em raízeschat_turn; o mapeamento deve expor$.questione$.sql. - Inspecione saída estruturada. Categoria ausente, inválida ou sem raciocínio é falha de calibração.
- Se houver nome de regra ambíguo, resolva duplicatas exatas antes de repetir; não adivinhe qual foi atualizada.
Preserve traces e evidências falhas. Não transforme indisponibilidade em PASS inventado nem pule o portão.
Orientação para reprodução
Após ativar, reinicie explicitamente em policy-v2 e use as quatro perguntas exatas:
How many active customers do we have?
What was revenue in the last 30 days?
What is our view-to-purchase conversion rate for the last 7 days?
How many products are there?Exija sucesso operacional em todas. Clientes ativos, receita e conversão devem ter agent-arena-business-policy-online=PASS; produtos, NOT_APPLICABLE.
A conversão tem limite estocástico verificado. Permita uma repetição com a mesma configuração, preserve IDs e outcomes e pare se ambas falharem. Falha repetida é nova evidência de produção, não motivo para repetir até ficar verde.
Amostragem, custo e confiabilidade
As regras usam amostragem 1 para todos verem evidências. Em produção, um judge LLM em toda solicitação aumenta custo, consome limite e pode pontuar após a resposta. Escolha a amostragem conforme tráfego, risco, custo/latência e cobertura. Mantenha verificações operacionais determinísticas amplas; reserve julgamento semântico caro ao tráfego em que compensa.
O evaluator monitora; não autoriza no caminho da requisição. Um judge atrasado não deve bloquear a resposta. Encaminhe pontuações ausentes, deriva de categoria e divergências a alertas ou backlog conforme os objetivos de serviço.
Rollback e redefinição
Se o judge produzir falsos resultados, saída malformada ou custo/latência inaceitável:
- Em Evaluations, encontre
agent-arena-business-policy-onlinee desative. - Confirme que novos
chat_turnnão recebem essa pontuação. - Mantenha
policy-v2,sql-execution-successe 👍/👎 salvo se suas próprias evidências disserem o contrário; desativar judge ruim não deve restaurar política antiga. - Adicione traces afetados a uma fila humana com sufixo, melhore catálogo/prompt e dados dourados e repita a calibração antes de reativar.
Para parar serviços locais sem apagar evidências remotas:
scripts/arena.sh stopscripts/arena.sh down também remove banco e usuário somente leitura do ClickHouse, mas não datasets, Experiments, filas ou pontuações do Langfuse. Não o use como rollback do evaluator.
Roteiro de fala: o ciclo permanece aberto
- O evaluator original aprovou porque seu contrato era apenas “SQL executou”. O 👎 revelou falha de valor fora dele.
- A revisão humana transformou sinal incerto em diagnóstico e correção testados.
- A proveniência tornou o incidente auditável no conjunto dourado; paráfrases ampliaram cobertura sem inventar traces.
- Experimentos pareados isolaram a mudança de política e testaram o judge geral antes da produção.
- Um
PASSonline não torna feedback obsoleto.agent-arena-business-policy-online=PASSjunto deuser-thumbs=falsedeve reiniciar a investigação.
Portão de conclusão
Não encerre sem seis artefatos:
- trace de produção com aprovação operacional e sinal negativo;
- anotação concluída e SQL corrigido verificado;
- três itens dourados com proveniência genuína;
- evidência baseline/candidata no mesmo dataset sem regressão;
- evidências calibradas
FAIL,PASSeNOT_APPLICABLE; e - pontuações ao vivo habilitadas para clientes ativos, receita, conversão e contagem simples, mantendo 👍/👎 para o próximo ciclo.