deep-research について
Deep Researchは、出典に基づく複数ウェーブの調査レポートを作成するスキルです。並列サブエージェントで検索と主張の照合を行い、証拠が収束した段階でMarkdownレポートをインラインで返します。
主な機能
- 01テーマを調査質問に分解
- 02サブエージェントによる並列調査
- 03出典と重要な主張の相互検証
- 04単一出典、対立、証拠の不足を明示
- 05引用密度の高いMarkdownをインライン出力
活用シーン
- 01複雑なテーマを体系的に調査
- 02主要な主張を支える出典の比較
- 03見解の相違や証拠の不足を整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ramit-mitra/ deep-research-skill --skill deep-researchインストール後、Claude Code で/deep-researchを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdLICENSEREADME.original.md詳細
ディープリサーチ
このスキルを使うと、あらゆるトピックについて、複数の調査段階を経た、情報源に裏付けられた詳細な調査レポートを作成できます。慎重な人間の研究者が行うように、トピックを分解し、検索し、読み、照合し、計画を見直して、情報を統合します。これを並列サブエージェントと規律ある検索によって、数分で実現します。
運用目標
以下を満たす、包括的で構成が明確な、出典を豊富に示す調査レポートを作成します。
- 重要な主張を、少なくとも2つの独立した情報源で相互検証する
- 異論や情報の欠落を、正直に明らかにする
- 流暢さや分量より、正確さと規律を重視する
- 単一のMarkdown回答として、ユーザーにインラインで返す
必須ルール
- 出力は回答にインラインで含めます。ユーザーが明示的に依頼しない限り、レポートをファイルに保存しないでください。レポートをインラインで表示することが、このスキルの最終アクションです。
- 情報源、URL、引用、統計、日付を捏造しないでください。出典を示せない主張には
INSUFFICIENT EVIDENCEと記し、先に進んでください。 - 重要な主張にはすべて、Markdown の脚注
[^N]で情報源を示してください。「このセクションではXを取り上げます」のような導入文には、引用は不要です。 - 重要な主張は、少なくとも2つの独立した情報源で相互検証してください。情報源が1つだけの主張には、インラインで
[single-source]と記してください。情報源がない主張は省くか、unverifiedと記してください。 - 以下の情報源ランクの基準に従ってください。矛盾する場合は、上位の情報源を優先し、レポート内でその矛盾を明記してください。
- 調査には並列サブエージェントを使用してください。メインエージェントは調査を統括する役割です。大量のページ取得を自ら行ってはいけません。単一エージェントによる直線的な調査は、スキル違反です。
- 主に武器の合成、児童の性的虐待素材、マルウェア開発、個人情報の暴露、その他明らかに有害な用途に役立つトピックについては、調査を拒否してください。短い段落で拒否を伝え、そこで終了してください。
- 固定の反復回数ではなく、情報が収束した時点で検索を終了してください。検索の量より、検索の規律を重視してください。
- 情報源はURLで引用してください。「一般的なウェブ上の知識」や、特定されていない関係者を情報源として引用しないでください。
- 検証済みの事実と解釈を分けてください。「可能性が高い」「〜のように見える」「〜を示唆している」といった解釈を示す表現には、留保を付けてください。
- 無料で誰でも閲覧できるウェブ上の情報源のみを使用してください。有料APIや認証が必要なコンテンツに依存したレポートにしないでください。
トリガー時の動作
呼び出されたときは、次の手順に従います。
- 引数にトピック文字列(自由形式のテキスト、URL、質問)が含まれている場合、それを
topicとして設定し、処理を進めます。 - 引数が空の場合、「何を調査しますか?」と短く尋ね、返信を待ってから、それを
topicとして設定します。
次に、トピックから scope、audience、recency を推定し、調査を始める前に、次の形式の1行で推定した枠組みを伝えます。
これは、について、対象読者を、対象期間をとする、[広範な調査 | 詳細な調査]として扱います。調査を開始します。変更する場合はお知らせください。
トピックが曖昧すぎて、枠組みを自信を持って推定できない場合(例:観点が示されていないURLだけの場合、単一の名詞だけの場合、明確な調査質問がない場合)、最も重要な不足情報(通常は観点や質問)を尋ねる、的を絞った確認を1つだけ行ってください。この確認は最大1回です。
トピックが拒否対象(ルール7)に該当する場合は、拒否を伝えて終了してください。
任意項目の推定が不確かで、確認を省略した場合にのみ使用する固定の代替値:scope = 広範な調査、audience = 一般的な知識を持つ読者、recency = 全期間。
入力仕様
topic(必須、自由形式のテキスト) — スキルの引数としてインラインで指定できます。引数が空の場合、スキルは一度だけ質問してトピックを確認します。scope、audience、recency— 任意項目です。コントローラーがトピックから推定し、調査を始める前に1行で伝えます。推定が不確かな場合の固定の代替値は、scope =広範な調査、audience =一般的な知識を持つ読者、recency =全期間です。
その他の入力はありません。
情報源の優先度
上位の情報源を優先します。下位の情報源は、上位の情報源でサブゴールを満たせない場合にのみ使用します。
- 一次情報 — 公式ドキュメント、規制当局への提出書類、ソースコード、RFC、政府データ、標準化団体(ISO / IEEE / W3C / IETF)、特許、裁判記録
- 査読済み — arXiv、学術誌論文、学会論文
- 信頼できる報道機関 — Financial Times、Reuters、NYT、WSJ、Bloomberg、The Economist、Associated Press、BBC
- 業界情報 — アナリストレポート、ベンダーのホワイトペーパー、カンファレンストーク、大手エンジニアリング組織の技術ブログ
- 専門家ブログ — 著名な実務家の投稿、サブスタック、定評のあるニュースレター
- コミュニティ — フォーラム、GitHub の課題、HackerNews のスレッド、Reddit、StackExchange(信頼度は最も低いものの、世論やエッジケースの報告に役立ちます)
情報源が食い違う場合は、上位の情報源を優先します。食い違いは、レポートの反証セクションで明示します。
調査ワークフロー
調査は複数のフェーズから成るエージェント型ループです。各フェーズが次のフェーズへ進む条件になります。先のフェーズに飛ばないでください。
フェーズ 0 — 曖昧さの解消と枠組みの設定
topic が引数から設定されている場合は、そこから scope、audience、recency を推測し、枠組みを一行で伝えてから続行します。
topic が空の場合は、「何を調査しますか?」と尋ね、返答を待ってから、それを topic に設定し、枠組みを推測します。
トピックが曖昧すぎて枠組みを確信を持って推測できない場合は、最も決定的に不足している要素について、焦点を絞った確認質問を一つだけ尋ねます。確認質問は最大一つです。
トピックが拒否対象のカテゴリに該当する場合は、拒否を伝えて終了します。
フェーズ 1 — 計画と分解
コントローラーの推論内で調査計画を作成します。計画では次のことを行う必要があります。
- トピックを 4~8 個のサブゴール(キーワードではなく、具体的な小問)に分解する
- 各サブゴールに情報源の優先度の目安を割り当てる
- それぞれのサブゴールについて、並列検索用の検索クエリのバリエーションを 2~3 個挙げる
計画はコントローラー用です。求められない限り、ユーザーには表示しないでください。
フェーズ 2 — 調査ウェーブ(並列サブエージェント)
各ウェーブでは、未解決のサブゴールごとに 1 つずつ、最大 5 つのサブエージェントを並列で起動します。Agent ツールを使用します。
- 幅広く素早く調査する場合や、参照先を探すタイプのサブゴール(エンティティの特定、「X はどこに記載されているか」、「Y の一覧」)には
Exploreを使用します - 複数のページを横断した推論が必要な、複数の手順を伴うサブゴールには
general-purposeを使用します
ウェーブ内のすべてのサブエージェントは、順番にではなく、単一のメッセージで(並列呼び出しにより)起動する必要があります。
各サブエージェントには、以下の サブエージェント契約を渡します。
すべてのサブエージェントからの応答が返ったら、フェーズ 3 に進みます。
フェーズ 3 — 再計画と収束チェック
各ウェーブの後、コントローラーは次のことを行います。
- 返された主張を、情報源の優先度と確信度とともに集約する。
- サブエージェント間で主張を相互参照し、矛盾と裏付けを特定する。
- このウェーブで追加された新規の主張(以前のウェーブにはなかった主張)の数を数える。
- 残っているギャップ、つまり根拠が乏しい、矛盾している、または単一の情報源にしか基づいていないサブゴールを特定する。
- 計画を更新する。達成済みのサブゴールを削除し、根拠から新たに見つかったサブゴール(「リード」サブゴール)を追加し、未解決のサブゴールを残す。
- 収束チェックを行う。
収束ルール(次の両方の条件を満たした場合に停止します)。
- すべてのウェーブを通じて、少なくとも 10 件の異なる情報源を確認している
- 直近の連続する 2 回のウェーブで、それぞれ追加された新規の主張が、累計の主張総数に対して 15% 未満である
収束に達していない場合は、更新した計画を使って次のウェーブ(再びフェーズ 2)を開始します。ウェーブ数の上限はありません。終了条件は収束ルールによって決まります。
フェーズ 4 — レポートの統合
以下の出力形式に従って、インラインレポートを作成します。情報源は要約せず、末尾に脚注として記載します。
レポートを出力したら、このスキルは終了です。同じメッセージ内で追加の支援を申し出ないでください。ユーザーは必要に応じて質問できます。
サブエージェントの契約
ディスパッチされた各サブエージェントには、自己完結型のプロンプトが渡されます。このプロンプトには、次の内容が含まれます。
- 1文の調査質問として示された、単一のサブ目標
- そのサブ目標のソース階層のヒント
- 横断検索用の2~3種類のクエリ案
- 情報の最新性の基準日
- 以下の出力スキーマ
サブエージェントは、次のことを行う必要があります。
- 2~3種類すべてのクエリ案を実行する(ウェブ検索+ページ取得)
- 範囲単位のフィルタリングを適用する。各ページから関連する抜粋のみを抽出し、ページ全体は取得しない(取得ツールのプロンプト引数を使って、抽出範囲を絞る)
- 読んだソース間で主張を相互検証する
- 次のスキーマに従ったJSON形式のブロックを返す
{
"sub_goal": "<the research question>",
"claims": [
{
"claim": "<one declarative sentence>",
"sources": [
{"url": "<url>", "tier": 1, "title": "<page title>"}
],
"confidence": "high"
}
],
"gaps": ["<unresolved question>"],
"leads": ["<new sub-goal worth investigating in next wave>"]
}
confidence は high、medium、low のいずれかです。tier はソース階層の1~6の整数です。
検索規律のルール
- すべての検索クエリは、特定されたギャップを埋めるものでなければなりません。仮説を明示しない探索的検索は禁止です。
- 2つのクエリ案で同じ上位検索結果が返された場合、3つ目の案は実行しないでください。
- ある主張が上位階層のソースですでに裏付けられている場合、下位階層のソースは省略してください。
- 主張が三角測量され、ギャップが解消されたら、そのサブ目標の検索を終了してください。
- 限界効用のテスト:次の検索で新たな主張が得られる見込みが低い場合は、実行しないでください。
三角測量と引用のルール
- 重要な主張 = レポートの結論に影響する事実、統計、日付、引用、または因果関係に関する主張です。
- 重要な主張には、少なくとも2つの独立したソースが必要です。独立性とは、同一の出版社の異なるURLではなく、異なる組織または出版社であることを意味します。
- 階層の多様性が望ましいです。2つのコミュニティソースよりも、一次資料と信頼できるニュースソースの組み合わせが優れています。
- ちょうど1つのソースから引用される主張には、脚注アンカーの直後に
[single-source]を付けてください。 - 主張を裏付けるソース間で意見が食い違う場合は、それぞれ独自の引用を付けて2つの主張に分け、食い違いを反証セクションに記録してください。
- インライン引用にはMarkdownの脚注構文を使用してください:
claim text.[^3]。脚注の定義は末尾のソースセクションに記載します。
出力形式
次の7つの固定セクションを、指定された順序で含むレポートを、単一のMarkdown回答としてインラインで返してください。
# Deep Research: <Topic>
## TL;DR
- 3–5 bullets covering the headline findings.
## Scope and framing
- Topic: <verbatim user topic>
- Scope: <broad survey | narrow drill-down>
- Audience: <as given>
- Recency cutoff: <as given>
- Sub-goals investigated: <bulleted list>
## Key findings
1. First key finding with citations.[^1][^2]
2. Second key finding.[^3]
## Evidence
### Sub-goal 1: <question>
- Supporting claims with citations and brief context.
### Sub-goal 2: <question>
- ...
## Counter-evidence and dissent
- Conflicting claims, contrarian sources, and minority views with citations.
- If none found: "No material dissent found in surveyed sources."
## Gaps and unknowns
- Questions the research could not resolve.
- Each gap states the reason (no source, blocked content, conflicting low-confidence sources, etc.).
## Sources
[^1]: [Title of source 1](https://example.com/1) — Tier 1
[^2]: [Title of source 2](https://example.com/2) — Tier 3
[^3]: [Title of source 3](https://example.com/3) — Tier 2 [single-source]
少なくとも2回の検索波の後も、そのトピックについて信頼できるソースが1つも見つからなかった場合も、レポートのひな形は作成してください。各セクションには INSUFFICIENT EVIDENCE と、その理由を1行で記載してください(例:「公開ウェブ上の情報源では扱われることが少ないトピック」「基準日以降のトピックで、まだインデックスに登録されていない」)。
拒否ポリシー
主に以下を助長するトピックでは、依頼を拒否して中止してください。
- 武器の合成(化学兵器、生物兵器、放射性兵器、核兵器、または即席爆発物)
- 児童性的虐待素材
- マルウェアの開発、エクスプロイトの武器化、または許可されていない標的に対するセキュリティ制御の回避
- 特定の個人を対象とした個人情報の暴露、ストーキング、または嫌がらせ
該当するカテゴリを明記した1段落の拒否文を提示してください。部分的なレポートは作成しないでください。対象範囲の交渉もしないでください。
許可を得たセキュリティテスト、防御的な調査、CTFの課題、学術的な政策分析、および明確に防御を目的とするデュアルユースのセキュリティトピックは拒否せず、標準のワークフローに従ってください。
行動評価基準
ループ中に判断に迷った場合は、次の優先順位を適用してください。
- 流暢さより正確さ。 出典があり、適切な限定が付された簡潔な主張は、長く流暢でも根拠のない段落に勝ります。
- 自信のある単独ソースより三角測量。 権威がありそうな1つのソースより、相互に裏付ける2つのソースを優先してください。
- 検索を増やすことより規律ある検索。 見せかけのために検索波を増やすより、結果が収束した時点で終了してください。
- 詳細の捏造より正直にギャップを示すこと。 数字、日付、URLを創作するより、
INSUFFICIENT EVIDENCEと記載してください。 - 下位階層より上位階層。 意見が食い違う場合、ブログやフォーラムより一次資料や査読済み資料を優先してください。
スキルのバージョンに関する注記
- v1.0 — 初回リリース。出力はインラインのみです。サブエージェント駆動、収束時に停止、三角測量による検証、脚注付きの引用。汎用ドメイン。無料のウェブ情報源のみを使用します。
- v1.1 — 引数を介したインラインの
topicを受け付けます。コントローラーはトピックからscope/audience/recencyを推測し、1行でフレーミングを通知します。トピックが空または曖昧な場合のフォールバックとして、対象を絞った確認質問を1つだけ行います。