mcpField
D
deep-research

deep-research

github.com/ramit-mitra生产力962 次安装25 周前更新
代码仓库

关于 deep-research

Deep Research 是用于生成有来源支撑的多轮研究报告的技能,面向需要系统梳理主题并核查材料的研究者。它通过并行子 Agent 搜索、交叉验证主张,并在证据趋于收敛后以内联 Markdown 报告呈现结果。

主要功能

  1. 01将主题拆解为多个研究子问题
  2. 02并行调度子 Agent 搜集资料
  3. 03交叉核对来源与材料主张
  4. 04标注单一来源、分歧和证据缺口
  5. 05以内联 Markdown 输出引用密集报告

适用场景

  1. 01系统研究复杂主题
  2. 02比较多份来源对关键主张的支持
  3. 03梳理存在分歧或证据不足的问题

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ramit-mitra/deep-research-skill --skill deep-research

安装后在 Claude Code 中输入/deep-research确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
LICENSE
README.original.md

详细介绍

深度研究

使用此技能,可针对任何主题生成一份深入、基于来源、分多轮开展的研究报告。此技能模拟严谨的人类研究者的工作方式——拆解问题、搜索、阅读、交叉核查、完善计划并综合分析——但借助并行子 Agent 和规范的搜索流程,将整个过程压缩到几分钟内。

工作目标

生成一份全面、结构清晰、引用密集的研究报告,要求:

  • 至少通过 2 个独立来源交叉验证重要主张
  • 诚实地指出不同意见和信息缺口
  • 相较于流畅度和篇幅,更重视准确性和严谨性
  • 以单条 Markdown 回复的形式直接返回给用户

不可妥协的规则

  1. 必须在回复中直接返回内容。除非用户明确要求,否则不要将报告保存为文件。在回复中直接输出报告就是此技能的最终操作。
  2. 不得捏造来源、URL、引文、统计数据或日期。若某项主张无法找到来源,标记为 INSUFFICIENT EVIDENCE 并继续。
  3. 每项重要主张都必须通过 Markdown 脚注 [^N] 引用来源。不需要引用一般性引入语(例如“本节将介绍 X”)。
  4. 重要主张必须通过至少 2 个独立来源交叉验证。只有 1 个来源的主张必须在行内标记为 [single-source]。没有来源的主张必须删除或标记为 unverified。
  5. 使用下方的来源等级序列。发生冲突时,以等级较高的来源为准,并在报告中指出冲突。
  6. 必须使用并行子 Agent 进行研究。主 Agent 负责协调——不得自行批量抓取网页。只使用单个 Agent 线性研究,违反本技能要求。
  7. 对主要会助长武器合成、儿童性虐待材料、恶意软件开发、人肉搜索或其他明显有害用途的主题,拒绝研究。用一段简短的话说明拒绝理由,然后停止。
  8. 在不同来源的结论趋于一致时停止搜索,不要按固定轮数停止。搜索纪律比搜索数量更重要。
  9. 使用 URL 引用来源。不得引用“常识”或未具名的权威人士。
  10. 将已核实的事实与解读分开。使用“可能”“似乎”“表明”等解读性措辞时,必须明确注明其不确定性。
  11. 仅使用免费且可公开访问的网络来源。不得让报告依赖付费 API 或需要身份验证的内容。

触发行为

调用时:

  1. 如果参数中包含主题字符串(自由文本、URL、问题),将其设为 topic 并继续。
  2. 如果参数为空,提出一个简短问题——“你想研究什么?”——等待回复,并将其设为 topic。

然后根据主题推断 scope、audience 和 recency,并在开始研究前用一行说明推断出的范围:

按照面向 、截至 的 <broad survey | narrow drill-down>,研究 。即将开始研究——如需调整,请随时提出。

如果无法有把握地推断主题范围(例如只有一个没有明确角度的 URL、一个名词或没有明确研究问题),提出一个有针对性的澄清问题,询问最关键的缺失信息——通常是研究角度或问题。最多只能提出一个此类问题。

如果主题属于拒绝范围(规则 7),说明拒绝理由并停止。

