E7 · Rehacer los veredictos
10 minCorre el primer bloque.
Listo cuando: E0001 → VEREDITO: A_SEGUE con FALHA en reclamou y saída: 1; E0002 → VEREDITO: B_GANHOU, z=2.8543 y saída: 0.
Clase 3 · 20 min
Un keep en el laboratorio todavía no es la versión oficial. En producción, la versión nueva solo sube cuando el veredicto dice que B ganó sin empeorar nada, alguien la aprueba con la tarjeta de cinco líneas y existe un camino de vuelta que no borra nada. En esta clase rehaces los veredictos publicados del ejemplo de LOOP-R, promueves y revierto.
Empezar la clase
Objetivo: leer un veredicto A/B con barandillas (guardrails), mostrar la tarjeta de 5 líneas, promover solo con aprobación y revertir sin borrar la versión.
Los comandos decidir, promover y reverter del runner LOOP-R. Haz clic en cada bloque.
Invariantes del runner: nunca promover sin B_GANHOU + aprobación, nunca borrar un ciclo, una versión o una línea de memoria, nunca dos experimentos al mismo tiempo.
El ejemplo vendas-whatsapp de LOOP-R tiene datos SINTÉTICOS (generador con seeds elegidos para reflejar efectos diseñados) y decisiones humanas simuladas; los agentes corrieron de verdad. El kit rehace la cuenta en una copia.
K=~/projetos/loop-r-eng-aprende-v72/kit
X=~/projetos/loop-r/exemplos/vendas-whatsapp # git clone https://github.com/inematds/loop-r ~/projetos/loop-r (dados SINTÉTICOS)
E=${TMPDIR:-/tmp}/ensaio-aprende/a3; rm -rf $E; L=$E/loop # uma CÓPIA: nada é gravado no repo loop-r
python3 $K/loopr.py iniciar $L --v1 $X/versoes/v1/executor.prompt.md --candidata $X/versoes/v2/executor.prompt.md
echo "## E0001 · H2 (até 80 palavras), tolerância 0 em reclamações"
python3 $K/loopr.py veredito $L --csv $X/dados/execucoes.csv --de 2026-02-02 --ate 2026-04-26 \
--metrica resposta --minimo 166 --vigiar reclamou:0 --vigiar optout:0.005; echo "saída: $?"
echo "## E0002 · H3 (abrir citando um ponto da avaliação)"
python3 $K/loopr.py veredito $L --csv $X/dados/execucoes.csv --de 2026-05-04 --ate 2026-07-26 \
--metrica resposta --minimo 212 --vigiar reclamou:0.01 --vigiar optout:0.005; echo "saída: $?"loop iniciado: versoes/atual → v1 ## E0001 · H2 (até 80 palavras), tolerância 0 em reclamações VEREDITO: A_SEGUE Métrica do teste: resposta A=0.1933 (58/300) B=0.2967 (89/300) z=2.9426 p=0.0033 Vigiada reclamou: A 1/300 vs B 6/300, Δ=+0.0167 tol 0 → FALHA Vigiada optout: A 0/300 vs B 1/300, Δ=+0.0033 tol 0.005 → DENTRO saída: 1 ## E0002 · H3 (abrir citando um ponto da avaliação) VEREDITO: B_GANHOU Métrica do teste: resposta A=0.1933 (58/300) B=0.2933 (88/300) z=2.8543 p=0.0043 Vigiada reclamou: A 2/300 vs B 4/300, Δ=+0.0067 tol 0.01 → DENTRO Vigiada optout: A 3/300 vs B 1/300, Δ=-0.0067 tol 0.005 → DENTRO saída: 0
Los mismos números del ledger publicado: E0001 con 58/300 contra 89/300 (z=2,94) fue descartado por reclamos (6 contra 1, tolerancia 0); E0002 con 58/300 contra 88/300 (z=2,85, p=0,004) ganó. Incluso con la tolerancia de 0,01 que el ejemplo adoptó después, E0001 todavía caería (Δ=0,0167).
Lee solo la métrica de la prueba. E0001 tenía una ganancia mayor que E0002 y aun así no podía subir: una barandilla (guardrail) pasó de la tolerancia. Y la tolerancia se acuerda antes; cambiarla después de ver el número es reescribir la hipótesis.
Continúa el bloque anterior. El costo de la tarjeta es la suma del custo.md del ciclo 0004 del ejemplo (5 agentes, ~392 mil tokens); el ejemplo también lo registra en reales, el curso cuenta en tokens.
K=~/projetos/loop-r-eng-aprende-v72/kit
E=${TMPDIR:-/tmp}/ensaio-aprende/a3; L=$E/loop # continua o bloco anterior (veredito B_GANHOU gravado)
python3 $K/loopr.py promover $L; echo "saída: $?"
python3 $K/loopr.py cartao $L --hipotese "H3 — abrir citando a avaliação" --tokens 392000
python3 $K/loopr.py decidir $L aprovado --por "Seu Nome"
python3 $K/loopr.py promover $L; echo "atual → $(readlink $L/versoes/atual)"
python3 $K/loopr.py reverter $L --motivo "resposta caiu no 1º ciclo após a promoção"
echo "atual → $(readlink $L/versoes/atual) · pastas: $(ls $L/versoes | tr '\n' ' ')"
git -C $L log --format=%sRECUSADO: promover exige veredito B_GANHOU e decisão aprovado (veredito: B_GANHOU; decisão: nenhuma) saída: 1 CICLO — hipótese: "H3 — abrir citando a avaliação" Resultado: resposta 0.1933 → 0.2933 ((58/300) vs (88/300), z=2.8543, p=0.0043) [VEREDITO: B_GANHOU] Vigiado: reclamou ok · optout ok Custo: 392.000 tokens neste ciclo (sai da cota) Decisão: aprovar / rejeitar / esperar mais dados decisão gravada: aprovado PROMOVIDA: versoes/atual → v2 atual → v2 ROLLBACK: versoes/atual → v1 (a pasta v2 continua lá) atual → v1 · pastas: atual v1 v2 loop-r: rollback v2 → v1 loop-r: promote v2 loop-r: iniciar
El primer intento de promover es rechazado: veredicto bueno, pero nadie aprobó. Después del rollback, atual apunta a v1 y las dos carpetas siguen ahí.
Conversación simulada. La prueba de la versión B está en la mitad de la muestra. Elige qué respondes.
Elige tu respuesta. El comentario aparece justo después y la conversación sigue según tu elección.
Todo en una copia en /tmp: el kit nunca escribe en el repositorio loop-r.
Corre el primer bloque.
Listo cuando: E0001 → VEREDITO: A_SEGUE con FALHA en reclamou y saída: 1; E0002 → VEREDITO: B_GANHOU, z=2.8543 y saída: 0.
Ejecuta el segundo bloque.
Listo cuando: la primera línea empieza con RECUSADO; después atual → v2, y al final atual → v1 · pastas: atual v1 v2; git -C $L log --oneline | wc -l → 3.
Para la hipótesis de la clase 1, escribe las tolerancias de cada "sem piorar" y la N mínima antes de ejecutar. Para un evento raro, usa al menos 2 errores estándar de la tasa base en la muestra planificada (loop-r/docs/05 §2). Haz commit del hipotese.md con las tolerancias antes del próximo ciclo.
Listo cuando: H=$(git log --diff-filter=A --format=%ct -- hipotese.md | tail -1); C=$(git log --reverse --format=%ct --grep='^keep:' | head -1); [ -n "$H" ] && { [ -z "$C" ] || [ "$H" -lt "$C" ]; }; echo "saída: $?" → saída: 0 (el hipotese.md entró en git antes del primer keep), y el hipotese.md con commit tiene una tolerancia numérica por cada "sem piorar".
Pregunta 1 de 4
B sube la respuesta de 19% a 30% con p=0,003, pero las quejas superan la tolerancia. ¿Cuál es el veredicto?competencia
Pregunta 2 de 4
El veredicto fue B_GANHOU y el aprobador no respondió a tiempo. ¿Qué pasa en L1?competencia
Pregunta 3 de 4
En el rollback de v2 a v1, ¿qué pasa con la carpeta v2?
Pregunta 4 de 4
¿Cuándo se permite detener una prueba antes de la muestra mínima?
Elige una alternativa. La explicación aparece después de tu intento.