pi-autoresearch: open source que generaliza a ideia de “experimentos autônomos com IA” de Karpathy
(github.com/davebcn87)Resumo em uma linha
Tentar uma ideia → medir → se melhorar, manter; se não, descartar → repetir para sempre.
pi-autoresearch é uma extensão do agente de codificação com IA para terminal pi, um projeto que generaliza o conceito de autoresearch de Karpathy para que possa ser aplicado a qualquer problema de otimização.
Primeiro, o que é o pi?
pi é um agente de codificação com IA que funciona no terminal. Diferentemente de ferramentas baseadas em IDE, como Cursor ou Windsurf, ele foi projetado para ser nativo de terminal, então pode ser usado do mesmo jeito em ambientes com acesso via SSH ou em servidores headless.
As principais características do pi são seus sistemas de Extension e Skill:
- Extension — adiciona novas ferramentas (tools) ao agente. Além de ferramentas básicas como leitura/escrita de arquivos e execução de comandos, também é possível encaixar ferramentas customizadas como plugins.
- Skill — ensina padrões de trabalho específicos. Define workflows do tipo “nesta situação, use estas ferramentas nesta ordem”.
Com uma única linha, pi install <github-url>, é possível instalar Extensions e Skills criadas pela comunidade, em uma estrutura que permite expandir livremente as capacidades do agente. O pi-autoresearch foi construído exatamente sobre esse sistema, como um pacote de Extension + Skill.
Contexto: o autoresearch de Karpathy
Em março de 2026, a ideia apresentada por Karpathy com o autoresearch era simples:
- dar ao agente de IA um único código de treino de LLM (
train.py) - fazer com que ele modifique o código e execute o treinamento por 5 minutos
- se a loss de validação melhorar, keep; se não, discard
- repetir durante a noite → ao acordar, logs dos experimentos + um modelo melhor
Com um design extremamente minimalista (3 arquivos, 1 GPU, 1 métrica), era um projeto focado em provar o conceito de que “um agente pode atuar autonomamente como pesquisador”. Ainda assim, havia limitações de origem: exclusivo para GPUs NVIDIA e aplicável apenas a treinamento de LLM.
O que o pi-autoresearch faz de diferente
1. Sem limitação de domínio
Além da loss de treinamento de LLM, qualquer coisa mensurável pode virar alvo de otimização, como velocidade de execução de testes, tamanho de bundle, tempo de build e pontuação do Lighthouse. Isso é possível graças à separação entre “infraestrutura (Extension)” e “conhecimento de domínio (Skill)” no pi.
- Velocidade de testes — seconds ↓ —
pnpm test - Tamanho de bundle — KB ↓ —
pnpm build && du -sb dist - Treinamento de LLM — val_bpb ↓ —
uv run train.py - Lighthouse — perf score ↑ —
lighthouse --output=json
2. Não perde a memória mesmo após reiniciar
Agentes de IA têm limitações de janela de contexto, então, em experimentos longos, o contexto pode ser resetado ou o processo pode cair. O pi-autoresearch preserva completamente o estado da sessão com dois arquivos:
autoresearch.jsonl— log append-only de todos os experimentosautoresearch.md— resumo de objetivo, tentativas, becos sem saída e principais resultados
Mesmo que entre em cena um agente novo, sem memória alguma, basta ler esses dois arquivos para retomar com precisão a sessão anterior. Na prática, é um padrão de “memória externa para agentes”.
3. Distingue melhoria real de ruído
Benchmarks podem dar resultados diferentes a cada execução, mesmo com o mesmo código. Após 3 ou mais execuções, o sistema calcula automaticamente um confidence score baseado em MAD (Median Absolute Deviation) para mostrar visualmente se a melhoria é real ou apenas ruído.
- 🟢 ≥ 2.0× — alta chance de a melhoria ser real
- 🟡 1.0–2.0× — acima do ruído, mas pequena
- 🔴 < 1.0× — dentro da faixa de ruído, recomendável executar novamente
Ainda assim, o sistema não descarta experimentos automaticamente; a decisão final fica a cargo do agente.
4. Evita que a otimização quebre a correção
Se houver um autoresearch.checks.sh, depois que o benchmark passar, validações de correção como testes, typecheck e lint são executadas automaticamente. Isso bloqueia em nível de sistema a armadilha clássica de “ficou mais rápido, mas os testes quebraram”.
5. Organiza os resultados em PRs limpos
Quando os experimentos terminam, a skill autoresearch-finalize agrupa os experimentos mantidos em changesets lógicos e os separa em branches Git independentes. Como o sistema garante que os arquivos não se sobreponham, cada branch pode ser revisada e mergeada de forma independente.
Workflow
1. /autoresearch optimize unit test runtime
→ configurar objetivo, comando e métrica → medir baseline → iniciar loop
2. Loop autônomo (repetição infinita)
→ modificar código → git commit → benchmark → validação de correção
→ melhorou? keep / piorou? revert → registrar em .jsonl → repetir
3. /skill:autoresearch-finalize
→ organizar os experimentos mantidos em branches independentes → revisar e fazer merge
Controle de custos
Como o loop autônomo continua consumindo tokens, o projeto oferece dois guardrails: limite na chave de API e maxIterations (número máximo de experimentos por sessão).
Por que vale atenção
Se o autoresearch de Karpathy era uma prova de conceito interessante de que “a IA experimenta sozinha”, o pi-autoresearch é uma tentativa de transformar isso em uma ferramenta genérica utilizável no desenvolvimento real. Como ele é construído sobre a arquitetura Extension/Skill do pi, uma única linha de instalação já basta para encaixá-lo no workflow existente do pi, reduzindo a barreira de entrada.
Chama atenção o fato de tratar de forma sistemática problemas práticos como preservação do estado da sessão, validação de confiança estatística, proteção da correção e workflow nativo de Git. Vale observar se o fluxo de deixar rodando à noite e revisar PRs pela manhã realmente vai se tornar realidade.
2 comentários
Como esperado, pi
Gosto muito do pi