如果无法确定可选字段,且跳过了澄清步骤,则使用以下静态默认值:scope = broad survey、audience = general informed reader、recency = all-time。

输入约定

  • topic(必填,自由文本)——通过技能参数直接传入。如果参数为空,技能会询问一次以获取主题。
  • scope、audience、recency——可选。由控制器根据主题推断,并在开始研究前用一行说明。如果无法确定,则使用静态默认值:scope = broad survey、audience = general informed reader、recency = all-time。

不接受其他输入。

来源层级阶梯

优先使用较高层级的来源。只有当较高层级的来源无法覆盖某个子目标时,才使用较低层级的来源。

  1. 主要来源 — 官方文档、监管申报文件、源代码、RFC、政府数据、标准组织(ISO / IEEE / W3C / IETF)、专利、法院记录
  2. 同行评审来源 — arXiv、期刊文章、会议论文
  3. 知名新闻来源 — Financial Times、Reuters、NYT、WSJ、Bloomberg、The Economist、Associated Press、BBC
  4. 行业来源 — 分析师报告、供应商白皮书、会议演讲、大型工程组织的技术博客
  5. 专家博客 — 知名从业者的文章、Substack、成熟的新闻简报
  6. 社区来源 — 论坛、GitHub issues、HackerNews 帖子、Reddit、StackExchange(信任度最低;适用于了解情绪和边缘案例报告)

来源之间出现冲突时,以较高层级的来源为准。报告的反面证据部分会指出这些冲突。

研究工作流

研究是一个分阶段的 Agent 循环。每个阶段都会决定是否进入下一阶段。不要跳过阶段。

阶段 0 — 消歧并明确范围

如果 topic 从参数中传入,则据此推断 scope、audience 和 recency,用一句话说明研究范围,然后继续。

如果 topic 为空,则询问“你想研究什么?”,等待回复,将其绑定为 topic,然后推断研究范围。

如果无法有把握地推断主题范围,则针对最关键的单个缺失信息提出一个澄清问题。最多只能提出一个此类问题。

如果主题属于拒绝处理的类别,则说明拒绝理由并停止。

阶段 1 — 制定计划并分解任务

在控制器的推理过程中制定研究计划。计划必须:

  • 将主题分解为 4–8 个子目标(具体的子问题,而非关键词)
  • 为每个子目标指定来源层级提示
  • 为每个子目标列出 2–3 个查询变体,用于扩展搜索

研究计划供控制器使用。除非用户提出要求,否则不要向用户展示。

阶段 2 — 分波研究(并行子 Agent)

每波最多并行派遣 5 个子 Agent,每个 Agent 负责一个尚未完成的子目标。使用 Agent 工具:

  • 对于快速广泛扫描和查找类子目标(实体消歧、“在哪里记录了 X”、“Y 的列表”),使用 Explore
  • 对于需要跨多个页面进行推理的深度多步骤子目标,使用 general-purpose

一波中的所有子 Agent 必须在同一条消息中派遣(并行调用),不能依次派遣。

每个子 Agent 都会收到子 Agent 约定(如下)。

所有子 Agent 返回后,进入阶段 3。

阶段 3 — 重新规划并检查收敛

每波结束后,控制器:

  1. 汇总返回的论断,并标注其来源层级和置信度。
  2. 交叉比对各子 Agent 的论断,标出冲突和相互印证之处。
  3. 统计本波新增的论断数量(即前几波中尚未出现的论断)。
  4. 找出仍未解决的缺口——证据薄弱、互相冲突或仅有单一来源支持的子目标。
  5. 更新计划:移除已完成的子目标,根据证据发现的新子目标(“线索”子目标)以及尚未解决的子目标。
  6. 检查是否收敛。

收敛规则(仅当同时满足以下两个条件时停止):

  • 所有波次中已阅读的不同来源至少有 10 个
  • 最近连续 2 波新增的论断都少于当前累计论断总数的 15%

如果尚未收敛,则根据更新后的计划派遣下一波(再次进入阶段 2)。波次数量没有上限;是否收敛决定何时终止。

阶段 4 — 综合生成报告

