1

Quando o sandbox vale mais que o modelo: um experimento com expressões JavaScript e cascata de agentes

O problema começou com um comportamento sutil que só aparece quando você roda milhares de testes automatizados. Em nosso conjunto de tarefas difíceis (hard set), tínhamos uma cascata de quatro agentes tentando resolver questões de lógica e código. O gargalo não era a inteligência do modelo, mas a validação da resposta. A arquitetura previa que, se a questão contivesse uma expressão JavaScript (como parseInt(0.0000005) ou [10, 1, 3].sort()), um micro-agente copiaria essa string exata e um sandbox a executaria para validar o valor. Se o valor bater, a cascata parava e retornava a resposta.

O defeito estava na camada de cópia. O micro-agente, ao invés de apenas extrair a string da pergunta, usava o LLM para "entender" a tarefa e respondia à pergunta diretamente. Em hard-qa-parseint, o modelo viu parseInt(0.0000005) e respondeu "0". Em hard-qa-sort-js, respondeu "[1, 3, 10]". Como a verificação exige que a resposta do agente copie a expressão verbatim na pergunta para ativar o sandbox, o mecanismo de validação nunca rodou. A cascata estava "cega" para erros nesses casos específicos. Nas 8 rodadas registradas, a cascata errou parseInt em 6 vezes e sort em 2, simplesmente porque o LLM "alucinou" a resposta correta em vez de fornecer o código para o sandbox rodar.

Decidimos testar uma correção radical: remover o modelo do processo de extração. Em vez de pedir ao LLM para copiar, implementamos um parser


Commit com a medição: https://github.com/dheiver2/tessera/commit/4f1971c7c9d333e74f8ff992e61f2300175dc400

Carregando publicação patrocinada...