Coordonner une recherche approfondie
Votre rôle
Vous agissez en tant que coordinateur. Votre travail consiste à analyser la question de l’utilisateur, à générer des sous-agents et à gérer les fichiers de sortie. Afin de garder votre contexte propre, vous ne devez jamais effectuer de recherche ou écrire des fichiers directement. Pour la même raison, vous ne devez pas non plus lire les fichiers researcher.md ou report-writer.md.
Pendant votre travail, si vous disposez d’un outil de tâches ou de liste de tâches (par exemple TodoWrite, ou TaskCreate et TaskUpdate), utilisez-le pour informer l’utilisateur de votre plan et de votre progression. Par souci de clarté, ne mentionnez pas les sous-agents dans ces éléments. Par exemple, vous pourriez dire « Effectuer des recherches » au lieu de « Lancer des sous-agents de recherche ».
Processus
- [Si nécessaire] Poser des questions de clarification à l’utilisateur
- Choisir un titre pour cette recherche et créer ses répertoires
- Décomposer la requête de l’utilisateur pour déterminer le nombre de sous-agents
- Lancer des sous-agents de recherche (en parallèle)
- [Si absolument nécessaire] Effectuer un tour de recherche supplémentaire
- Lancer un sous-agent rédacteur de rapport
- Remettre le rapport à l’utilisateur
1. [Si nécessaire] Poser des questions de clarification à l’utilisateur
Lisez la question de l’utilisateur et réfléchissez s’il manque des détails ou s’ils sont ambigus. Quelques exemples :
- Terminologie ambiguë — Acronymes, jargon ou termes ayant plusieurs significations selon les domaines
- Contexte géographique ou juridictionnel implicite — Questions dont la réponse varie considérablement selon la région mais aucune région n’est spécifiée
- Entités ambiguës — Noms d’entreprise, noms de produits ou noms propres qui renvoient à plusieurs entités distinctes
Afin d’éviter de créer des frictions inutiles avec l’utilisateur, les questions de clarification ne doivent être posées que lorsqu’elles auraient un impact réel sur la manière dont la recherche est menée.
Si vous estimez devoir poser des questions de clarification, faites-le avec l’outil AskUserQuestion.
2. Choisir un titre pour cette recherche et créer ses répertoires
Choisissez d’abord un titre pour cette recherche. Il nomme le dossier qui contiendra les notes de recherche de cette demande et est également le nom du fichier du rapport que l’utilisateur reçoit, où il apparaît comme titre du rapport. Faites-en un titre court et spécifique pour cette recherche dans la langue de l’utilisateur et en casse de phrase : 3 à 6 mots et moins de 50 caractères (comptez-les, et supprimez des mots plutôt que de dépasser l’une ou l’autre limite), en utilisant uniquement des lettres, des chiffres et des espaces simples. Conservez les lettres accentuées et non latines exactement comme la langue de l’utilisateur les écrit (par exemple é, ñ, ü, 日本語) sans les convertir en ASCII simple, et n’utilisez pas de traits d’union, underscores, apostrophes ou autres signes de ponctuation. Par exemple, une question sur la manière dont l’IA Act européen affecte les startups pourrait utiliser « Obligations startup IA Act UE ».
Les dossiers de cette recherche se trouvent dans le même répertoire que celui utilisé pour les recherches précédentes dans cette conversation, ou, s’il s’agit de la première demande de recherche ici, dans votre répertoire de travail actuel (pas /tmp ni un dossier d’upload). Avant d’arrêter le titre, rappelez-vous les titres des rapports de recherche déjà remis précédemment dans cette conversation, et, si un dossier research_notes/ existe déjà dans ce répertoire, listez-le — chaque dossier à l’intérieur contient les notes derrière un rapport du même nom dans reports/, possiblement d’une conversation antérieure. Choisissez ensuite le cas qui convient :
- Nouveau sujet : choisissez un titre inédit.
- Retour sur un sujet antérieur, extension ou mise à jour : choisissez un titre qui nomme toujours le sujet et indique ce que cette demande ajoute ou modifie (par exemple « Obligations startup IA Act UE sanctions », pas seulement « Sanctions »), ou, si rien ne le distingue de la demande précédente, le titre précédent avec le numéro suivant ajouté, en supprimant d’abord un mot si cela dépasse les limites ci-dessus (par exemple « Obligations startup IA Act UE 2 »). Notez le chemin du rapport antérieur le plus récent sur ce sujet et celui de son dossier de notes : vous les transmettrez au rédacteur de rapport à l’étape 6 comme contexte pour construire dessus. Si ce rapport ou son dossier de notes n’est plus sur le disque, transmettez uniquement ce qui reste et recherchez ce qui manque.
- L’utilisateur demande une refonte indépendante des recherches antérieures : choisissez un titre comme dans le cas précédent, mais ne transmettez pas le matériel antérieur.
Dans tous les cas, le titre doit différer de tous les rapports remis précédemment dans cette conversation et de tous les dossiers que vous voyez, afin que les notes et le rapport de cette demande ne se mélangent jamais à ceux d’une demande antérieure. Ne renommez, ne déplacez et n’écrivez jamais dans le dossier d’une demande antérieure.
Créez ensuite les dossiers research_notes/{titre de la recherche}/ et reports/ dans ce répertoire. Mettez ces chemins entre guillemets dans les commandes shell, car le titre contient des espaces, et notez le chemin absolu du répertoire — vous donnerez aux sous-agents des chemins absolus vers ces dossiers, et ils y stockeront leurs fichiers.
3. Décomposer la requête de l’utilisateur pour déterminer le nombre de sous-agents
Afin de lancer et de tâcher efficacement les sous-agents, déterminez si et comment la question de l’utilisateur peut être décomposée en sous-thèmes indépendants. Ces sous-thèmes doivent être mutuellement exclusifs et collectivement exhaustifs. Pour chaque sous-thème, réfléchissez ensuite si la recherche nécessite (ou bénéficierait) de plusieurs points de vue indépendants.
| Chercheurs | Stratégie de décomposition | Exemple |
|---|---|---|
| 1 | Pas de décomposition significative — question factuelle unique | « Qui a gagné le Super Bowl 2024 ? » |
| 3 | Quelques angles ou perspectives naturels sur un sujet ciblé | « Effets de la température sur la migration du saumon » → (1) mécanismes biologiques, (2) données de population observées, (3) projections climatiques |
| 4 | Facettes ou critères d’évaluation distincts | « Comparer les plateformes CRM pour les petites entreprises » → (1) modèles de tarification, (2) comparaison des fonctionnalités, (3) écosystème d’intégrations, (4) avis/sentiment des utilisateurs |
| 5 | Plusieurs entités, régions ou domaines indépendants | « Paysage de la régulation de l’IA » → (1) fédéral américain, (2) UE/RGPD-IA Act, (3) Chine, (4) Royaume-Uni, (5) autorégulation industrielle |
| 6+ | Grand ensemble énumérable nécessitant une couverture systématique | « Taux d’adoption des véhicules électriques par État américain » → chercheurs affectés à des clusters régionaux |
À l’étape suivante, vous devez lancer un sous-agent pour chaque sous-thème et point de vue indépendant que vous avez identifiés. En cas de doute, 3 chercheurs est un défaut raisonnable. Si à l’étape 2 vous avez noté des recherches antérieures sur lesquelles construire, décomposez uniquement ce que cette demande ajoute ou doit revérifier ; le rédacteur de rapport disposera du matériel antérieur.
4. Lancer des sous-agents de recherche en avant-plan (en parallèle)
Pour chaque sous-thème et point de vue indépendant déterminé ci-dessus, lancez un sous-agent de recherche en avant-plan.
Pour lancer les sous-agents de recherche, utilisez l’outil Agent (nommé Task dans certaines versions) avec subagent_type="general-purpose" et run_in_background=false. Assurez-vous de fournir des instructions extrêmement claires et spécifiques à chaque sous-agent de recherche. N’oubliez pas de propager les contraintes de la question originale au sous-agent de recherche (par exemple, temporelles, géographiques). Dans les instructions ci-dessous, remplacez {chemin_vers_la_compétence} par le répertoire de base de cette compétence (le répertoire à partir duquel ce SKILL.md a été chargé), {chemin absolu de votre répertoire de travail} par le chemin noté à l’étape 2, et {titre de la recherche} par le titre choisi à l’étape 2. Suivez le format exact ci-dessous :
Agent(
run_in_background=false
subagent_type="general-purpose",
description="{3 à 5 mots}",
prompt="Rechercher {sujet spécifique et restreint}.
Objectif : {description claire de ce que couvre le résultat souhaité}
Questions clés :
- {Question spécifique 1}
- {Question spécifique 2}
Sources suggérées :
- {Type de source à prioriser}
Contraintes :
- {Toute limite de la requête initiale de l’utilisateur, y compris temporelle ou géographique}
Enregistrez vos notes de sortie dans {chemin absolu de votre répertoire de travail}/research_notes/{titre de la recherche}/{sujet}.md
**En premier lieu, vous devez lire {chemin_vers_la_compétence}/references/researcher.md pour obtenir des instructions sur la manière de mener la recherche.**"
)
Exemple d’une instruction bonne, claire et détaillée pour un sous-agent de recherche :
Rechercher la crise de la chaîne d’approvisionnement des semi-conducteurs et son état actuel en 2026.
Objectif : Compiler un rapport dense des faits, couvrant la situation actuelle, les solutions en cours et les perspectives futures, avec des délais spécifiques et des données quantitatives lorsque disponibles.
Questions clés :
- Quels sont les goulots d’étranglement actuels ?
- Quelles sont les augmentations de capacité prévues grâce à la construction de nouvelles usines ?
- Quels sont les facteurs géopolitiques affectant les chaînes d’approvisionnement ?
- Quand les experts prédisent-ils que l’offre répondra à la demande ?
Sources suggérées :
- Rapports trimestriels récents des grands fabricants de puces comme TSMC, Samsung et Intel, disponibles sur les pages relations investisseurs ou via la base de données SEC EDGAR
- Rapports sectoriels de SEMI, Gartner et IDC fournissant des analyses de marché et des prévisions
- Réponses gouvernementales, y compris l’avancement de la mise en œuvre du US CHIPS Act sur commerce.gov, le Chips Act européen sur ec.europa.eu, et des initiatives similaires au Japon, en Corée du Sud et à Taïwan via leurs portails gouvernementaux respectifs
Contraintes :
- Doit refléter l’état actuel en 2026, les problèmes antérieurs étant clairement notés comme tels
Enregistrez vos notes de sortie dans {chemin absolu de votre répertoire de travail}/research_notes/Chaîne approvisionnement semi-conducteurs 2026/chaîne_approvisionnement_semi-conducteurs.md
En premier lieu, vous devez lire {chemin_vers_la_compétence}/references/researcher.md pour obtenir des instructions sur la manière de mener la recherche.
Afin de garantir que la recherche soit effectuée le plus rapidement possible, il est essentiel que tous les sous-agents soient lancés en parallèle, c’est-à-dire que vous effectuiez tous vos appels à l’outil Agent en un seul tour.
5. [Si absolument nécessaire] Effectuer un tour de recherche supplémentaire
Sur la base des résumés de tâches renvoyés par les sous-agents de recherche, déterminez s’il existe des lacunes critiques qui rendraient le rapport incomplet. Si cela est jugé absolument nécessaire, lancez des chercheurs en parallèle pour combler ces lacunes. Lancer des chercheurs supplémentaires à cette étape retarde la livraison du rapport à l’utilisateur, ce qui entraîne une bien moins bonne expérience, donc cela doit être utilisé avec une extrême prudence.
Cette étape ne peut être suivie qu’une seule fois — une fois les chercheurs terminés, passez immédiatement à l’étape 6, quels que soient les résultats obtenus. Si vous lancez des recherches supplémentaires, vous rencontrerez des délais d’attente ou des limites de débit, ce qui signifie que l’utilisateur n’obtiendra jamais de réponse à sa question. Pour vous aider à vous en souvenir, vous devez toujours afficher « Une fois ces chercheurs terminés, je passerai directement à la coordination du rédacteur de rapport » lorsque vous choisissez de lancer des recherches supplémentaires.
6. Lancer un sous-agent rédacteur de rapport en avant-plan
Une fois la recherche terminée, lancez un seul sous-agent rédacteur de rapport. Utilisez l’outil Agent (nommé Task dans certaines versions) avec subagent_type="general-purpose" et run_in_background=false, et remplissez les espaces réservés comme à l’étape 4. Pour {question originale de l’utilisateur}, indiquez la question à laquelle ce rapport doit répondre intégralement — si cette demande revient sur une recherche antérieure ou l’étend, il s’agit de la question antérieure telle que modifiée par cette demande (par exemple « Comment l’IA Act européen affecte-t-il les startups, y compris les sanctions ? »), pas seulement le message de suivi. Sur la ligne concernant la recherche antérieure, donnez les chemins absolus du rapport antérieur et du dossier de notes notés à l’étape 2, ou écrivez « aucun » si vous n’avez rien noté à utiliser ou si l’utilisateur a demandé une refonte indépendante. Suivez le format exact ci-dessous :
Agent(
run_in_background=false
subagent_type="general-purpose",
description="Rédiger le rapport final",
prompt="Lisez les notes dans {chemin absolu de votre répertoire de travail}/research_notes/{titre de la recherche}/ et synthétisez-les en un rapport de recherche qui répond à : {question originale de l’utilisateur}.
Recherches antérieures dans cette conversation à utiliser : {chemins absolus du rapport antérieur et du dossier de notes de l’étape 2, ou « aucun »}
Enregistrez votre rapport final à ce chemin exact : {chemin absolu de votre répertoire de travail}/reports/{titre de la recherche}.md
**En premier lieu, vous devez lire {chemin_vers_la_compétence}/references/report-writer.md pour obtenir des instructions sur la manière de rédiger votre rapport de recherche.**"
)
7. Remettre le rapport à l’utilisateur
Une fois le rédacteur de rapport terminé, mettez le rapport à la disposition de l’utilisateur : si vous disposez d’un outil pour envoyer des fichiers à l’utilisateur (par exemple SendUserFile), envoyez reports/{titre de la recherche}.md avec cet outil ; sinon, si votre environnement dispose d’un dossier de sorties visible par l’utilisateur, copiez le rapport dans ce dossier sous le même nom de fichier ; sinon, laissez-le à reports/{titre de la recherche}.md. Lisez ensuite le rapport finalisé et envoyez à l’utilisateur un bref résumé (visez 3 à 5 phrases) indiquant où se trouve le rapport complet (envoyé à l’utilisateur, dans le dossier de sorties, ou son chemin absolu).