Skip to content

feat: piloto 2 do autoresearch — otimizar os templates de prompt (precedent + skill_router) contra o bench (eval = pass-rate gate + tokens) #90

Description

@wesleysimplicio

Contexto

Segundo piloto da skill simplicio-autoresearch (wesleysimplicio/simplicio-loop#95). Este repo é o fit mais natural do ecossistema: o produto é literalmente "prompt afiado medido em bench" (+39/+51/+58 pts, 99% pass-rate são os números de marketing do próprio README) — e o harness de avaliação já existe: bench/cases.json + bench.py logando tokens_estimated por caso em runs.jsonl.

O autoresearch fecha o ciclo: em vez de afiar o prompt na mão e medir depois, o loop muta o template e o bench decide o que sobrevive.

Setup do run

  • Alvos (um run por alvo, começar pelo primeiro):
    1. Bloco de precedent (simplicio/precedent.py::build_precedent_block() — hand-formatted, flagado como follow-up no PR feat: add TOON encoder for LLM prompt payloads #87)
    2. Bloco do skill_router (simplicio/skill_router.py)
    3. Template principal (simplicio/prompt.py::build_prompt())
  • Eval (composto, nessa ordem):
    1. GATE: pass-rate do bench não regride vs baseline (bench/cases.json, mesmo modelo, mesma seed/config) + ruff check + testes unitários verdes — regrediu → revert.
    2. SCORE: com pass-rate mantido, menor tokens_estimated médio por caso vence (estimador ÚNICO e rotulado — pré-requisito da unificação de estimadores do feat: TOON no caminho handoff real (código mergeado nunca executa) + A/B no bench + ledger de usage (follow-up #85) #88).
  • Validation set fixo: subconjunto fixo de bench/cases.json (não mudar durante o run; separar um holdout para verificação final anti-overfit).
  • Modelo do bench: preferir o ladder local (é o caso de uso do produto — sub-4B a 74%); os números valem para o modelo usado, rotular.
  • Caps (yool §11): branch isolado, máx. iterações/orçamento, squash final.

Critérios de Aceitação

  • Run 1 (precedent block) completo com log de iterações como evidência
  • Pass-rate no holdout ≥ baseline (verificação anti-overfit independente do loop)
  • Redução de tokens documentada em bench/results_autoresearch.{json,md} ao lado do A/B TOON do feat: TOON no caminho handoff real (código mergeado nunca executa) + A/B no bench + ledger de usage (follow-up #85) #88
  • Nenhum commit vermelho; PR final com 1 commit squashed
  • simplicio.savings-event/v1 por run (source=autoresearch)
  • Se o template otimizado divergir do estilo documentado em PATTERNS/docs, atualizar a doc no mesmo PR (o template é contrato)

Dependências

  1. feat: TOON no caminho handoff real (código mergeado nunca executa) + A/B no bench + ledger de usage (follow-up #85) #88 (unificar estimadores + A/B baseline — sem estimador único o score é ruído)
  2. feat: skill simplicio-autoresearch — loop evolutivo de otimização por métrica (Karpathy autoresearch), com guardrails yool, eval composto anti-Goodhart e receipt de savings por run simplicio-loop#95 (a skill com guardrails)
  3. Recomendado: wesleysimplicio/simplicio-runtime#2774 (ladder local como motor de mutação barato)

Refs: #85, #87, #88, wesleysimplicio/simplicio-loop#95, wesleysimplicio/simplicio-runtime#2775.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions