/ Annuaire / Playground / Autoresearch (Karpathy-style)
● Communauté uditgoenka ⚡ Instantané

Autoresearch (Karpathy-style)

par uditgoenka · uditgoenka/autoresearch

Objectif en entrée, résultats en sortie — Claude propose un changement, l'exécute, mesure, garde les gains, rejette les pertes, itère. La boucle autoresearch d'Andrej Karpathy, packagée en skill.

Autoresearch transforme Claude en chercheur en boucle fermée : vous spécifiez un objectif et un vérificateur (une métrique, un test ou un prompt de juge), et le skill itère Modifier → Vérifier → Garder/Rejeter avec des contrôles de budget. Inspiré des posts autoresearch de Karpathy. Utile quand l'objectif est mesurable mais que l'espace de recherche est trop grand pour être planifié à l'avance — tuning de prompt, recherche d'hyperparamètres, refactor-pour-perf, A/B de texte.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

prêt

Installer

Choisissez votre client

~/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
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

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

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

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

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

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

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

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

Continue utilise un tableau d'objets serveur plutôt qu'une map.

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

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

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

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : Autoresearch (Karpathy-style)

Tuner itérativement un prompt système contre un benchmark

👤 Ingénieurs AI qui tunent des prompts ⏱ ~90 min advanced

Quand l'utiliser : Vous avez un prompt, un benchmark et la patience pour une boucle.

Prérequis
  • Skill installé — git clone https://github.com/uditgoenka/autoresearch ~/.claude/skills/autoresearch
  • Benchmark avec fonction de score — /bench/run.sh qui affiche un score sur stdout
Déroulement
  1. Cadrer l'objectif
    Use autoresearch. Goal: maximize score from /bench/run.sh on prompt at /prompts/system.md. Budget 30 iterations.✓ Copié
    → La boucle démarre ; première proposition faite
  2. Regarder la trace
    Show me iterations 5–10 with deltas.✓ Copié
    → Trace avec score par itération ; gardé/rejeté marqué
  3. Arrêt précoce
    If 3 consecutive iterations fail to improve > 1%, stop and report best.✓ Copié
    → La garde de convergence se déclenche ; meilleur prompt rapporté

Résultat : Meilleur prompt, avec une trace expliquant pourquoi.

Pièges
  • Le vérificateur est manipulable — le score augmente sans qualité — Ajoutez un vérificateur de sanité (juge LLM ou ensemble de validation)
Combiner avec : filesystem

Extraire 20% de performance d'une fonction chaude via auto-itération

👤 Devs backend avec des données de profilage ⏱ ~120 min advanced

Quand l'utiliser : Vous savez quelle fonction est lente ; vous voulez que Claude trouve un équivalent plus rapide.

Déroulement
  1. Définir
    Goal: minimize wall-time of /bench/perf.sh which exercises foo(). Constraint: tests must keep passing.✓ Copié
    → La boucle démarre ; baseline capturée
  2. Itérer
    Run 20 iterations. Show the top 3 improvements at the end.✓ Copié
    → 3 refactors candidats avec accélération mesurée

Résultat : Accélération concrète, validée.

Pièges
  • Les itérations introduisent un problème de justesse subtil que les tests manquent — Ajoutez des tests basés sur les propriétés comme vérificateur aux côtés des tests unitaires
Combiner avec : github

Itérer automatiquement sur le texte d'une page d'atterrissage contre un juge CTR

👤 Marketeurs exécutant des tests de contenu ⏱ ~60 min intermediate

Quand l'utiliser : Vous avez une cible CTR (ou un prompt de juge qui la simule) et le temps d'itérer.

Déroulement
  1. Configurer le juge
    Goal: maximize judge_score on /copy/headline.md. Judge prompt: 'rate likelihood a Series-B SaaS founder clicks this headline'.✓ Copié
    → Baseline du juge scorée ; boucle démarre
  2. Itérer
    Run 15 iterations; keep top 3 distinct candidates.✓ Copié
    → Top 3 titres distincts

Résultat : 3 titres candidats pour revue humaine.

Pièges
  • Le juge a une forte préférence de style sans rapport avec le CTR — Épinglez le juge à un fichier de rubrique avec des critères explicites

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

autoresearch-skill + filesystem

Persister les traces d'itération pour inspection

autoresearch-skill + github

Ouvrir une PR avec le candidat gagnant

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
loop goal, verifier, max_iter, budget_tokens? Optimisation en boucle fermée Variable — limité par le budget
trace loop_id? Inspecter une exécution 0
rollback to_iteration La boucle a déraillé 0

Coût et limites

Coût d'exécution

Quota d'API
Limité par votre LLM
Tokens par appel
Lourd — une boucle complète peut dépasser 100k tokens
Monétaire
Gratuit ; le coût LLM est à votre charge
Astuce
Définissez toujours max_iter et budget_tokens — les boucles ouvertes brûlent de l'argent

Sécurité

Permissions, secrets, portée

Stockage des identifiants : Aucun
Sortie de données : Limité par votre fournisseur LLM

Dépannage

Erreurs courantes et correctifs

Boucle bloquée — même proposition à chaque itération

Augmentez la température d'exploration dans le proposeur ; ou alimentez avec des candidats diversifiés

Le vérificateur échoue de façon incohérente

La flakiness du vérificateur invalide la boucle — épinglez les seeds, répétez la vérification N=3 par itération

Budget épuisé avant convergence

Inspectez la trace — si les gains sont monotones, augmentez le budget ; sinon le vérificateur ou le proposeur est le goulot d'étranglement

Alternatives

Autoresearch (Karpathy-style) vs autres

AlternativeQuand l'utiliserCompromis
wanshuiyin/Auto-claude-code-research-in-sleep (ARIS)Vous voulez des boucles de recherche ML async nocturnes spécifiquementARIS est axé ML ; autoresearch est général
A/B manuel avec itération scriptéeL'objectif est petit et ponctuelLe skill supprime la surcharge d'orchestration

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills