/ Diretório / Playground / Autoresearch (Karpathy-style)
● Comunidade uditgoenka ⚡ Instantâneo

Autoresearch (Karpathy-style)

por uditgoenka · uditgoenka/autoresearch

Objetivo como entrada, resultados como saída — o Claude propõe uma mudança, executa, mede, mantém os ganhos, descarta as perdas e itera. O loop autoresearch do Andrej Karpathy, empacotado como skill.

O Autoresearch transforma o Claude em um pesquisador de loop fechado: você especifica um objetivo e um verificador (uma métrica, um teste ou um prompt de juiz), e a skill itera Modificar → Verificar → Manter/Descartar com controles de orçamento. Inspirado nos posts de autoresearch do Karpathy. Útil quando o objetivo é mensurável, mas o espaço de busca é grande demais para planejar com antecedência — ajuste de prompt, busca de hiperparâmetros, refatoração para performance, A/B de copy.

Por que usar

Principais recursos

Demo ao vivo

Como fica na prática

pronto

Instalar

Escolha seu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "autoresearch-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/uditgoenka/autoresearch",
        "~/.claude/skills/autoresearch"
      ],
      "_inferred": true
    }
  }
}

Abra Claude Desktop → Settings → Developer → Edit Config. Reinicie após salvar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "autoresearch-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/uditgoenka/autoresearch",
        "~/.claude/skills/autoresearch"
      ],
      "_inferred": true
    }
  }
}

Cursor usa o mesmo esquema mcpServers que o Claude Desktop. Config de projeto vence a global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "autoresearch-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/uditgoenka/autoresearch",
        "~/.claude/skills/autoresearch"
      ],
      "_inferred": true
    }
  }
}

Clique no ícone MCP Servers na barra lateral do Cline, depois "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "autoresearch-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/uditgoenka/autoresearch",
        "~/.claude/skills/autoresearch"
      ],
      "_inferred": true
    }
  }
}

Mesmo formato do Claude Desktop. Reinicie o Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "autoresearch-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/uditgoenka/autoresearch",
        "~/.claude/skills/autoresearch"
      ]
    }
  ]
}

O Continue usa um array de objetos de servidor em vez de um map.

~/.config/zed/settings.json
{
  "context_servers": {
    "autoresearch-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/uditgoenka/autoresearch",
          "~/.claude/skills/autoresearch"
        ]
      }
    }
  }
}

Adicione em context_servers. Zed recarrega automaticamente ao salvar.

claude mcp add autoresearch-skill -- git clone https://github.com/uditgoenka/autoresearch ~/.claude/skills/autoresearch

Uma linha só. Verifique com claude mcp list. Remova com claude mcp remove.

Casos de uso

Usos do mundo real: Autoresearch (Karpathy-style)

Ajustar iterativamente um system prompt contra um benchmark

👤 Engenheiros de IA ajustando prompts ⏱ ~90 min advanced

Quando usar: Você tem um prompt, um benchmark e paciência para um loop.

Pré-requisitos
  • Skill instalada — git clone https://github.com/uditgoenka/autoresearch ~/.claude/skills/autoresearch
  • Benchmark com função de score — /bench/run.sh que imprime um score no stdout
Fluxo
  1. Formular o objetivo
    Use o autoresearch. Objetivo: maximizar o score de /bench/run.sh no prompt em /prompts/system.md. Orçamento de 30 iterações.✓ Copiado
    → Loop inicia; primeira proposta feita
  2. Observar o rastro
    Mostre-me as iterações 5 a 10 com os deltas.✓ Copiado
    → Rastro com score por iteração; mantidos/descartados marcados
  3. Parar cedo
    Se 3 iterações consecutivas não melhorarem mais de 1%, pare e reporte o melhor.✓ Copiado
    → Guard de convergência dispara; melhor prompt reportado

Resultado: Prompt melhor, com rastro explicando o porquê.

Armadilhas
  • Verificador é passível de trapaça — score sobe sem qualidade — Adicione um verificador de sanidade (juiz LLM ou conjunto held-out)
