Runbook de operação e reprodutibilidade¶
Recomendado para leitura prévia
- Protocolo de avaliação — desenho experimental, bateria e critérios de desfecho.
- Inferência e prompts — hiperparâmetros, prompts e schema
context.json. - Métricas e fórmulas — schema
metrics.jsone fórmulas. - Contratos MCP v1 — versão de contrato MCP.
Evidências fora do site gerado
O runbook descreve o processo; os artefatos brutos de cada corrida permanecem em evidence/
e são publicados por cópia no site apenas para consulta.
Convenção de identificador¶
Formato obrigatório:
run-YYYYMMDD-HHMM-<id-curto>
Exemplo: run-20260418-1540-7f3c.
Metadados obrigatórios por execução¶
Registrados em context.json (schema: Schema context.json v1):
Identificação e campanha
runIdcampaignId(mcpoubaseline-static)provider(googleouopenai)modelVersionseedcommitHashdatasetVersioncontractsVersiontoolBudget(limite máximo de chamadas por sessão; 10 no MCP, 0 no baseline)
Inferência e prompts (v1)
promptVersion(v1)inferenceConfigVersion(v1)inferenceConfig— objeto comtemperature,temperatureSupported,topP,maxOutputTokenspromptArtifacts— caminhos repo-relative dos templates usadospromptArtifactsHash— SHA-256 dos quatro arquivos.mddo manifesto v1
Detalhes e política (temperature=0 no Gemini): Inferência e prompts.
Exemplos: Exemplo context baseline v1, Exemplo context MCP v1.
Estrutura de evidência¶
Pasta por corrida:
evidence/<runId>/
Arquivos mínimos:
session.jsonl(trilha completa: pergunta → tools → metadados → SQL(s) → desfechos)metrics.json(indicadores por corrida; ver schema abaixo)context.json(metadados de reprodutibilidade)summary.md(resultado descritivo da corrida)
Schema mínimo metrics.json¶
Modo MCP — campos obrigatórios:
| Campo | Tipo | Descrição |
|---|---|---|
runId |
string | Identificador da corrida |
campaignId |
string | mcp |
modelVersion |
string | Ex.: gpt-5.4-nano, gemini-3.5-flash |
outcome |
string | Uma de: success, partial_success, syntax_error, structural_error, execution_error, budget_exceeded |
toolCalls |
integer | \(k_i\) |
latencySec |
number | \(L_i\) (segundos) |
n_in |
integer | Tokens de entrada |
n_out |
integer | Tokens de saída |
cost_usd |
number | \(C_i\) (fórmula FinOps) |
sqlCount |
integer | Número de SQLs gerados (\(\leq 5\)) |
traceComplete |
boolean | Trilha completa conforme protocolo 1:N |
Modo baseline — campos obrigatórios:
| Campo | Tipo | Descrição |
|---|---|---|
runId |
string | Identificador da corrida |
campaignId |
string | baseline-static |
modelVersion |
string | Modelo do provedor |
gabaritoMatch |
boolean | Resposta agregada = gabarito |
Exemplos JSON completos: Métricas e fórmulas.
Trilha session.jsonl (1:N)¶
Cada linha ou bloco deve permitir reconstruir:
- Pergunta original
- Sequência de tool calls MCP
- Metadados consultados
- Lista de SQLs (\(n_i \leq 5\))
- Desfecho por statement e desfecho agregado \(o_i\)
Checklist de reprodutibilidade¶
- Commit limpo e registrado (
commitHash). - Versão do contrato MCP fixada (
contractsVersion). - Dataset fixo e versionado (massa PS de 92 tabelas; ver
schema-massa-teste.md). - Seed explícita.
- Modelo,
provider,promptVersioneinferenceConfigregistrados (temperature=0no Gemini). -
promptArtifactsHashcalculado e conferido contra templates em Manifesto de prompts v1. - Política de tool budget registrada (
toolBudget). -
metrics.jsonpreenchido conforme modo (MCP ou baseline). - Evidências salvas em pasta da corrida.
Política de retenção¶
- Nunca sobrescrever evidências de corrida.
- Correções devem gerar nova corrida com novo
runId.
Campanha comparativo simples (baseline-static)¶
Execução manual no ambiente Google (gemini-3.5-flash) na campanha v1, antes do modo MCP. Sem tools MCP;
esquema via DDL estático.
Esquema no prompt: Schema massa de teste (92 tabelas MySQL).
Registrar commitHash do código-fonte do artefato e hash ou versão do arquivo DDL em datasetVersion / notas da campanha.
Bateria: Bateria de 30 perguntas +
Gabarito da bateria (batteryVersion v1, revisão
aprovada).
Checklist pré-voo (baseline-static)¶
- Auditoria de executabilidade: executar as 30 colas em
gabarito-bateria-v1.mdcontramassa_teste_laboratorio; registrar em § Auditoria do mesmo arquivo; só prosseguir se 30/30 OK. - Bateria e gabarito aprovados (
9985067). -
DDL offlineversionado e anexado ao prompt de cada corrida. -
campaignId:baseline-static;toolBudget: 0 (sem MCP). -
modelVersionfixogemini-3.5-flash;provider:google;seedexplícita por campanha. -
inferenceConfig.temperature: 0;maxOutputTokens: 4096 (ver Inferência e prompts). - Templates de prompt v1 congelados;
promptArtifactsHashregistrado em cadacontext.json. - 30 perguntas = 30 corridas na campanha v1 (Gemini-only).
- Gabarito \(G_i\) disponível para classificar
gabaritoMatch.
Registro consolidado¶
Preencher Métricas baseline v1 — uma linha por corrida:
| Coluna | Descrição |
|---|---|
run_id |
Identificador único da corrida |
question_id |
Q01--Q30 |
model_version |
Campanha v1: gemini-3.5-flash |
provider |
Campanha v1: google |
gabarito_match |
true / false |
notas_autor |
Observações opcionais |
Agregados (\(A_{\mathrm{gab}}\)) calculados conforme Métricas e fórmulas e incorporados ao Cap. 4 após a coleta.
Limitação D12¶
O DDL integral no prompt aumenta o contexto de entrada; declarar como ameaça à validade interna na metodologia (Cap. 4).
Recomendado para leitura posterior
Seguinte: Operação — ciclo de corrida, incidentes e governança.