1

oh-my-agent: runs que falham viram testes de regressão de skills

Uma run de agent que falhava terminava com um log e um dar de ombros. Nesta semana o oh-my-agent fechou esse ciclo: uma falha pode ser capturada como incidente, promovida a fixture de uma skill e entregue a um otimizador que edita a skill sob um orçamento de dispatches. Foram 131 commits, e a CLI saiu da versão 14.7.11 para a 14.13.1.

O que mudou

  • Captura e promoção de incidentes: oma harness incident scan lista runs com falha, bloqueadas ou parciais que nenhum incidente referencia. oma harness incident promote deriva uma fixture de regressão para a skill que o agent usou e só a admite se ela reprovar o output de falha registrado. oma harness feedback --scan-runs encadeia captura, promoção e otimização. Runs finalizadas agora guardam os últimos 64 KiB do log do runner, para que a fixture seja validada contra o que o agent realmente disse.
  • Evolução de skills com orçamento: oma skill optimize só aceita uma edição quando nem o split de validação nem o de treino regridem e pelo menos um melhora. constitution.budget.max_dispatches_per_run agora é aplicado: a chamada que estouraria o limite é recusada e a promoção fica bloqueada. Toda edição aplicada registra sua linhagem, e oma skill promotions e oma skill rollback leem esse registro.
  • Meta-otimização: oma skill meta-optimize trata o próprio prompt do otimizador como candidato. A promoção exige um intervalo de 95% por bootstrap pareado (com seed) acima de zero e pelo menos três pares. O primeiro procedimento adotado superou o atual em 0.27 na média, com intervalo [0.04, 0.54], e acrescentou três regras de grounding para edições propostas de skills.
  • Eval de roteamento: oma skill eval --routing mostra ao modelo a descrição de todas as skills instaladas e registra se ele escolhe a skill alvo, uma vizinha ou nenhuma. Isso separa "o corpo da skill ajuda" de "a skill é selecionada".
  • Guard de code intelligence: um hook PreToolUse nega Grep, Glob e buscas recursivas no shell (rg, grep -r, find -name, git grep) enquanto houver um provider configurado. A mensagem de negação indica qual ferramenta do Serena usar. OMA_CI_ALLOW_NATIVE=1 é a saída de emergência, e providers.code_intelligence_guard: off desativa o guard.
  • Avisos no início da sessão: o snapshot de estado agora anuncia promoções de skills e procedimentos uma única vez, em uma linha por promoção, com a edição e os ganhos. oma doctor ganhou uma nota de Evolution.
  • Relatórios para o Orca: agents filhos disparados pelo oma reportam seu ciclo de vida ao Orca. O Qwen ganhou definições nativas de agent.

O que foi corrigido

  • O job semanal de cross-post falhava em toda execução depois que model_preset passou para auto. O claude --output-format json encapsula a resposta em um envelope, e runAgent devolvia esse envelope cru. Agora ele extrai o caminho response_jq configurado e cai para o stdout bruto nos vendors que não têm um.
  • Jobs do SO registrados antes da renomeação do comando continuavam chamando oma schedule:run <id> e falhavam a cada disparo, enquanto schedule list os mostrava como sincronizados. A grafia antiga agora é aceita quando o SO a invoca, a detecção de drift ganhou o estado stale, e oma schedule sync e oma update reescrevem os registros desatualizados.
  • cd $HOME && oma link claude tratava o HOME como um projeto e reescrevia os comandos de hook globais do Claude. link e update agora recusam o modo projeto a partir do HOME (#788).
  • O judge de skills lia PASS/FAIL do envelope cru do Claude, onde "failed":0 aparecia antes do veredito, então todo veredito virava FAIL. Agora as saídas são extraídas do envelope antes da pontuação, e as gravações antigas são descartadas.
  • --repeats 3 virava NaN porque um parseInt puro recebia o valor anterior como radix. Valores de opções variádicas (--skill a b) não disparam mais o guard de posicional solto.
  • Projetos sincronizados antes da v11 ainda rodavam o próprio Serena a cada sessão. A migration 029 reescreve esses launchers para a entrada compartilhada oma bridge, na forma nativa de cada vendor.
  • oma update respeita uma lista explícita de vendors em vez de detectar a partir dos diretórios do projeto.

O que melhorou

  • Uma época de otimização com quatro candidatos levava quarenta minutos porque cada arm e cada judge rodavam em série. Os dispatches reais agora passam por um pool limitado (OMA_SKILL_EVAL_CONCURRENCY, padrão 4), e a meta-otimização sobrepõe as runs internas entre skills (OMA_META_CONCURRENCY, até 4). O timeout por dispatch é de 180s, com uma nova tentativa em caso de timeout.
  • As fixtures testam o que o corpo da skill afirma. O conjunto do oma-debug foi reescrito depois que a primeira versão marcou 89% sem a skill. As doze novas marcam 25% de baseline e 100% com a skill. O oma-refactor foi de 16.7% para 100% do mesmo jeito. oma-docs, oma-scm e oma-qa também têm, cada uma, doze fixtures alinhadas ao corpo da skill.
  • A primeira edição verificada pelo loop entrou no oma-docs: held-in de 55.6% para 77.8%, com a validação held-out inalterada em 100%.
  • O custo ficou visível. As runs reportam chamadas de modelo por melhoria verificada, então um procedimento que ganha mais gastando mais aparece como tal.
  • O Gortex saiu e a code intelligence voltou para a bridge do Serena. Ele saturava a CPU reaplicando patches em um índice de 4 GB e não expunha nenhum limite.
  • Os arquivos de skills e de prompts compartilhados foram enxugados para cortar regras incondicionais de preflight, pontuação e aprovação. Os guias de incidentes saíram nos 11 locales da documentação.

Instalação

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex

O oh-my-agent é feito para times que orquestram mais do que escrevem prompts. O próximo passo é rodar o loop de feedback em agendamento sobre runs reais de projetos, para que as edições de skills cheguem com a evidência anexada.

Texto original (em ingles): https://dev.to/gracefullight/oh-my-agent-failed-runs-now-turn-into-skill-regression-tests-572m

https://github.com/first-fluke/oh-my-agent

Carregando publicação patrocinada...