Combine com: filesystem

Espremer 20% de performance de uma função hot via auto-iteração

👤 Devs de backend com dados de profiling ⏱ ~120 min advanced

Quando usar: Você sabe qual função é lenta; quer que o Claude encontre uma alternativa mais rápida.

Fluxo
  1. Definir
    Objetivo: minimizar o wall-time de /bench/perf.sh que exercita foo(). Restrição: os testes devem continuar passando.✓ Copiado
    → Loop inicia; baseline capturado
  2. Iterar
    Execute 20 iterações. Mostre as 3 melhores melhorias no final.✓ Copiado
    → 3 candidatos de refatoração com speedup medido

Resultado: Speedup concreto, validado.

Armadilhas
  • Iterações introduzem problema sutil de correção que os testes perdem — Adicione testes baseados em propriedades como verificador junto aos testes unitários
Combine com: github

Auto-iterar copy de landing page contra um juiz de CTR

👤 Marketers rodando testes de conteúdo ⏱ ~60 min intermediate

Quando usar: Você tem uma meta de CTR (ou um prompt de juiz que a simula) e tempo para iterar.

Fluxo
  1. Configurar o juiz
    Objetivo: maximizar o judge_score em /copy/headline.md. Prompt do juiz: 'avalie a probabilidade de um fundador de SaaS série B clicar neste headline'.✓ Copiado
    → Baseline do juiz pontuado; loop inicia
  2. Iterar
    Execute 15 iterações; mantenha os 3 candidatos distintos com melhor resultado.✓ Copiado
    → Top 3 headlines distintos

Resultado: 3 headlines candidatos para revisão humana.

Armadilhas
  • Juiz tem forte preferência de estilo não relacionada à clicabilidade — Ancore o juiz em um arquivo de rubrica com critérios explícitos

Combinações

Combine com outros MCPs para 10× de alavancagem

autoresearch-skill + filesystem

Persistir rastros de iteração para inspeção

Salve o rastro em /research/traces/<ts>.md após cada loop.✓ Copiado
autoresearch-skill + github

Abrir um PR com o candidato vencedor

Quando o loop terminar, abra PR com o título 'autoresearch: <metric> +X%'.✓ Copiado

Ferramentas

O que este MCP expõe

FerramentaEntradasQuando chamarCusto
loop goal, verifier, max_iter, budget_tokens? Otimização em loop fechado Variável — limitado pelo orçamento
trace loop_id? Inspecionar uma execução 0
rollback to_iteration Loop saiu dos trilhos 0

Custo e limites

O que custa rodar

Cota de API
Limitado pelo seu LLM
Tokens por chamada
Pesado — um loop completo pode ser 100k+ tokens
Monetário
Gratuito; custo do LLM é seu
Dica
Sempre defina max_iter e budget_tokens — loops abertos vão queimar dinheiro

Segurança

Permissões, segredos, alcance

Armazenamento de credenciais: Nenhum
Saída de dados: Limitado ao seu provedor de LLM

Solução de problemas

Erros comuns e correções

Loop travado — mesma proposta a cada iteração

Aumente a temperatura de exploração no proposer; ou semeie com candidatos diversos

Verificador falha de forma inconsistente

Instabilidade do verificador invalida o loop — fixe seeds, repita a verificação N=3 por iteração

Orçamento esgotado antes da convergência

Inspecione o rastro — se os ganhos são monotônicos, aumente o orçamento; caso contrário, o verificador ou proposer é o gargalo

Alternativas

Autoresearch (Karpathy-style) vs. outros

AlternativaQuando usarTroca
wanshuiyin/Auto-claude-code-research-in-sleep (ARIS)Você quer loops de pesquisa de ML assíncronos noturnos especificamenteO ARIS foca em ML; o autoresearch é geral
A/B manual com iteração scriptadaO objetivo é pequeno e pontualA skill remove o overhead de orquestração

Mais

Recursos

📖 Leia o README oficial no GitHub

🐙 Ver issues abertas

🔍 Ver todos os 400+ servidores MCP e Skills