autoresearch
Ajuda seu agente a melhorar código de forma autônoma. Ele experimenta mudanças, testa e mede resultados para otimizar o desempenho.
O que ela faz
Esta ferramenta ajuda a melhorar automaticamente qualquer código de programação. Você diz o que quer melhorar (como velocidade ou uso de memória) e como medir isso. A ferramenta então tenta fazer mudanças no código, testa se elas melhoraram o resultado e mantém apenas as boas.
Quando usar
- ✓Quando você quer deixar um programa mais rápido.
- ✓Quando você quer que um programa use menos memória.
- ✓Quando você quer otimizar um código para ter um resultado melhor em alguma tarefa específica.
Exemplo do que pedir para a IA
“Quero melhorar a velocidade deste script Python. A métrica é o tempo de execução medido com 'time python meu_script.py', e um tempo menor é melhor.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Primeiro, você define o objetivo (o que melhorar) e como medir. Depois, a ferramenta cria uma cópia do seu código, faz pequenas mudanças, testa para ver se melhorou, e decide se mantém ou descarta a mudança.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill autoresearchOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/autoresearch/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Autoresearch: Experimentação Iterativa Autônoma
Um ciclo de experimentação autônoma para qualquer tarefa de programação. Você define o objetivo e como medi-lo; o agente itera autonomamente — modificando código, executando experimentos, medindo resultados e mantendo ou descartando alterações — até ser interrompido.
Esta habilidade é inspirada no autoresearch de Karpathy, generalizada do treinamento de ML para qualquer tarefa de programação com um resultado mensurável.
Regras de Comportamento do Agente
- DEVE guiar o usuário através da fase de Configuração interativamente antes de iniciar o ciclo.
- DEVE estabelecer uma medição de linha de base antes de fazer quaisquer alterações.
- DEVE confirmar cada tentativa de experimento antes de executá-la (para que possa ser revertida de forma limpa).
- DEVE manter um log de resultados (TSV) rastreando cada experimento.
- DEVE reverter alterações que não melhorem a métrica (git reset para o último estado conhecido bom).
- DEVE rodar autonomamente assim que o ciclo começar — nunca pause para perguntar "devo continuar?".
- NÃO DEVE modificar arquivos que o usuário marcou como fora do escopo.
- NÃO DEVE pular a etapa de medição — cada experimento deve ser medido.
- NÃO DEVE manter alterações que regridam a métrica, a menos que o usuário tenha explicitamente permitido compensações.
- NÃO DEVE instalar novas dependências ou fazer alterações de ambiente, a menos que o usuário as tenha aprovado.
Fase 1: Configuração (Interativa)
Antes que qualquer experimentação comece, trabalhe com o usuário para estabelecer estes parâmetros. Pergunte ao usuário diretamente por cada item. Não assuma nem pule nenhum.
1.1 Definir o Objetivo
Pergunte ao usuário:
O que você está tentando melhorar ou otimizar?
Exemplos: tempo de execução, uso de memória, tamanho do binário, taxa de aprovação de testes, cobertura de código, latência de resposta da API, taxa de transferência, taxa de erros, pontuação de benchmark, tempo de compilação, tamanho do pacote, linhas de código, complexidade ciclomática, etc.
Registre a resposta do usuário como o objetivo.
1.2 Definir a Métrica
Pergunte ao usuário:
Como medimos o sucesso? Qual comando exato produz a métrica?
Preciso de:
- O comando a ser executado (ex:
dotnet test,npm run benchmark,time ./build.sh,pytest --tb=short)- Como extrair a métrica da saída (ex: um padrão regex, uma linha específica, um campo JSON)
- Direção: Menor é melhor ou maior é melhor?
Exemplo: "Execute
dotnet test --logger trx, conte os testes aprovados. Maior é melhor." Exemplo: "Executehyperfine './my-program', extraia o tempo médio. Menor é melhor."
Registre:
METRIC_COMMAND: o comando a ser executadoMETRIC_EXTRACTION: como extrair a métrica numérica da saídaMETRIC_DIRECTION:lower_is_betterouhigher_is_better
1.3 Definir o Escopo
Pergunte ao usuário:
Quais arquivos ou diretórios tenho permissão para modificar?
E quais arquivos estão FORA DE LIMITES (somente leitura)?
Registre:
IN_SCOPE_FILES: arquivos/diretórios que o agente pode editarOUT_OF_SCOPE_FILES: arquivos/diretórios que não devem ser modificados
1.4 Definir Restrições
Pergunte ao usuário:
Existem restrições que devo respeitar?
Exemplos:
- Orçamento de tempo por experimento (ex: "cada execução deve levar < 2 minutos")
- Sem novas dependências
- Devo manter todos os testes existentes aprovados
- Não devo alterar a API pública
- Devo manter a compatibilidade retroativa
- Limite de VRAM/memória
- Limites de complexidade de código (preferir soluções mais simples)
Registre como CONSTRAINTS.
1.5 Definir o Orçamento de Experimentos (Opcional)
Pergunte ao usuário:
Quantos experimentos devo executar, ou devo continuar até que você me pare?
Você pode dizer um número (ex: "tente 20 experimentos") ou "ilimitado" (executarei até que você interrompa).
Registre como MAX_EXPERIMENTS (número ou unlimited).
1.6 Critério de Simplicidade
Informe o usuário sobre a política padrão de simplicidade:
Política de simplicidade (padrão): Em igualdade de condições, o mais simples é melhor. Uma pequena melhoria que adiciona complexidade feia não vale a pena. Remover código mantendo ou melhorando a métrica é um ótimo resultado. Pesarei o custo da complexidade contra a magnitude da melhoria. Esta política funciona para você, ou você quer ajustá-la?
Registre quaisquer ajustes como SIMPLICITY_POLICY.
1.7 Confirmar Configuração
Resuma todos os parâmetros de volta para o usuário em uma tabela clara:
| Parâmetro | Valor |
|---|---|
| Objetivo | ... |
| Comando da métrica | ... |
| Extração da métrica | ... |
Perguntas frequentes
O que acontece se a ferramenta piorar o código?
Se uma mudança não melhorar o resultado esperado, a ferramenta a descarta e volta para a versão anterior que funcionava bem.
Posso dizer quais partes do código a ferramenta não deve mexer?
Sim, você pode indicar quais arquivos ou pastas são 'fora de escopo' e a ferramenta não os modificará.
A ferramenta instala coisas novas?
Não, a ferramenta não instala novas bibliotecas ou faz mudanças no ambiente sem a sua permissão explícita.
Detalhes
Descrição original do autor
Autonomous iterative experimentation loop for any programming task. Guides the user through defining goals, measurable metrics, and scope constraints, then runs an autonomous loop of code changes, testing, measuring, and keeping/discarding results. Inspired by Karpathy''s autoresearch. USE FOR: autonomous improvement, iterative optimization, experiment loop, auto research, performance tuning, auto
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5013
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
benchmark-optimization-loop
Faz seu agente melhorar a velocidade de algo de forma medida. Ele testa várias versões e escolhe a mais rápida que ainda funciona corretamente.
affaan-m/ECC
change-impact
Ajuda seu agente a analisar o impacto de mudanças no código antes de fazê-las. Ele compara o planejado com o real depois, cobrindo caminhos, dados, testes e documentação. É útil para mudanças arriscadas ou que afetam várias partes do sistema.
affaan-m/ECC
click-path-audit
Faz seu agente rastrear todos os botões e interações do usuário para achar bugs. Ele encontra problemas onde funções parecem funcionar sozinhas, mas falham juntas. Útil quando bugs persistem mesmo após depuração.
affaan-m/ECC