Pular para conteúdo

SotuHire v1.9.7 — AI Evaluation, Tracing, Human Feedback & Outcome Learning

A v1.9.7 torna a camada de IA mensurável e auditável sem transformar métricas em decisões automáticas. A release adiciona 16 tarefas registradas, AiRunStore 2.0, golden datasets multiárea, benchmark reprodutível, feedback humano, Outcome Learning e o painel /ai-quality.

Destaques

  • traces seguros com provider/modelo solicitado e usado, prompt, fallback, schema, latência, tokens e custo quando disponíveis;
  • retenção configurável, sem inputs/outputs completos por padrão;
  • 12 fixtures fictícias cobrindo 12 domínios e 17 categorias adversariais;
  • métricas de estrutura, extração, evidência, calibração, utilidade, operação e dedupe;
  • comparação de providers com regra explícita de tamanho de amostra;
  • feedback criável/removível e extensão 0.9.3 com payload mínimo;
  • outcomes manuais e associações exploratórias, sempre sem causalidade;
  • defesa em camadas contra prompt injection;
  • fallback local preservado.

Dados e migration

A migration 4 amplia ai_runs e cria ai_feedback, ai_benchmarks, ai_benchmark_results, outcome_events e outcome_metrics. A migração continua idempotente e deve seguir dry-run/backup/apply. Nenhuma base pessoal foi migrada automaticamente durante a preparação da release.

Segurança

Chaves antigas não foram usadas. Testes externos aceitam somente variáveis temporárias específicas e fixtures fictícias. Nenhuma chave deve entrar em Git, frontend, extensão empacotada, SQLite, logs, screenshots ou assets da release. Os fluxos de authenticated-browser permanecem inalterados.

Resultados de validação

O benchmark local executou 12 casos fictícios: schema validity 1,00, evidence precision 1,00 nos casos com referências mensuráveis, unsupported claim/hallucination rate 0,00, p50 1 ms e p95 26 ms. Required field completion foi 0,1667; o número é informativo e não bloqueante porque oito tarefas locais retornam defaults vazios seguros quando a extração específica não é suportada pela fixture.

O release-smoke real registrou 12 casos por provider:

Provider/modelo Schema Provider errors Unsupported claims Latência p50/p95 Tokens in/out Custo
local/local 1,00 0,00 0,00 1/21 ms não aplicável não aplicável
Gemini/gemini-2.5-flash 0,75 0,25 0,00476 7.374/12.998 ms 2.620/4.950 não estimado
OpenAI/gpt-4.1-mini 0,00 1,00 0,00 sem outputs válidos 6.302/6.726 ms não disponível não estimado

Gemini produziu structured output válido no teste opt-in e em 9/12 casos do smoke. OpenAI foi realmente chamada, mas a conta/credencial temporária retornou HTTP 429; os testes foram marcados como xfail explícito e nenhum baseline OpenAI foi criado. O baseline Gemini é indicativo e permanece abaixo do alvo de schema 0,98. Custo não foi inventado: ficou null porque o runtime não possui tabela confiável de preço.

Confidence calibration está implementada e coberta por testes determinísticos, mas não foi agregada no smoke externo porque as saídas comparáveis não forneceram labels de confiança suficientes. O teste A/B local de política cobre os cenários sem Perfil, Perfil confirmado, Perfil+RAG e itens não confirmados; o cenário D mantém taxa de promoção de item não confirmado em 0,00 na fixture controlada.

Assets capturados com dados fictícios incluem resumo, providers, prompts, benchmarks, feedback, outcomes, privacidade e feedback da extensão. A suíte Python final passou com 505 testes, 4 skips opt-in e cobertura total de 85% (17.286 statements); Ruff, Pyright, MkDocs strict, compileall, frontend unit/lint/typecheck/build, E2E padrão e cross-browser também passaram. O health check de uma base temporária migrada ao schema 4 ficou verde; a base pessoal permaneceu intencionalmente no schema 3 e não foi alterada automaticamente.

Limites e pendências

  • custo permanece ausente quando o provider não informa uso suficiente ou não há tabela confiável configurada;
  • qualidade por domínio precisa de amostras humanas reais antes de comparação conclusiva;
  • Ollama/LM Studio/OpenAI-compatible local permanece preparado como evolução futura, sem adapter novo nesta release;
  • LLM-as-a-judge não é requisito e não decide release.