
1.393 agentes refatoram repositório Python de 1 milhão de linhas
A tarefa
A Nous Research vinha adiando uma limpeza profunda do Hermes, seu agente de código aberto, porque tiraria engenheiros de recursos e correções de bugs. Em setembro, o repositório tinha mais de um milhão de linhas de Python fora de testes, e o arquivo gateway/run.py sozinho tinha 34.847 linhas. Em 2 de setembro, Teknium pediu ao próprio Hermes Agent que fizesse a refatoração.
Como funcionou
A execução principal durou cerca de dezenove horas ativas e despachou 1.393 subagentes, chegando a 218 simultâneos. Depois de uma falha (o token de autenticação do provedor expirou aos cinquenta minutos, encerrando a execução), um diagnóstico em sessão separada permitiu retomar o trabalho; os commits dos trabalhadores sobreviveram. Após um reinício, uma sessão de continuação e duas rodadas de revisão da comunidade, o PR foi mesclado em 4 de setembro, reduzindo o Python fora de testes em 34,4%.
O orquestrador dividiu o código em 36 grupos não sobrepostos e preparou instruções escritas com base no objetivo de Teknium e nas lições acumuladas. Os trabalhadores usaram git worktrees, com briefs que especificavam o código a simplificar, interfaces a preservar e verificações antes de cada commit. Alguns delegaram novamente, chegando a três níveis abaixo do agente original, que coordenava sem editar código. Tudo rodou em um único processo Python em um desktop i7 com 64 GB de RAM, com a inferência feita remotamente pelo Claude Fable 5.1.
Autoaprimoramento por skills
Teknium usa o Hermes diariamente para desenvolver o próprio Hermes: o agente registra automaticamente o que funciona e atualiza suas skills quando corrigido. A skill hermes-agent-dev, construída nesse dia a dia, acumulava instruções sobre preparar PRs, evitar atalhos e verificar mudanças - como reproduzir falhas no HEAD limpo de origin/main para checar se o erro é preexistente. Essa skill é distribuída aos outros engenheiros, que instalam em suas próprias instâncias do Hermes.
Resultados e custos
O custo estimado de modelo foi de cerca de US$ 19.300 na execução principal, ou cerca de US$ 25 mil com as sessões de continuação, excluindo revisão humana. A estimativa manual variava de US$ 150 mil a US$ 1,8 milhão, para uma equipe pequena durante dois meses a dois anos.
Métricas antes/depois: linhas fora de testes caíram de 1.063.826 para 698.363; arquivos com mais de 5.000 linhas, de 37 para 6; funções com mais de 300 linhas, de 192 para 2; a maior cadeia if/elif, de 92 para 9 ramos; gateway/run.py, de 34.847 para 5.512 linhas.
Em uma simulação de 4.000 buscas de símbolos, o custo médio de tokens por busca caiu de 2.218 para 993, e buscas que exigiam janela adicional de leitura, de 628 para 184. A mediana, porém, subiu: com menos comentários, janelas fixas de linhas contêm código mais denso. Os autores ressalvam que mediram custos de busca, não agentes completando tarefas de engenharia. Houve também custos negativos: mais módulos e dependências de importação, alguns entry points mais lentos para importar e seis arquivos ainda acima de 5.000 linhas.
Regressões e lições
Revisores capturaram regressões que os testes existentes não pegaram: nomes públicos removidos por não terem chamadores internos, embora plugins externos pudessem importá-los, e uma reescrita automatizada de chamadas suppress() que alterou o tratamento de exceções em cerca de 65 pontos. Corrigidos antes do merge, com mais ajustes depois.
A escala revelou problemas no próprio Hermes: cerca de trinta cópias do Pyright em worktrees separados consumiam cerca de 8,7 GB; uma mudança posterior fez os worktrees compartilharem um servidor único. O repositório ganhou diretrizes de tamanho de arquivo, complexidade de funções e alocação de novo comportamento, além de um check que sinaliza remoção de nomes públicos e testes. As skills de Teknium foram atualizadas automaticamente com as lições, compartilháveis com o time - no total, cerca de 1% do custo e do tempo estimados para o trabalho manual.