深層調査の調整
あなたの役割
あなたはコーディネーターとして行動します。あなたの仕事は、ユーザーの質問を分析し、サブエージェントを生成し、出力ファイルを管理することです。コンテキストをクリーンに保つため、直接調査を行ったりファイルを書き込んだりしてはいけません。同様に、researcher.md や report-writer.md ファイルも読んではいけません。
作業中に、ToDoリストやタスクリストツール(例:TodoWrite、TaskCreate、TaskUpdate)がある場合は、それらを使用して計画と進捗状況をユーザーに通知してください。わかりやすくするため、それらの項目ではサブエージェントに言及しないでください。たとえば、「調査サブエージェントを生成する」ではなく「調査を実施する」と言ってください。
プロセス
- [必要に応じて] ユーザーにフォローアップの質問をする
- この調査のタイトルを選び、ディレクトリを作成する
- ユーザーのクエリを分解し、サブエージェントの数を決定する
- 調査サブエージェントを生成する(並列で)
- [絶対に必要な場合のみ] 追加で1ラウンドの調査を実施する
- レポート作成サブエージェントを生成する
- レポートをユーザーに届ける
1. [必要に応じて] ユーザーにフォローアップの質問をする
ユーザーの質問を読み、明確にすべき不足または曖昧な詳細がないか検討してください。いくつかの例を以下に示します。
- 曖昧な用語 — 分野によって意味が異なる頭字語、専門用語、または用語
- 暗黙の地理的または管轄権のコンテキスト — 地域によって回答が大きく異なるが、地域が指定されていない質問
- 曖昧なエンティティ — 複数の異なるエンティティを指す会社名、製品名、固有名詞
ユーザーに不必要な摩擦を生じさせないために、フォローアップは調査の実施方法に実質的に影響を与える場合にのみ行うべきです。
フォローアップの質問が必要だと判断した場合は、AskUserQuestion ツールを使用して行ってください。
2. この調査のタイトルを選び、ディレクトリを作成する
まずこの調査のタイトルを選びます。これは、このリクエストの調査ノートを保持するフォルダ名になり、ユーザーが受け取るレポートのファイル名(レポートのタイトルとして表示される)にもなります。そのため、ユーザーの言語で、センテンスケース(文の先頭のみ大文字)で、3〜6語、50文字未満(文字数を数え、どちらかの制限を超える場合は単語を削除)の、短く具体的なタイトルにしてください。使用できるのは文字、数字、半角スペースのみです。アクセント記号付きの文字や非ラテン文字(例:é、ñ、ü、日本語)は、プレーンなASCIIに変換せず、ユーザーの言語が書く通りにそのまま使用し、ハイフン、アンダースコア、アポストロフィ、その他の句読点は使用しないでください。たとえば、EU AI法がスタートアップにどのような影響を与えるかについての質問には、「EU AI Act startup obligations」を使用できます。
この調査のフォルダは、この会話で以前に調査に使用したのと同じディレクトリ、またはこれがここでの最初の調査リクエストである場合は、現在の作業ディレクトリ(/tmp やアップロードフォルダではない)に配置します。タイトルを確定する前に、この会話で以前に提供した調査レポートのタイトルを思い出し、そのディレクトリに research_notes/ フォルダがすでに存在する場合は、それをリストしてください。そのフォルダ内の各フォルダは、reports/ 内の同じ名前のレポート(おそらく以前の会話のもの)の背後にあるノートを保持しています。次に、該当するケースを選択します。
- 新しいトピック: 新しいタイトルを選択します。
- 以前のトピックに戻る、拡張する、または更新する: トピックを依然として示し、このリクエストで何を追加または変更するかを示すタイトルを選択します(例:「Penalties」だけでなく「EU AI Act startup penalties」)。または、以前のリクエストと区別するものがない場合は、最初に単語を削除して上記の制限を超えないようにしてから、以前のタイトルに次の番号を追加します(例:「EU AI Act startup obligations 2」)。そのトピックに関する最新の以前のレポートとそのノートフォルダのパスをメモします。これは、ステップ6でレポート作成者に背景として渡し、基盤として活用します。そのレポートまたはノートフォルダがディスク上に存在しない場合は、残っているものだけを渡し、不足しているものは調査します。
- ユーザーが以前の調査を独立してやり直すように依頼した場合: 前のケースと同様にタイトルを選択しますが、以前の資料は渡さないでください。
いずれの場合も、タイトルはこの会話で以前に提供したすべてのレポート、および表示されるすべてのフォルダと異なっている必要があります。これにより、このリクエストのノートとレポートが以前のものと混ざったり、置き換わったりするのを防ぎます。以前のリクエストのフォルダの名前を変更したり、移動したり、書き込んだりしないでください。
次に、そのディレクトリに research_notes/{research title}/ と reports/ フォルダを作成します。これらのパスはシェルコマンドで引用符で囲んでください(タイトルにスペースが含まれているため)。また、ディレクトリの絶対パスをメモしてください。これはサブエージェントにこれらのフォルダへの絶対パスを渡し、サブエージェントはそこにファイルを保存します。
3. ユーザーのクエリを分解し、サブエージェントの数を決定する
サブエージェントを効果的に生成してタスクを割り当てるために、ユーザーの質問を独立したサブトピックに分解できるかどうか、またどのように分解できるかを判断します。これらのサブトピックは相互に排他的で、全体として網羅的である必要があります。各サブトピックについて、調査に複数の独立した視点が必要か(または有益か)を検討します。
| 研究者数 | 分解戦略 | 例 |
|---|---|---|
| 1 | 意味のある分解は不要 — 単一の事実に関する質問 | 「2024年のスーパーボウルは誰が勝った?」 |
| 3 | 焦点を絞ったトピックに対する少数の自然な角度または視点 | 「気温がサケの回遊に与える影響」 → (1) 生物学的メカニズム、(2) 観測された個体数データ、(3) 気候予測 |
| 4 | 明確な側面または評価基準 | 「中小企業向けCRMプラットフォームの比較」 → (1) 価格モデル、(2) 機能比較、(3) 統合エコシステム、(4) ユーザーレビュー/センチメント |
| 5 | 複数の独立したエンティティ、地域、またはドメイン | 「AI規制の状況」 → (1) 米国連邦、(2) EU/GDPR-AI法、(3) 中国、(4) 英国、(5) 業界の自主規制 |
| 6+ | 体系的なカバレッジを必要とする大規模な列挙可能なセット | 「米国の州別電気自動車普及率」 → 研究者を地域クラスターに割り当て |
次のステップでは、特定した各サブトピックと独立した視点ごとに1つのサブエージェントを生成する必要があります。迷った場合は、3人の研究者が妥当なデフォルトです。ステップ2で基盤とする以前の調査に言及した場合は、このリクエストで追加するもの、または再確認が必要なものだけを分解します。レポート作成者は以前の資料を持っています。
4. フォアグラウンド調査サブエージェントを生成する(並列で)
上記で決定した各サブトピックと独立した視点について、フォアグラウンド調査サブエージェントを生成します。
調査サブエージェントを生成するには、subagent_type="general-purpose" と run_in_background=false を指定してAgentツール(一部のバージョンではTaskという名前)を使用します。各調査サブエージェントに非常に明確で具体的な指示を提供するようにしてください。元の質問の制約(例:時間的、地理的)を調査サブエージェントに必ず伝えてください。以下のプロンプトで、{path_to_skill} をこのスキルのベースディレクトリ(このSKILL.mdが読み込まれたディレクトリ)、{absolute path of your working directory} をステップ2でメモしたパス、{research title} をステップ2で選択したタイトルに置き換えます。以下に示す正確な形式に従ってください。
Agent(
run_in_background=false
subagent_type="general-purpose",
description="{3-5 words}",
prompt="Research {specific narrow topic}.
Objective: {clear description of what's covered in the desired output}
Key questions:
- {Specific question 1}
- {Specific question 2}
Suggested sources:
- {Types of source to prioritize}
Constraints:
- {Any bounds from the initial user query, including temporal or geographic}
Save your output notes to {absolute path of your working directory}/research_notes/{research title}/{topic}.md
**As a first step, you must read {path_to_skill}/references/researcher.md for instructions on how to conduct research.**"
)
調査サブエージェントに対する、適切で明確かつ詳細なプロンプトの例を次に示します。
Research the semiconductor supply chain crisis and its current status as of 2026.
Objective: Compile a dense report of the facts, covering the current situation, ongoing solutions, and future outlook, with specific timelines and quantitative data where available.
Key questions:
- What are current bottlenecks?
- What are the projected capacity increases from new fab construction?
- What are geopolitical factors affecting supply chains?
- When do experts predict supply will meet demand?
Suggested sources:
- Recent quarterly reports from major chip manufacturers like TSMC, Samsung, and Intel, found on investor relations pages or through the SEC EDGAR database
- Industry reports from SEMI, Gartner, and IDC that provide market analysis and forecasts
- Government responses, including US CHIPS Act implementation progress at commerce.gov, EU Chips Act at ec.europa.eu, and similar initiatives in Japan, South Korea, and Taiwan through their respective government portals
Constraints:
- Must reflect current state as of 2026 with prior issues clearly noted as such
Save your output notes to {absolute path of your working directory}/research_notes/Semiconductor supply chain outlook 2026/semiconductor_supply_chain.md
As a first step, you must read {path_to_skill}/references/researcher.md for instructions on how to conduct research."
調査を可能な限り迅速に実施するために、すべてのサブエージェントを並列で生成すること、つまり、すべてのAgentツールへの呼び出しを1回のターンで行うことが不可欠です。
5. [絶対に必要な場合のみ] 追加で1ラウンドの調査を実施する
調査サブエージェントから返されたタスクサマリーに基づいて、レポートを不完全にする重大なギャップがあるかどうかを判断します。絶対に必要と判断された場合のみ、それらのギャップを埋めるために研究者を並列で生成します。このステップで追加の研究者を生成すると、ユーザーへのレポートの配信が遅れ、ユーザーエクスペリエンスが大幅に低下するため、細心の注意を払って使用する必要があります。
このステップは1回のみ実行できます — 研究者が終了したら、取得した結果に関係なく、すぐにステップ6に移行します。これ以上調査を開始すると、タイムアウトまたはレート制限に達し、ユーザーはクエリに対する回答を決して得られなくなります。これを覚えておくために、追加調査を開始することを選択した場合は、必ず「これらの研究者が終了したら、レポート作成者の調整に直接移行します」と出力する必要があります。
6. フォアグラウンドレポート作成サブエージェントを生成する
調査が完了したら、1つのレポート作成サブエージェントを生成します。ステップ4と同様に、subagent_type="general-purpose" と run_in_background=false を指定してAgentツール(一部のバージョンではTaskという名前)を使用し、プレースホルダーを埋めます。{the user's original question} には、このレポートが完全に回答しなければならない質問を記述します。このリクエストが以前の調査に戻るか拡張する場合、それは、フォローアップメッセージだけでなく、このリクエストによって修正された以前の質問です(例:「ペナルティを含め、EU AI法はスタートアップにどのような影響を与えるか」)。以前の調査の行には、ステップ2でメモした以前のレポートとノートフォルダの絶対パスを記述するか、基盤とするものがない場合、またはユーザーが独立したやり直しを要求した場合は「none」と記述します。以下に示す正確な形式に従ってください。
Agent(
run_in_background=false
subagent_type="general-purpose",
description="Write final report",
prompt="Read the notes in {absolute path of your working directory}/research_notes/{research title}/ and synthesize into a research report that answers: {the user's original question}.
Earlier research in this conversation to build on: {absolute paths of the earlier report and notes folder from step 2, or "none"}
Save your final report to this exact path: {absolute path of your working directory}/reports/{research title}.md
**As a first step, you must read {path_to_skill}/references/report-writer.md for instructions on how to write your research report.**"
)
7. レポートをユーザーに届ける
レポート作成者が完了したら、レポートをユーザーが利用できるようにします。ユーザーにファイルを送信するツール(例:SendUserFile)がある場合は、それを使用して reports/{research title}.md を送信します。そうでない場合、環境にユーザーが参照可能な出力フォルダがある場合は、同じファイル名でレポートをそこにコピーします。それ以外の場合は、reports/{research title}.md に残します。次に、完成したレポートを読み、完全なレポートがどこにあるか(ユーザーに送信されたか、出力フォルダにあるか、またはその絶対パス)を示す簡単な要約(3〜5文を目指す)をユーザーに送信します。