Discutez avec OpenClaw : « Recherche X » → terminé.
🇺🇸 English · 🇨🇳 中文 · 🇯🇵 日本語 · 🇰🇷 한국어 · 🇫🇷 Français · 🇩🇪 Deutsch · 🇪🇸 Español · 🇧🇷 Português · 🇷🇺 Русский · 🇸🇦 العربية
pip install -e . && researchclaw run --topic "Your research idea here" --auto-approve
Vous avez une idée. Vous voulez un article. C'est tout.
AutoResearchClaw prend un sujet de recherche et produit de manière autonome un article académique complet — avec de la vraie littérature provenant d'arXiv et de Semantic Scholar (multi-sources, arXiv en priorité pour éviter la limitation de débit), des expériences en sandbox adaptées au matériel (détection automatique GPU/MPS/CPU), une analyse statistique, une relecture par les pairs, et du LaTeX prêt pour les conférences (ciblant 5 000-6 500 mots pour NeurIPS/ICML/ICLR). Aucune supervision. Aucun copier-coller entre outils.
| 📄 | paper_draft.md | Article académique complet (Introduction, Travaux connexes, Méthode, Expériences, Résultats, Conclusion) |
| 📐 | paper.tex | LaTeX prêt pour les conférences (templates NeurIPS / ICLR / ICML) |
| 📚 | references.bib | Références BibTeX réelles provenant de Semantic Scholar et arXiv — auto-élaguées pour correspondre aux citations dans le texte |
| 🔍 | verification_report.json | Vérification d'intégrité et de pertinence des citations sur 4 couches (arXiv, CrossRef, DataCite, LLM) |
| 🧪 | experiment runs/ | Code généré + résultats sandbox + métriques JSON structurées |
| 📊 | charts/ | Graphiques de comparaison de conditions auto-générés avec barres d'erreur et intervalles de confiance |
| 📝 | reviews.md | Relecture multi-agents avec vérification de cohérence méthodologie-preuves |
| 🧬 | evolution/ | Leçons d'auto-apprentissage extraites de chaque exécution |
| 📦 | deliverables/ | Tous les livrables finaux dans un seul dossier — prêt à compiler pour Overleaf |
Le pipeline s'exécute de bout en bout sans intervention humaine (sauf si vous configurez des étapes de validation pour une revue manuelle). Quand les expériences échouent, il s'auto-répare. Quand les hypothèses ne tiennent pas, il pivote.
researchclaw run --topic "Agent-based Reinforcement Learning for Automated Scientific Discovery" --auto-approve
Le pipeline ne se contente pas de s'exécuter linéairement. L'étape 15 (RESEARCH_DECISION) évalue les résultats expérimentaux par rapport aux hypothèses et prend une décision autonome :
Chaque cycle PIVOT/REFINE versionne les artefacts précédents (stage-08_v1/, stage-08_v2/, ...) afin qu'aucun travail ne soit perdu et que l'évolution des décisions soit entièrement traçable.
Les étapes critiques utilisent un protocole de débat structuré avec plusieurs perspectives LLM :
Chaque exécution du pipeline extrait des leçons granulaires — pas seulement « ça a échoué » mais pourquoi :
RuntimeWarning: division by zero)Ces leçons sont conservées dans un magasin JSONL avec pondération par décroissance temporelle à demi-vie de 30 jours et sont injectées comme surcouches de prompts dans les exécutions futures. Le pipeline apprend littéralement de ses erreurs.
Chaque exécution construit une base de connaissances structurée (stockée dans docs/kb/) avec 6 catégories :
Un moniteur de qualité en arrière-plan qui détecte les problèmes que le pipeline principal pourrait manquer :
| 🦞 |
AutoResearchClaw est un service compatible OpenClaw. Installez-le dans OpenClaw et lancez une recherche autonome avec un seul message — ou utilisez-le de manière autonome via CLI, Claude Code, ou tout assistant de codage IA. |
Si vous utilisez déjà OpenClaw comme assistant IA :
1️⃣ Partagez l'URL du dépôt GitHub avec OpenClaw 2️⃣ OpenClaw lit automatiquement RESEARCHCLAW_AGENTS.md → comprend le pipeline 3️⃣ Dites : "Research [votre sujet]" 4️⃣ C'est fait — OpenClaw clone, installe, configure, exécute et renvoie les résultats
C'est tout. OpenClaw gère git clone, pip install, la configuration et l'exécution du pipeline automatiquement. Vous n'avez qu'à discuter.
RESEARCHCLAW_AGENTS.md → apprend le rôle d'orchestrateur de rechercheREADME.md → comprend l'installation et la structure du pipelineconfig.researchclaw.example.yaml → config.yamlpip install -e . + researchclaw run --topic "..." --auto-approvePour une intégration plus poussée, AutoResearchClaw inclut un système d'adaptateurs pont avec 6 fonctionnalités optionnelles :
# config.arc.yaml
openclaw_bridge:
use_cron: true # ⏰ Exécutions de recherche planifiées
use_message: true # 💬 Notifications de progression (Discord/Slack/Telegram)
use_memory: true # 🧠 Persistance des connaissances inter-sessions
use_sessions_spawn: true # 🔀 Lancement de sous-sessions parallèles pour les étapes concurrentes
use_web_fetch: true # 🌐 Recherche web en direct pendant la revue de littérature
use_browser: false # 🖥️ Collecte d'articles via navigateur
Chaque option active un protocole d'adaptateur typé. Quand OpenClaw fournit ces fonctionnalités, les adaptateurs les consomment sans modification de code. Voir integration-guide.md pour tous les détails.
| Méthode | Comment |
|---|---|
| CLI autonome | researchclaw run --topic "..." --auto-approve |
| API Python | from researchclaw.pipeline import Runner; Runner(config).run() |
| Claude Code | Lit RESEARCHCLAW_CLAUDE.md — dites simplement "Run research on [sujet]" |
| OpenCode | Lit .claude/skills/ — même interface en langage naturel |
| Tout CLI IA | Fournissez RESEARCHCLAW_AGENTS.md comme contexte → l'agent s'auto-initialise |
Phase A : Cadrage de la recherche Phase E : Exécution des expériences 1. TOPIC_INIT 12. EXPERIMENT_RUN 2. PROBLEM_DECOMPOSE 13. ITERATIVE_REFINE ← auto-réparation Phase B : Découverte de littérature Phase F : Analyse et décision 3. SEARCH_STRATEGY 14. RESULT_ANALYSIS ← multi-agents 4. LITERATURE_COLLECT ← API réelle 15. RESEARCH_DECISION ← PIVOT/REFINE 5. LITERATURE_SCREEN [porte] 6. KNOWLEDGE_EXTRACT Phase G : Rédaction de l'article 16. PAPER_OUTLINE Phase C : Synthèse des connaissances 17. PAPER_DRAFT 7. SYNTHESIS 18. PEER_REVIEW ← vérif. preuves 8. HYPOTHESIS_GEN ← débat 19. PAPER_REVISION Phase D : Conception expérimentale Phase H : Finalisation 9. EXPERIMENT_DESIGN [porte] 20. QUALITY_GATE [porte] 10. CODE_GENERATION 21. KNOWLEDGE_ARCHIVE 11. RESOURCE_PLANNING 22. EXPORT_PUBLISH ← LaTeX 23. CITATION_VERIFY ← vérif. pertinence
Étapes de validation (5, 9, 20) : pause pour approbation humaine ou approbation automatique avec
--auto-approve. En cas de rejet, le pipeline revient en arrière.
Boucles de décision : l'étape 15 peut déclencher REFINE (→ étape 13) ou PIVOT (→ étape 8), avec versionnement automatique des artefacts.
| Phase | Ce qui se passe |
|---|---|
| A : Cadrage | Le LLM décompose le sujet en un arbre de problèmes structuré avec des questions de recherche |
| A+ : Matériel | Détection automatique du GPU (NVIDIA CUDA / Apple MPS / CPU uniquement), avertissement si le matériel local est limité, adaptation de la génération de code en conséquence |
| B : Littérature | Recherche multi-sources (arXiv en priorité, puis Semantic Scholar) de vrais articles, filtrage par pertinence, extraction de fiches de connaissances |
| C : Synthèse | Regroupement des résultats, identification des lacunes de recherche, génération d'hypothèses testables via débat multi-agents |
| D : Conception | Conception du plan expérimental, génération de Python exécutable adapté au matériel (niveau GPU → sélection de packages), estimation des besoins en ressources |
| E : Exécution | Exécution des expériences en sandbox, détection de NaN/Inf et bugs d'exécution, auto-réparation du code via réparation ciblée par LLM |
| F : Analyse | Analyse multi-agents des résultats ; décision autonome PROCEED / REFINE / PIVOT avec justification |
| G : Rédaction | Plan → rédaction section par section (5 000-6 500 mots) → relecture (avec vérification de cohérence méthodologie-preuves) → révision avec contrôle de longueur |
| H : Finalisation | Porte qualité, archivage des connaissances, export LaTeX avec template de conférence, vérification d'intégrité et de pertinence des citations |
git clone https://github.com/aiming-lab/AutoResearchClaw.git
cd AutoResearchClaw
python3 -m venv .venv && source .venv/bin/activate
pip install -e .
cp config.researchclaw.example.yaml config.arc.yaml
project:
name: "my-research"
research:
topic: "Your research topic here"
llm:
base_url: "https://api.openai.com/v1" # Any OpenAI-compatible endpoint
api_key_env: "OPENAI_API_KEY" # Env var name containing your key
primary_model: "gpt-4o" # Any model your endpoint supports
fallback_models: ["gpt-4o-mini"]
s2_api_key: "" # Optional: Semantic Scholar API key for higher rate limits
experiment:
mode: "sandbox"
sandbox:
python_path: ".venv/bin/python"
# Définissez votre clé API
export OPENAI_API_KEY="sk-..."
# 🚀 Exécuter le pipeline complet
researchclaw run --config config.arc.yaml --auto-approve
# 🎯 Spécifier un sujet en ligne de commande
researchclaw run --config config.arc.yaml --topic "Transformer attention for time series" --auto-approve
# ✅ Valider la configuration
researchclaw validate --config config.arc.yaml
# ⏩ Reprendre à partir d'une étape spécifique
researchclaw run --config config.arc.yaml --from-stage PAPER_OUTLINE --auto-approve
Sortie → artifacts/rc-YYYYMMDD-HHMMSS-<hash>/ avec un sous-répertoire par étape.
Tous les livrables destinés à l'utilisateur sont automatiquement rassemblés dans un seul dossier deliverables/ :
artifacts/rc-YYYYMMDD-HHMMSS-<hash>/deliverables/ ├── paper_final.md # Article final (Markdown) ├── paper.tex # LaTeX prêt pour la conférence ├── references.bib # Bibliographie BibTeX vérifiée (auto-élaguée) ├── neurips_2025.sty # Fichier de style conférence (auto-sélectionné) ├── code/ # Code d'expérience + requirements.txt ├── verification_report.json # Rapport d'intégrité des citations ├── charts/ # Visualisations des résultats (comparaison de conditions, barres d'erreur) └── manifest.json # Index des livrables avec métadonnées
Le dossier deliverables/ est prêt à compiler — il inclut les fichiers .sty et .bst de la conférence pour que vous puissiez compiler paper.tex directement avec pdflatex + bibtex ou le télécharger sur Overleaf sans rien télécharger de plus.
L'étape 4 interroge de vraies API académiques — pas des articles hallucinés par un LLM. Utilise une stratégie arXiv en priorité pour éviter la limitation de débit de Semantic Scholar.
@article{cite_key, ...} avec de vraies métadonnéesfrom researchclaw.literature import search_papers
papers = search_papers("transformer attention mechanisms", limit=20)
for p in papers:
print(f"{p.title} ({p.year}) — cited {p.citation_count}x")
print(p.to_bibtex())
Après la rédaction de l'article, l'étape 23 vérifie chaque référence en termes d'intégrité et de pertinence :
| Couche | Méthode | Ce qu'elle vérifie |
|---|---|---|
| L1 | arXiv API id_list | Articles avec identifiants arXiv — vérifie que l'identifiant existe réellement |
| L2 | CrossRef /works/{doi} + fallback DataCite | Articles avec DOIs — vérifie que le DOI résout et que le titre correspond (DataCite gère les DOIs arXiv 10.48550) |
| L3 | Semantic Scholar + recherche par titre arXiv | Tout le reste — correspondance floue par titre (similarité ≥ 0,80) |
| L4 | Score de pertinence LLM | Toutes les réf. vérifiées — évalue la pertinence thématique par rapport à la recherche |
Chaque référence → VERIFIED ✅ · SUSPICIOUS ⚠️ · HALLUCINATED ❌ · SKIPPED ⏭️ · LOW_RELEVANCE 📉
Nettoyage automatique : les citations hallucinées sont silencieusement supprimées du texte de l'article (pas de balises [HALLUCINATED]). Les entrées bibliographiques non citées sont élaguées. Le fichier final references.bib ne contient que des références vérifiées et citées.
L'étape 1 détecte automatiquement les capacités GPU locales et adapte l'ensemble du pipeline :
| Niveau | Détection | Comportement |
|---|---|---|
| Élevé | GPU NVIDIA avec ≥ 8 Go VRAM | Génération de code PyTorch/GPU complète, installation automatique de torch si absent |
| Limité | NVIDIA < 8 Go ou Apple MPS | Expériences légères (< 1M paramètres, ≤ 20 époques), avertissement utilisateur |
| CPU uniquement | Aucun GPU détecté | NumPy/sklearn uniquement, pas d'imports torch, avertissement avec recommandation de GPU distant |
Le profil matériel est sauvegardé dans stage-01/hardware_profile.json et influence la génération de code, les imports sandbox et les contraintes de prompts.
experiment_harness.py immuable injecté dans la sandbox avec garde temporelle should_stop(), rejet NaN/Inf par report_metric(), et écriture de résultats finalize() (inspiré du pattern d'évaluation immuable de karpathy/autoresearch)results.json avec des métriques typées (pas seulement de l'analyse stdout)is_metric_name())Le pipeline de rédaction cible les standards NeurIPS/ICML/ICLR (9+ pages, 5 000-6 500 mots) :
export:
target_conference: "neurips_2025" # or "iclr_2026" or "icml_2026"
| Conférence | Package de style | Colonnes |
|---|---|---|
| NeurIPS 2025 | neurips_2025 | 1 |
| ICLR 2026 | iclr2026_conference | 1 |
| ICML 2026 | icml2026 | 2 |
| NeurIPS 2024 | neurips_2024 | 1 |
| ICLR 2025 | iclr2025_conference | 1 |
| ICML 2025 | icml2025 | 2 |
Le convertisseur Markdown → LaTeX gère : les titres de sections (avec dédoublonnage de la numérotation automatique), les formules mathématiques en ligne/display, le gras/italique, les listes, les tableaux (avec \caption/\label), les figures (\includegraphics), les blocs de code (compatibles Unicode), les références croisées et les références \cite{}.
| Porte | Étape | En cas de rejet → retour à |
|---|---|---|
| Filtrage de littérature | 5 | Re-collecter la littérature (étape 4) |
| Conception expérimentale | 9 | Re-générer les hypothèses (étape 8) |
| Porte qualité | 20 | Re-rédiger l'article depuis le plan (étape 16) |
Utilisez --auto-approve pour passer toutes les portes, ou configurez des étapes spécifiques dans security.hitl_required_stages.
# === Projet ===
project:
name: "my-research" # Identifiant du projet
mode: "docs-first" # docs-first | semi-auto | full-auto
# === Recherche ===
research:
topic: "..." # Sujet de recherche (requis)
domains: ["ml", "nlp"] # Domaines de recherche pour la revue de littérature
daily_paper_count: 8 # Nombre cible d'articles par requête de recherche
quality_threshold: 4.0 # Score qualité minimum pour les articles
# === Exécution ===
runtime:
timezone: "America/New_York" # Pour les horodatages
max_parallel_tasks: 3 # Limite d'expériences concurrentes
approval_timeout_hours: 12 # Timeout des étapes de validation
retry_limit: 2 # Nombre de tentatives en cas d'échec d'étape
# === LLM ===
llm:
provider: "openai-compatible" # Type de fournisseur
base_url: "https://..." # Point d'accès API (requis)
api_key_env: "OPENAI_API_KEY" # Variable d'env pour la clé API (requis)
api_key: "" # Ou clé en dur ici
primary_model: "gpt-4o" # Modèle principal
fallback_models: ["gpt-4o-mini"] # Chaîne de repli
s2_api_key: "" # Clé API Semantic Scholar (optionnel, limites de débit plus élevées)
# === Expérience ===
experiment:
mode: "sandbox" # simulated | sandbox | docker | ssh_remote
time_budget_sec: 600 # Temps d'exécution max par lancement (défaut : 600s)
max_iterations: 10 # Itérations d'optimisation max
metric_key: "val_loss" # Nom de la métrique principale
metric_direction: "minimize" # minimize | maximize
sandbox:
python_path: ".venv/bin/python"
gpu_required: false
allowed_imports: [math, random, json, csv, numpy, torch, sklearn]
max_memory_mb: 4096
docker:
image: "researchclaw/experiment:latest"
network_policy: "setup_only" # none | setup_only | pip_only | full
gpu_enabled: true
memory_limit_mb: 8192
auto_install_deps: true # Détection auto des imports → requirements.txt
ssh_remote:
host: "" # Nom d'hôte du serveur GPU
gpu_ids: [] # Identifiants GPU disponibles
remote_workdir: "/tmp/researchclaw_experiments"
# === Export ===
export:
target_conference: "neurips_2025" # neurips_2025 | iclr_2026 | icml_2026
authors: "Anonymous"
bib_file: "references"
# === Prompts ===
prompts:
custom_file: "" # Chemin vers un YAML de prompts personnalisés (vide = défauts)
# === Sécurité ===
security:
hitl_required_stages: [5, 9, 20] # Étapes nécessitant une approbation humaine
allow_publish_without_approval: false
redact_sensitive_logs: true
# === Base de connaissances ===
knowledge_base:
backend: "markdown" # markdown | obsidian
root: "docs/kb"
# === Notifications ===
notifications:
channel: "console" # console | discord | slack
target: ""
# === Pont OpenClaw ===
openclaw_bridge:
use_cron: false # Exécutions de recherche planifiées
use_message: false # Notifications de progression
use_memory: false # Persistance des connaissances inter-sessions
use_sessions_spawn: false # Lancement de sous-sessions parallèles
use_web_fetch: false # Recherche web en direct
use_browser: false # Collecte d'articles via navigateur
Inspiré par :
MIT — voir LICENSE pour les détails.
Construit avec 🦞 par l'équipe AutoResearchClaw