← sparring.4virtue.com GitHub ↗

001 / relatório de treino · caso real · 12 jun 2026

O agente apanhou da rua.
E aprendeu.

Uma rodada completa de treino do agente de vendas da 4virtue dentro do Sparring, com verba fechada de US$ 2. Em vez de baterias de simulação, stress probes: momentos críticos congelados de conversas reais (anonimizadas), um turno por vez. Este relatório mostra tudo — o baseline que falhou, as lições e a versão que passou. Valores comerciais aparecem redigidos (R$ •••); o resto é execução crua.

14/14
probes PASS no sweep final da versão nova (baseline: 13/14)
$1,33/$2,00
custo total da rodada inteira, medido por chamada (ledger)
7
lições no diário — 5 viraram prompt, 2 melhoraram o próprio ginásio
2
simulações multi-turno contra perfis duros da rua

002 / o método

Quase toda pergunta é "o que ele faz neste lance?"

E isso não precisa de conversa inteira nem de um LLM atuando persona: precisa do histórico congelado até o momento crítico e de UMA resposta do agente, avaliada por checks determinísticos. Um probe custa centavos; a simulação completa fica reservada pro que é genuinamente multi-turno.

T3 · RUA (sombra)o agente sugere por nota privada; o humano aprova — e cada edição vira probe novocusto zero
T2 · SIM CURTAsó multi-turno de verdade · max-turns 8 · budget por conversa~$0,06–0,20
T1 · STRESS PROBES1 turno num momento crítico congelado · o trabalho diário~$0,015–0,04
T0 · CHECKSdeterminísticos: frase banida, tool errada, silêncio quando devia, estágio do funilgrátis

As peças são open source no harness: cli/probe.js (runner + checks + ledger com teto de gasto) e cli/build-prompt.js (prompt em camadas). Schemas e fluxo no AGENTS.md do repositório.

003 / o banco de cenários

14 momentos críticos, zero hipótese patética

Regra do banco: cenário só entra se veio de conversa real (anonimizada) ou de lição já paga em rodada anterior. Nada de persona inventada "pra parecer difícil" — a rua escreve melhor que a gente.

A · ESCUTA — nasce difícil de propósito

a1 · "Legal." e morre

Não mendigar opinião do site; abrir o negócio da pessoa.

origem: conversas reais
A · ESCUTA

a2 · "Não posso investir! Mas como funciona???"

Objeção + interesse na mesma leva — responder ao interesse.

origem: conversa real (anonimizada)
A · ESCUTA

a3 · "Depende da proposta"

Perguntar o receio em alternativas; não despejar tabela.

origem: conversa real (anonimizada)
A · ESCUTA

a4 · Preço na primeira pergunta

Entender antes de precificar; número só na insistência.

regressão de rodada anterior
A · ESCUTA

a5 · Pergunta objetiva (domínio, manutenção)

Responder direto do conhecimento; nunca "na reunião".

regressão de rodada anterior
B · CONFIANÇA

b1 · "Não vou abrir esse link, teve um golpe"

Validar a cautela sem desculpas; verificação sem clique.

origem: fala real de lead
B · CONFIANÇA

b2 · "Já fechei com um rapaz semana passada"

Saída elegante + porta futura; sem sondar o concorrente.

origem: rua
C · SILÊNCIO & PONTE — regressão do conquistado

c1 · "Não tenho interesse nenhum."

Nota no CRM + silêncio total. Qualquer texto é spam.

antes custava uma sim; agora $0,015
C · SILÊNCIO & PONTE

c2 · Robô de saudação

Não repetir o template; pedir a pessoa certa.

regressão
C · SILÊNCIO & PONTE

c3 · "Fecha em R$ ••• que eu pago agora"

Ponte pro humano: nota + contexto + sugestão + "minutinho".

regressão
C · SILÊNCIO & PONTE

c4 · Pergunta fora do conhecimento

Escala com contexto + silêncio absoluto. Improvisar é falha grave.

regressão
D · TIMING — gatilhos [SISTEMA]

d1 · Tick 20min, mas o lead pediu 30

O prazo do lead manda: silêncio.

regra da operação real
D · TIMING

d2 · Tick 12h após "te confirmo ainda hoje"

Retomada leve, sem culpa, facilitando a decisão.

regra da operação real
D · TIMING

d3 · Tick 2h após elogio quente + sumiço

Retomar com valor novo; nunca "e aí, viu?".

regra da operação real

004 / baseline

A versão em produção contra o banco: 13/14

O marco zero honesto custou US$ 0,27. O agente estava mais forte do que parecia — silêncios, escalada e robô impecáveis — mas caiu exatamente onde o vendedor humano já tinha visto a conversa morrer na rua. E um probe passou nos checks escondendo um vício que só apareceu na leitura.

probegruporesultadoo lance do baselinecusto
a1-legal-e-morreescutaPASSpivotou pro negócio ("clientes chegam mais por...?")$0,051
a2-sem-dinheiroescutaPASScomo funciona em 1 frase + isolou a causa$0,015
a3-depende-da-propostaescutaFAILdespejou a tabela inteira de preço — ver seção 005$0,015
a4-preco-cedoescutaPASSsem número na primeira pergunta$0,015
a5-pergunta-objetivaescutaPASSdomínio e manutenção respondidos direto$0,016
b1-medo-de-golpeconfiançaPASS"Tá certíssimo de desconfiar" + caminho sem clique$0,012
b2-ja-fechei-com-outroconfiançaPASS c/ vício"Já chegou a começar com ele?" — ver seção 006$0,014
c1-rejeicao-secasilêncioPASSnota + silêncio deliberado$0,013
c2-robo-saudacaosilêncioPASScurto, humano, pediu a pessoa certa$0,014
c3-cliente-prontopontePASSponte completa + funil movido + "minutinho"$0,017
c4-fora-do-conhecimentopontePASSescalou com contexto + silêncio absoluto$0,015
d1-tick20mintimingPASSsilêncio — o prazo do lead não venceu$0,034
d2-tick12htimingPASSretomada leve + ofereceu marcar pela pessoa$0,018
d3-tick2h-sumicotimingPASSvalor novo, sem cobrar opinião$0,017

005 / a correção que importava

"Depende da proposta" não é pergunta de preço

O mesmo momento congelado — a lead elogiou, disse que não pode investir, ouviu o reframe de resultado e respondeu "Depende da proposta". À esquerda, o baseline. À direita, a versão treinada.

BASELINEFAIL
Elisa (persona)Depende da proposta
agente · baselineFunciona assim: o site já tá pronto na base, e fechando a gente ajusta o que você quiser e coloca no ar pra você. A condição hoje é R$ •.••• em até 12x de R$ •••, ou R$ •.••• à vista, pagamento único, sem mensalidade. Pra eu te falar se faz sentido mesmo pro teu momento, a trava aí é mais o valor total ou o caixa desse mês?
despejou a tabela inteira pra quem nunca pediu número — o preço vira a única régua da decisão e a pessoa esfria
APÓS O PLAYBOOKPASS
Elisa (persona)Depende da proposta
agente · treinadoQual o seu receio aí, Elisa? É mais prazo pra começar a pagar ou é o valor em si?
faz a pessoa dizer o critério — a oferta que já existe entra depois, encaixada no que ela trouxe
"Qual o seu receio? é prazo pra começar a pagar? é valor? eu quero pensar em uma proposta que mais faça sentido pra você"O lance real do vendedor humano, na conversa que originou o cenário — hoje anotado lance a lance na camada de casos do prompt

Bônus do processo: na primeira rodada da versão nova esse probe "falhou" com a resposta CERTA — o check exigia terminar em pergunta, e a mensagem humana de referência também termina em afirmação. O check estava errado, não o agente. O runner ganhou minQuestions e a lição ficou registrada: ginásio também quebra, e o processo precisa pegar isso.

006 / o que os checks não viam

Passou no teste, reprovou na leitura

O b2 do baseline passou em todos os checks — mas a leitura pegou o agente caçando brecha no concorrente. Por isso todo probe tem duas camadas: checks determinísticos E critérios pra leitura humana. O padrão flagrado virou check novo e regressão eterna.

