>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
TypeScript

Como Fazer um Agente de IA de Terminal Otimizar Seu Código Infinitamente

result

Pense em como você normalmente acelera testes ou reduz o bundle do frontend. Você muda algumas linhas no config, executa o build, verifica os segundos no console. Mais lento — você reverte. 5% mais rápido — você commita e tenta a próxima ideia maluca. Esse processo consome horas de trabalho rotineiro, mesmo sendo essencialmente um ciclo mecânico de testes de hipóteses.

Andrei Karpathy recentemente demonstrou o conceito de experimentos autônomos no repositório autoresearch. O desenvolvedor davebcn87 levou essa ideia adiante e lançou pi-autoresearch — uma extensão para o agente de IA de terminal pi. A extensão delega a otimização rotineira para a rede neural: o agente formula uma ideia, faz alterações nos arquivos, mede o resultado, salva as descobertas bem-sucedidas e reverte as regressões.

pi-autoresearch

Como funciona o ciclo autônomo

A ideia inteira se baseia em uma regra simples: tente uma ideia, meça, salve em caso de sucesso, descarte em caso de falha.

O agente trabalha diretamente no seu repositório. Quando você inicia uma sessão, a extensão cria uma pasta separada .auto/ na raiz do projeto. Ela armazena todos os arquivos de trabalho:

  • .auto/prompt.md — um documento descrevendo a tarefa atual, as regras de medição e uma lista do que o agente já tentou.
  • .auto/measure.sh — um script bash de benchmark que retorna uma string com um valor métrico numérico.
  • .auto/log.jsonl — um log estruturado de cada tentativa com o hash do commit e o status.
  • .auto/checks.sh — um script adicional para verificar testes e tipos, para que o agente não quebre a lógica em busca de números bonitos.

Quando a janela de contexto do modelo transborda ou o agente reinicia, ele simplesmente relê .auto/prompt.md e o final do log. O histórico inteiro de experimentos não se perde quando o contexto é comprimido.

pi install npm:pi-autoresearch

Após a instalação, basta executar o skill:

/skill:autoresearch-create

O agente fará algumas perguntas de esclarecimento sobre o objetivo, arquivos-alvo e comando de execução, ou descobrirá tudo sozinho a partir do contexto do projeto. Em seguida, ele capturará as métricas base e mergulhará imediatamente em um loop infinito.

Combatendo ruído aleatório nas medições

Qualquer benchmark está sujeito a flutuações. Processos do SO em segundo plano, aquecimento da CPU ou atrasos de rede podem criar a ilusão de ganho de velocidade onde não existe nenhum.

Para filtrar falsos positivos, o pi-autoresearch calcula uma pontuação de confiança baseada no desvio absoluto mediano (MAD). Após três execuções, a extensão começa a comparar a melhoria alcançada contra o nível de ruído de toda a série:

  • Valor ≥ 2.0x é destacado em verde — o ganho supera perceptivelmente o ruído de fundo.
  • Faixa 1.0–2.0x é mostrada em amarelo — há um ganho, mas está na borda da margem de erro.
  • Valor < 1.0x brilha em vermelho — o resultado está inteiramente dentro do erro estatístico.

A ferramenta não força uma decisão de reversão no agente; apenas sugere refazer uma execução questionável.

Prevenindo quebras através de backpressure

Redes neurais adoram fazer gambiarras. Se você pedir ao agente para reduzir o tempo de execução dos testes, há uma forte tentação de simplesmente deletar metade dos arquivos de teste ou inserir stubs.

Para evitar essas artimanhas, .auto/checks.sh contém verificações obrigatórias de correção:

#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck

O script de verificação é executado após cada medição bem-sucedida. Se os testes falharem ou a verificação de tipos quebrar, o experimento é imediatamente marcado como falho (checks_failed), e todas as alterações no branch de trabalho são revertidas. O tempo de execução das verificações em si não é adicionado à métrica principal de velocidade.

Organizando o caos em branches limpos

Durante um ciclo de várias horas, o agente cria dezenas de commits, alterando constantemente diferentes arquivos. Mesclar esse log diretamente no branch principal seria um pesadelo para o revisor.

Para resolver esse problema, existe um comando:

/skill:autoresearch-finalize

O skill analisa .auto/log.jsonl, agrupa as alterações bem-sucedidas em blocos lógicos independentes e propõe uma estrutura para sua aprovação. Após a confirmação, a ferramenta cria branches limpos separados a partir do commit inicial. Cada branch contém estritamente um conjunto lógico de alterações com a descrição do ganho na mensagem do commit, facilitando a revisão e o merge separadamente.

Monitoramento e hooks

Você pode monitorar o progresso diretamente no terminal ou através do navegador:

  • O widget acima do editor mostra constantemente uma tabela de resultados.
  • A combinação de teclas Ctrl+Shift+F abre um dashboard de terminal em tela cheia com uma lista de tentativas.
  • O comando /autoresearch export gera uma página web interativa com gráficos de dinâmica das métricas.

Se o ciclo básico não for suficiente, você pode colocar arquivos executáveis before.sh e after.sh no diretório .auto/hooks/. Eles são acionados nos limites das iterações. Através deles, você pode configurar o envio de notificações do sistema para o desktop, busca de ideias em documentação externa ou manutenção de um diário de treinamento. O script recebe contexto via entrada padrão em formato JSON, e sua saída stdout é passada ao agente como uma dica de sistema.

Pontos de atenção

Ciclos autônomos podem esgotar rapidamente seu saldo de API se deixados sem supervisão durante a noite. Faz sentido definir um limite de iterações logo no arquivo .auto/config.json:

{
  "maxIterations": 30
}

O agente parará assim que completar trinta experimentos.

A ferramenta funciona bem em tarefas com resultados numéricos claramente mensuráveis: otimizar o tamanho do build do webpack, acelerar a execução de testes unitários, ajustar hiperparâmetros para treinamento de modelos pequenos ou ajustar pontuações do Lighthouse. Se você já usa o agente de console pi, o projeto definitivamente vale a pena testar em uma tarefa real de otimização.

Projetos relacionados