Guide utilisateur ThesisAgents
Assistant de recherche d’articles piloté par mots-clés. Interroge arXiv, Semantic Scholar, OpenAlex, PubMed, ACM, IEEE Xplore, DBLP, Crossref, OpenAIRE, Springer Nature, Europe PMC, DOAJ, HAL, CORE et Google Scholar ; exporte en présentation PowerPoint style thèse, classeur Excel et fichier BibTeX. Le tout depuis un seul appel CLI ou un seul appel d’outil MCP.
Pour les agents IA pilotant ce projet
Si vous êtes un LLM (Claude Code, Cursor, Aider, Codex CLI, …) lisant
ceci pour savoir quoi faire — commencez ici. Les mêmes règles sont
épinglées dans AGENTS.md (miroir inter-agents) et CLAUDE.md
(référence canonique) à la racine du repo ; lisez-les avant tout
changement non trivial.
Le livrable par défaut est un ``.pptx`` enrichi style thèse par article, pas la présentation légère limitée au résumé que la CLI produit par défaut. Le rendu léger est un artefact intermédiaire — votre travail est de l’enrichir.
Arbre de décision
ANTHROPIC_API_KEYdéfinie ? → lancez la CLI ; auto-enrichissement via API Anthropic.Pas de clé, LLM pilote → vous rédigez le résumé enrichi vous-même. Lisez chaque PDF, rédigez un
PaperSummaryavec les champs rich-tier, déposezscripts/regen_<query>.py, exécutez. Ne dites pas à l’utilisateur de configurer la clé API — vous êtes le LLM.Pas de LLM (CI / cron) → rendu léger acceptable.
Workflow MCP en 6 étapes
1. (optionnel) list_sources()
2. search(keywords, sources, top_tier_only=true, ...)
3. (optionnel) download_pdfs(papers, out_dir="./exports/...")
4. fetch_pdf_text(pdf_url=paper.pdf_url) # par article
5. (vous lisez chaque PDF et produisez un dict de résumé structuré)
6. export(papers=[{...paper, "summary": {...}}], language="fr", ...)
Les 12 outils MCP complets : MCP server.
Obligatoire : vérification URL / DOI avant livraison
Les chemins URL des éditeurs ne peuvent pas être devinés — AAAI
utilise des IDs numériques (v40i5.37389), IEEE utilise un
arnumber opaque, ACM utilise des DOIs opaques. Quand vous rédigez
un Paper à la main, copiez ``url`` / ``doi`` / ``arxiv_id`` mot
pour mot depuis le xlsx produit par cette recherche — jamais de
mémoire, jamais construit à partir du titre.
Le xlsx est écrit dans exports/<run>/<slug>-<timestamp>.xlsx avec
colonne 7 = DOI, colonne 8 = URL. Auditez votre script regen à la fin :
from openpyxl import load_workbook
from scripts.regen_<run> import ALL_PAPERS
real = {sh.cell(row=r, column=2).value: sh.cell(row=r, column=8).value
for sh in [load_workbook("exports/<run>/<slug>-<ts>.xlsx")["Papers"]]
for r in range(2, sh.max_row + 1)}
for p in ALL_PAPERS:
actual = next((u for t, u in real.items() if p.title[:30] in (t or "")), None)
if actual and not (p.url == actual
or p.url.split("v")[0] == actual.split("v")[0]):
print(f"! {p.bibtex_key()} authored {p.url} vs real {actual}")
À ne pas faire
Ne dites pas à l’utilisateur « définissez
ANTHROPIC_API_KEY» — vous êtes le LLM.Ne considérez pas le
.pptxléger comme livrable.Ne vous arrêtez pas quand
download_pdfsfinit.N’inventez pas chiffres, RQ, contributions, limites.
Ne fabriquez pas URLs / DOIs / IDs arXiv.
Ne laissez pas de téléchargements non pertinents dans le répertoire d’exécution. La recherche par mots-clés peut ramener des articles hors sujet (une requête « Claude code » a ramené un article sur le décodeur Viterbi). Supprimez les
pdfs/<key>.pdfet<key>.pptxlégers hors sujet ; conservez le xlsx / bib agrégé comme trace fidèle. Procédure complète dansCLAUDE.md« Pruning irrelevant downloads ».Ne mentionnez pas « Claude », « Claude Code », « AI-generated », « GPT », « Copilot » ni aucun nom d’outil / modèle IA dans les commits, PRs, code ou docs.
Exemples : scripts/regen_llm_security_batch.py (en, 8 articles) et
scripts/regen_llm_security_batch_zh_tw.py (zh-tw).
Installation
Python 3.12+ requis.
git clone <repo-url>
cd ThesisAgents
python -m venv .venv
.venv\Scripts\Activate.ps1 # Windows PowerShell
# source .venv/bin/activate # Linux / macOS
pip install -e .[dev]
Extras optionnels : [mcp], [intelligence], [web], [dev].
Démarrage rapide
# Rechercher arXiv → deck + classeur + BibTeX
thesisagents --query "diffusion models" --source arxiv --max 10 \
--out ./exports/
# Un seul article par URL → deck + BibTeX
thesisagents --paper "https://arxiv.org/abs/1706.03762" \
--filename-stem attention --out ./exports/
# Rendre la présentation en français
thesisagents --paper 1706.03762 --lang fr --out ./exports/
# Enrichissement via pipeline Python (clé Anthropic requise)
export ANTHROPIC_API_KEY=sk-ant-...
thesisagents --paper "https://arxiv.org/abs/1706.03762" \
--enrich --lang fr --out ./exports/
Tableau complet des flags CLI : CLI reference.
Où chercher plus loin
Flags CLI + variables d’environnement : CLI reference
12 outils du serveur MCP : MCP server
Boîte à outils d’édition PPTX : PPTX editing & layout
Le fichier
readmes/README.fr.mdà la racine du repo donne la liste complète des fonctionnalités.La référence technique approfondie (architecture de plugins, politique de sécurité, Definition of Done, règles SonarQube, …) est consolidée dans le guide anglais : ThesisAgents User Guide.