BASELINEvício invisível
Carla (persona)Ah que legal! Mas semana passada mesmo eu fechei com um rapaz aqui que vai fazer o meu site
agente · baselinePoxa, aí foi no timing mesmo kkk Já chegou a começar com ele, ou ainda tá no comecinho?
sondagem do andamento = caçar brecha pra desbancar o concorrente — a pessoa sente
APÓS O PLAYBOOKPASS
Carla (persona)Ah que legal! Mas semana passada mesmo eu fechei com um rapaz aqui que vai fazer o meu site
agente · treinadoAh, boa! Parabéns pelo projeto então. Tomara que fique do jeitinho que você imaginou. De qualquer forma, deixo a versão que montei como amostra, e se um dia você quiser uma segunda opinião, pode me chamar tranquilo.
respeito + porta futura + nota e atividade de retomada no CRM

007 / a versão nova

O prompt ganhou endereço

A versão treinada não é um remendo — é o prompt reorganizado em 4 camadas que compilam num arquivo só (node cli/build-prompt.js <id>). Cada lição passa a ter casa: ajuste vira "adicionar um caso", não "mexer no prompt inteiro". Modelos grandes vão bem com muito contexto, desde que limpo.

00-nucleo.mdquase nunca muda
Identidade, missão, canal único, estilo. Princípio novo: "você vende resultado, não site" — todo mundo diz "legal" pra site bonito; o que fecha é a conexão site → cliente novo, na régua do negócio da pessoa. Opinião do site se convida UMA vez; depois, nunca mais se cobra.
10-conhecimento.mdfatos do negócio
Oferta, condições, prazos, funil do CRM. Novo: semântica dos gatilhos [SISTEMA] — mensagem de automação nunca é mensagem do lead; é o relógio acordando o agente pra decidir um movimento.
20-playbook.mdsituação → movimento
"Depende da proposta" ≠ pergunta de preço · "Já fechei com outro" (sem sondar; saída elegante) · Medo de golpe (validar cautela, verificação sem clique, ≤ 4 linhas) · Ticks 20min/2h/12h (o prazo do lead manda; entusiasmo+sumiço → valor novo; na dúvida, silêncio) · Número não pedido (quem se declarou sem dinheiro esfria com parcela cravada — conciliar no qualitativo).
30-casos.mdconversas exemplares
Exemplos de tom e movimento + uma conversa real anotada lance a lance como padrão-ouro: ler objeção + interesse na mesma leva, reframe resultado-condicional, fazer a pessoa dizer o critério, encaixar a oferta de sempre, recuo elegante no "me chama segunda".
14/14
sweep de confirmação — US$ 0,24
4/4
regressão de preço re-PASS após os ajustes pós-simulação
39 KB
prompt compilado de 4 camadas — grande e limpo

008 / simulação 1

A "liso": gostou de verdade, sem dinheiro este mês

Persona fiel à rua — e ela nunca fecha nesta conversa: o melhor desfecho possível é sair com um compromisso concreto de retomada + atividade registrada no CRM. Sucesso redefinido por cenário: contra esse perfil, vitória não é reunião marcada; é não queimar uma interessada. Na primeira rodada o agente cravou a parcela sem ela ter pedido número, e ela esfriou ("ah tá, vou pensar então") — virou regra de playbook. A rodada final, na íntegra:

template (automação)Oi, tudo bem? Meu nome é Matheus, estou começando agora um trabalho de criar sites pra negócios daqui. Encontrei a Elisa Interiores no Google Maps e montei uma primeira versão de site pra vocês, sem compromisso nenhum. Topa dar uma olhada e me dizer o que achou?
Elisa (persona)Oi Matheus, tudo bem!! Obrigada por se lembrar da gente. Pode me mandar o link do site pra eu dar uma olhada?
agenteAqui está: https://sites.4virtue.com/elisa-interiores Fiz com as fotos e avaliações que vocês já têm públicas. Me diz o que achou, principalmente o que você mudaria.
Elisa (persona)Uau, o site ficou incrível!! As fotos e avaliações ficaram bem destacadas, adorei a apresentação!! Estou sem caixa esse mês, então não consigo investir agora, mas queria entender como funciona o seu serviço. Vou salvar seu contato, obrigada!!
a leva clássica: elogio + objeção + interesse + despedida educada — o lance é responder ao INTERESSE
agenteQue bom que você curtiu, Elisa! Fico feliz de verdade. Funciona assim: o site já tá pronto, fechando a gente ajusta o que você quiser e coloca ele no ar em poucos dias. Posso te perguntar uma coisa? O ponto é mais o caixa desse mês mesmo, ou não é um momento pra investir agora de forma geral?
Elisa (persona)É os dois, o caixa apertou muito esse mês e ainda não estou pronta pra investir em um site agora.
agenteFaz sentido, Elisa. Quando pesa dos dois lados, o melhor é pensar num formato leve pra não virar mais uma pressão agora. Dá pra parcelar bem tranquilo e, se o aperto for esse mês, a gente consegue começar só no mês que vem. Topa marcar 30 minutinhos pra eu te mostrar direitinho e ver se faz sentido pra você?
conciliação SEM número cravado — a correção da rodada anterior funcionando
Elisa (persona)Estou bem pegada essa semana, sem tempo pra nada. Me chama de novo na segunda que a gente vê!
agentePerfeito, Elisa. Segunda eu te chamo então. Obrigada pelo retorno e boa semana aí!
"ObrigadA" — regra clara do prompt ignorada pelo modelo (lição L5, ver diário). Único defeito da conversa
Elisa (persona)Obrigada, Matheus! Boa semana pra você também!
BASTIDOR · CRM SIMULADO

O que ficou registrado

Funil movido pelos fatos; nota com a causa real da objeção a cada turno; e a peça-chave: atividade "Retomar com Elisa na segunda" com contexto completo — o compromisso não se perde.

DESFECHO

Padrão-ouro do cenário

"Me chama segunda" conquistado sem pressão, encerramento limpo em UMA mensagem. O teto possível com esse perfil — igual ao desfecho da conversa real que inspirou a persona.

009 / simulação 2

O "desconfiado-cru": três camadas de resistência

Jorge, 56, móveis sob medida, leigo, com medo de golpe e sem ver valor em site. A conversa precisa atravessar GOLPE → VALOR → PREÇO, nesta ordem. Na primeira rodada o agente respondeu o pedido de explicação com um folheto de 4 parágrafos (virou a regra das 4 linhas). Rodada final:

template (automação)Oi, tudo bem? Meu nome é Matheus, estou começando agora um trabalho de criar sites pra negócios daqui. Encontrei a JF Moveis Sob Medida no Google Maps e montei uma primeira versão de site pra vocês, sem compromisso nenhum. Topa dar uma olhada e me dizer o que achou?
Jorge (persona)não vou abrir esse link não amigo. teve um golpe desses aí esses dias e eu to desconfiado. se puder me passar o nome exato do site pra eu procurar no Google eu dou uma olhada.
camada 1 · GOLPE — a fala real de lead que originou o cenário
agenteTá certíssimo de ter esse cuidado, Jorge. Pode procurar por 4virtue no Google, que é o nome do meu trabalho. E pode conferir também que eu falei da JF Móveis Sob Medida daqui de Madureira, com foco em móveis de escritório sob medida e aquelas avaliações falando de preço justo. Se fizer sentido, depois você olha com calma e me diz o que achou.
Jorge (persona)olhei aqui no google, achei o 4virtue, parece legit. mas pra que eu preciso disso? meu serviço vem tudo de indicação.
camada 2 · VALOR — confiança recuperada; agora ele não vê por quê
agenteE indicação é bom demais mesmo, Jorge. Se teu nome já roda assim, é porque o trabalho de vocês é bom. O site não entra pra substituir isso, entra pra somar. Muita gente que recebe indicação vai no Google antes de chamar, só pra ver melhor o trabalho e passar confiança. Hoje quanta gente te acha pelo Google?
Jorge (persona)na verdade quase ninguém me acha no google, só quem já conhece. não sei se isso vai mudar muito.
agenteJusto. Sozinho ele não faz milagre mesmo. A ideia é outra: quem tá no Google procurando móvel sob medida já tá querendo comprar, não só olhando. O site ajuda essa pessoa a confiar mais rápido em vocês quando te encontra. Se começasse a chegar 1 orçamento bom por mês por esse caminho, já faria diferença aí?
honestidade ("sozinho não faz milagre") + resultado na régua DELE (1 orçamento/mês) — sem jargão
Jorge (persona)quanto custa isso?
camada 3 · PREÇO
agenteFunciona assim: o site já tá pronto, fechando a gente ajusta o que você quiser e coloca no ar. Sobre valor, deixa eu te entender rapidinho antes pra te falar do jeito que faz mais sentido pra vocês. Hoje o tipo de projeto que você mais gosta de fechar aí é mais residencial ou escritório?
Jorge (persona)me diz o preço direto, sem enrolação.
agenteClaro: R$ •.••• em até 12x de R$ •••, ou R$ •.••• à vista. Pagamento único, sem mensalidade. No teu caso, Jorge, um projeto a mais já pode pagar isso com folga. Bora marcar 30 minutinhos pra eu te mostrar como isso pode funcionar pra vocês?
primeira pergunta → entender; insistência → transparência total. A regra dura do preço, dos dois lados
⏹ conversa cortada pelo teto de orçamento da simulação ($0,20) — condução saudável até o corte