按照下方的输出格式生成内联报告。来源以脚注形式列在底部,不作摘要。

打印报告后,技能即告完成。同一条消息中不要主动提供后续帮助;用户可以继续提问。

子 Agent 合约

每个被派出的子 Agent 都会收到一条自包含提示词,其中包含:

  • 一个以单句研究问题形式表达的单一子目标
  • 该子目标的来源层级提示
  • 2–3 个用于扩展搜索的查询变体
  • 时效性截止日期
  • 以下输出架构

子 Agent 必须:

  • 运行全部 2–3 个查询变体(网页搜索 + 页面抓取)
  • 应用片段级筛选——仅提取每个页面中的相关片段,而不是整页内容(使用抓取工具的 prompt 参数进行精准提取)
  • 交叉核查所读来源中的主张
  • 按以下架构返回 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 整数。

搜索规范

  1. 每个搜索查询都必须弥补一个明确指出的缺口。没有既定假设时,不得进行探索性搜索。
  2. 如果两个查询变体返回相同的热门结果,就不要运行第三个变体。
  3. 对于已有更高层级来源支持的主张,跳过较低层级来源。
  4. 当某个子目标的主张已得到多方印证且缺口已弥补时,停止搜索。
  5. 边际效用检验:如果下一次搜索不太可能带来新主张,就不要进行。

多方印证与引用规则

  1. 实质性主张 = 会影响报告结论的事实、统计数据、日期、引言或因果断言。
  2. 实质性主张至少需要 2 个独立来源。独立是指来自不同组织 / 出版方,而非同一出版方的不同 URL。
  3. 优先选择不同层级的来源——一条一手来源 + 一条信誉良好的新闻来源,胜过两条社区来源。
  4. 仅由 1 个来源支持的主张,应紧跟在脚注锚点之后标记 [single-source]。
  5. 对于来源存在分歧的主张,应拆分为各自带有引用的两条主张,并在反面证据部分记录分歧。
  6. 行内引用使用 Markdown 脚注语法:主张内容。[^3]。脚注定义放在底部的来源部分。

输出格式

将报告作为单个 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 轮搜索后,该主题仍未找到任何可信来源,仍须生成报告骨架。每个部分都应包含 INSUFFICIENT EVIDENCE,并附上一行说明原因(例如:“主题过于冷门,开放网页上没有相关来源”“主题时间晚于截止日期,目前尚未被索引”)。

拒绝政策

如果主题主要有助于以下行为,请拒绝并停止:

  • 武器合成(化学、生物、放射性、核武器或简易爆炸物)
  • 儿童性虐待材料
  • 针对未经授权目标开发恶意软件、将漏洞武器化或规避安全控制
  • 对具名个人进行人肉搜索、跟踪或定向骚扰

用一段话说明拒绝原因所属类别。不要生成部分报告,也不要协商调整范围。

授权的安全测试、防御性研究、CTF 挑战、学术政策分析,以及明确采用防御性框架的双重用途安全主题,不属于拒绝范围——请按标准工作流继续。

行为准则

在循环过程中遇到疑问时,请按以下优先顺序处理:

  1. 准确 > 流畅。 简短、有来源支持且带有限定的主张,胜过冗长、流畅却缺乏依据的段落。
  2. 多方印证 > 单一来源的自信表述。 两个相互印证的来源,胜过一个听起来权威的来源。
  3. 审慎搜索 > 更多搜索。 达到收敛后停止,胜过为了展示而继续搜索。
  4. 如实说明缺口 > 捏造细节。 INSUFFICIENT EVIDENCE 胜过编造数字、日期或 URL。
  5. 较高层级 > 较低层级。 出现冲突时,一手来源和同行评审来源优于博客和论坛。

Skill 版本说明

  • v1.0 — 初始版本。仅内联输出。由子 Agent 驱动,在收敛时停止,采用三角验证并附带脚注引用。通用领域。仅使用免费网页来源。
  • v1.1 — 通过 args 接受内联的 topic;控制器根据 topic 推断 scope / audience / recency,并用一行说明框架;当 topic 为空或含糊时,提供一个有针对性的澄清问题作为后备。

评论

支持 Markdown