010 / diário de lições

7 lições — cada uma com causa e endereço

O coração do processo: falha → triagem em UMA causa (repertório · ginásio quebrado · limite do modelo) → mexe no lugar certo → vira regressão pra sempre. Remendo de prompt sem triagem é como o time perde o controle do agente.

repertório

L1 · Tabela despejada no "depende da proposta"

Baseline, probe a3 (e a rua, na conversa real). Virou movimento de playbook: perguntar o receio em alternativas. Regressão: probe a3.

repertório

L2 · Sondagem do concorrente

"Já começou com ele?" passou nos checks, caiu na leitura. Playbook: respeitar sem sondar. Checks endurecidos no b2.

repertório

L3 · Número não pedido esfriou a liso

Parcela cravada pra quem se declarou sem dinheiro → "vou pensar". O vendedor humano venceu esse lance SEM número. Playbook + exemplo reescrito.

repertório

L4 · Explicação virou folheto

Jorge pediu "me explica por aqui" e levou 4 parágrafos. Playbook do golpe: ≤ 4 linhas e UMA pergunta — folheto assusta mais que o link.

limite do modelo

L5 · "Obrigada" ⚠

A regra "sempre obrigado" existe, é clara, e o modelo (reasoning low) ignorou. Nenhum remendo de prompt — registrado como evidência. Se acumular: A/B com reasoning medium (14 probes × 2 setups ≈ US$ 0,60). É assim que upgrade de modelo vira decisão com dado, não achismo.

ginásio quebrado

L6 · ICPs encerravam cedo demais

A liso "deu tchau" sem esperar resposta; o Jorge saiu pra "verificar e voltar". Personas corrigidas: a leva não encerra; a verificação é na hora.

ginásio quebrado

L7 · Check puniu o lance certo

Resposta idêntica ao gabarito humano falhou no "termina em pergunta" — a mensagem real também termina em afirmação. Runner ganhou minQuestions.

011 / a verba

US$ 1,33 gastos, US$ 0,67 de saldo

Cada centavo medido por chamada e acumulado num ledger com teto duro de US$ 2 — atingiu, nada mais roda. Treinar barato não é luxo: é o que permite iterar sem medo.

baseline · $0,265 iteração a3+b2 · $0,079 sweep confirmação · $0,243 regressão preço · $0,156 3 rodadas de sims · $0,582 saldo · $0,675

Pra escala: a rodada anterior do projeto, feita só com simulações completas, custou US$ 1,87. Com a pirâmide, duas versões inteiras de prompt foram medidas, corrigidas e re-medidas por US$ 1,33 — e o sweep completo de regressão agora custa ~US$ 0,25 pra sempre.

012 / o ciclo daqui pra frente

A rua passa a ser o professor

Próxima fase: modo sombra. Em produção o agente não envia nada — a resposta dele vira nota privada, e o vendedor humano aprova, edita ou ignora. Como o agente é sem-estado, o histórico real é a memória dele: ele nem percebe. Cada edição humana vira um probe novo no banco, e o gate de ativação é objetivo: repasse sem edição em N conversas seguidas. Risco zero, e a rua treinando o agente de graça.

O ginásio encolheu, a régua ficou mais dura, e cada lição da rua agora custa centavos pra nunca mais ser esquecida.SPARRING · RELATÓRIO DE TREINO · 4VIRTUE

Tudo que aparece aqui — probe runner, checks, ledger, build de camadas, CLI de simulação, schemas de ICP e ferramenta — está no repositório, MIT, pronto pra você apontar pro SEU negócio.

github.com/MatheusSimonaci/sparring conhecer o Sparring