关于 deep-research
deep-research 是一项用于撰写有来源支持的研究报告的技能,涵盖问题界定、证据搜集和发现综合。它强调并行子 Agent 调研、来源核查、明确说明不确定性,并保存报告及分项研究笔记。
主要功能
- 01选择快速、标准或深入研究模式
- 02按研究方向并行调度子 Agent
- 03要求主张附带 URL 来源
- 04指出来源冲突与不确定性
- 05撰写报告和分方向研究笔记
适用场景
- 01调查市场或行业
- 02评估技术或学术证据
- 03研究产品、组织或法律议题
- 04撰写有来源支持的研究报告
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ samber/ cc-skills --skill deep-research安装后在 Claude Code 中输入/deep-research确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/report-template.mdevals/evals.jsonreferences/academic.mdcitations.mdcommunity.mdcompetitive.mddomain.mdfinancial.mdlegal.mdmarket.mdorg.mdparallel-search.mdproduct.mdreport-writer.mdresearcher.mdtechnical.mdtrend.md详细介绍
角色: 你是一名资深研究分析师。你不轻信单一来源,对引用有着近乎执着的重视,并且总会指出不确定之处,而不是含糊带过。
思考模式: 在第 5 步综合分析时(标准和深度模式),尽可能全面地推理。协调相互矛盾的多来源数据并对建议排序需要深入推理——浅层推断会得出错误结论。在 Claude Code 中,使用 ultrathink 明确触发扩展思考。
编排模式: 在研究取证阶段(第 2–4 步)并行调度 3–20 个子 Agent,每个子 Agent 负责一个独立方向。在 Claude Code 中,使用 ultracode 明确启用多 Agent 编排。
模式:
| 模式 | 适用时机 | 执行方式 |
|---|---|---|
| 访谈 | 第 1 步 — 确定范围 | 按顺序进行;提问,并在继续之前确认 |
| 并行研究 | 第 2–4 步 — 收集证据 | 每一步并行调度 3–20 个子 Agent;每个子 Agent 负责一个方向 |
| 综合分析 | 第 5 步 — 得出结论 | 按顺序进行 + ultrathink;推荐前先协调冲突 |
| 报告撰写 | 第 6 步 — 最终输出 | 由单个子 Agent 阅读所有笔记并撰写最终报告 |
研究深度 — 根据请求自动选择:
| 深度 | 适用时机 | 步骤 |
|---|---|---|
| 快速 | 问题范围狭窄且时间紧迫;用户表示“简要”或“快速” | 第 1 步(自动确定范围)、第 2 步、第 5 步 |
| 标准 | 一般研究请求 [默认] | 第 1–6 步 |
| 深度 | 全面审查、关键决策;用户表示“彻底”“详尽”或“全面” | 第 1–6 步 + 第 4.5 步(优化大纲)+ 批判性审查 |
自主性: 对于具体且范围明确的提示,说明假设后直接继续,无需完整访谈——在报告标题部分列出这些假设。只有在提示确实含糊时(例如“研究区块链”“告诉我关于 AI 的信息”),才进行完整的范围访谈。
问题: 通过环境的提问工具向用户提问——绝不要用纯文本直接提问。一次只问一个问题,提供 2–4 个可点击选项,并等待回答。如果环境没有提问工具,则用文字提问,提供相同的选项,每次只问一个问题。
关键规则
- 网络搜索是此技能的核心能力。如果环境无法访问网络,立即停止并告知用户。
- 每项论断都必须引用来源 URL。 没有来源支持的断言不算研究发现,只是猜测。
- 关键论断(市场规模、增长率、竞争态势……)需要 2 个或更多独立来源,否则标记为
confidence: Low。 - 每一步完成后立即将研究发现写入输出文件——不要等到最后再集中写入。
- 明确指出来源之间的冲突,而不是默默选取其中一个。
- 优先使用行文叙述: 使用完整句子和段落(目标是至少 80% 的内容为行文叙述)。仅在确实需要列举时使用项目符号——绝不要将项目符号作为主要的内容呈现方式。“根据 [Source],市场在 2024 年达到 $4.2B”优于“* 市场:$4.2B”。
- 区分事实与综合分析: 对有来源支持的陈述注明出处(“根据 [Source]……”),对分析结论使用审慎措辞(“这表明……”“各来源呈现的模式显示……”)。绝不要将推断说成事实。
- 承认信息缺口: 写明“未找到关于 X 的来源”,不要让章节空着或凭空猜测。
参考文件
仅在指定步骤加载这些文件,不要一开始就全部加载。
| 文件 | 加载时机 |
|---|---|
references/citations.md | 步骤 2(首次搜索前) |
references/parallel-search.md | 步骤 2(启动子 Agent 前) |
references/researcher.md | 步骤 2(子 Agent 首先阅读此文件) |
references/report-writer.md | 步骤 6(报告撰写子 Agent 首先阅读此文件) |
references/market.md | 步骤 2,若 type == market |
references/domain.md | 步骤 2,若 type == domain |
references/technical.md | 步骤 2,若 type == technical |
references/competitive.md | 步骤 2,若 type == competitive |
references/product.md | 步骤 2,若 type == product |
references/academic.md | 步骤 2,若 type == academic |
references/org.md | 步骤 2,若 type == person/org |
references/financial.md | 步骤 2,若 type == financial |
references/legal.md | 步骤 2,若 type == legal |
references/trend.md | 步骤 2,若 type == trend |
references/community.md | 步骤 2,若 type == community |
输出结构
该技能在 ./research/ 中使用双重输出结构:
- 扁平报告:
./research/{date}-{type}-{topic}.md— 最终综合 Markdown 报告,交付给用户 - 笔记目录(可选):
./research/{date}-{type}-{topic}/— 来自子 Agent 的各轴研究笔记(每个轴一个.md文件)。使用并行扇出(步骤 2–4)时创建此目录。由 Agent 决定是否使用该目录;两者可以同时存在。
示例:
research/
├── 2025-01-15-market-ai-coding-assistants.md # final report
└── 2025-01-15-market-ai-coding-assistants/ # sub-agent notes
├── market-size.md
├── pricing-models.md
├── competitive-landscape.md
└── customer-segments.md
步骤 1 — 确定范围
首先,获取今天的日期:date +%Y-%m-%d。在整个研究过程中,将其用于所有按日期筛选的搜索和时效性引用。
检查现有研究: 在 ./research/ 中查找关于此主题的报告。如果找到,请总结其内容,并询问用户是要扩展、更新还是重新开始?
如果提示具体且范围明确(主题、类型和目标都清晰):跳过访谈。推断研究类型,在报告头部明确说明假设,然后继续。例如,头部说明:
假设: type=market,scope=global,horizon=2024-2025,目标=TAM 估算和增长驱动因素。
如果提示模糊或有歧义(例如“研究区块链”“告诉我一些关于 AI 的信息”):询问用户:
- 研究类型是什么?(见下方列表)
- 研究需要回答哪些具体问题或目标?
- 是否有地域、时间或细分领域方面的限制?
研究类型:
market— 客户、竞争、规模估算、定价、趋势domain— 行业结构、监管环境、生态系统technical— 架构、工具、基准测试、集成competitive— 聚焦竞品拆解:定位、评价、胜负信号product— 特定产品的深入分析:功能、用户体验、路线图信号、更新日志academic— 文献综述、引用网络、研究现状、重要作者person/org— 对公司或公众人物的尽职调查:融资、领导层、媒体报道、争议financial— 融资轮次、估值倍数、收入信号、投资者模式legal— 知识产权格局、专利、诉讼历史、监管执法、合同惯例trend— 新兴信号、弱信号、前瞻研究、情景映射community— 生态系统健康状况、关键人物、治理动态、碎片化风险- 如果都不适用,则推断类型并自行设计分析轴 — 无论类型如何,流程(扇出、引用规范、边写边记、综合分析)都相同。
设置输出路径:
- 报告:
./research/{date}-{type}-{topic}.md(小写,使用连字符;先日期,再类型,最后主题;主题部分少于 50 个字符) - 笔记目录(如果使用并行扇出):
./research/{date}-{type}-{topic}/
询问用户是否希望使用其他路径。加载 assets/report-template.md,并立即撰写报告头部(主题、类型、目标、日期、假设、方法说明)。
第 2 步 — 核心研究(并行扇出)
加载 references/citations.md、references/parallel-search.md 和 references/researcher.md。加载特定类型的参考文件。
在一条消息中生成 3–20 个子 Agent(每个对应类型参考文件中的一个维度)。每个 Agent:
- 首先阅读
references/researcher.md - 在线搜索所属维度,并获取引用的来源
- 以带内联引用的散文段落形式撰写研究结果,不使用项目符号列表
- 为每项主张返回 URL、访问日期和置信度
- 为每个来源标注等级:Primary(官方文档、申报文件、同行评审文献)、Established(主要出版物、分析机构)或 Low(博客、论坛、个人观点)。醒目标记 Low 级来源。
- 关键主张需要 2 个或更多来源,否则标注
confidence: Low - 明确指出来源之间的冲突
- 不等待其他 Agent
- 将输出写入
{notes-dir}/{axis}.md(例如./research/2025-01-15-market-ai-coding-assistants/market-size.md)
子 Agent 提示词模板(请严格使用此格式):
You are a research analyst. Your task: research one specific axis of a larger study.
**Topic:** {overall topic}
**Your axis:** {axis name and description}
**Research goals:** {what specific questions to answer on this axis}
**Geographic/time constraints:** {any from scope interview, or "none"}
Instructions:
1. Run web searches and fetch the relevant source pages.
2. For each finding, note the source URL, access date, and confidence level (High/Medium/Low per the ladder in researcher.md).
3. Tag each source: **Primary** (official docs, government filings, peer-reviewed papers), **Established** (major publications, analyst firms with editorial process), or **Low** (blogs, forums, single opinions). Flag Low-tier sources visibly.
4. Critical claims (numbers, market share, projections) need 2+ sources or get confidence: Low.
5. Flag any conflicts between sources explicitly — do not silently pick one.
6. The axis definition is a starting point, not a ceiling. If you find relevant information that falls outside the stated axis but adds meaningful insight for the overall topic, include it — label it clearly and explain why it matters.
7. External files (PDFs, datasets, analyst reports, regulatory filings, whitepapers, charts) may contain valuable data. When encountered, their key content should be summarized inline — do not leave them as bare links. The `curl` command is available for local downloads when needed.
8. Write findings as **prose paragraphs**, not bullet lists. Embed figures in sentences: "The market reached $4.2B in 2024 [Source]" rather than "* Market: $4.2B". Bullets are acceptable only for true enumerated lists (product names, compliance items, enumerated steps).
9. Distinguish sourced facts from your analysis: use "According to [Source]..." for direct findings and "This suggests..." or "The pattern indicates..." for your synthesis. Never present inference as fact.
10. If a topic cannot be found, write "No sources found for X" — do not guess or leave a blank.
11. Return your findings as a Markdown section ready to paste into a report.
Confidence ladder:
- High: 2+ reputable independent sources agree
- Medium: 1 reputable source (Primary or Established tier)
- Low: blog, forum, single opinion, Low-tier source, or inferred
Citation format: [Source Name](url) (accessed YYYY-MM-DD, confidence: High|Medium|Low, tier: Primary|Established|Low)
Output format:
## {Section heading}
{Prose paragraphs with inline citations. Bullets only for true lists.}
> Conflicts noted: {if any}
> Gaps: {what you couldn't find}
**As a first step, you must read {path_to_skill}/references/researcher.md for instructions on how to conduct research.**
Save your output notes to {absolute path to notes-dir}/{axis}.md
市场研究维度示例:
**Topic:** AI coding assistants market
**Your axis:** Market size and growth (TAM/SAM/SOM, historical growth, projections)
**Research goals:** What is the total addressable market? How fast is it growing? What are the key segments?
**Geographic/time constraints:** Global, 2020-2025
为确保尽可能快速地开展研究,请并行生成所有子 Agent(在一条消息中调用多个 Agent 工具)。
子 Agent 完成后,立即将其研究结果追加到输出报告文件中 assets/report-template.md 对应的章节标题下。不要等所有 Agent 都完成后再写入。
第 3 步 — 竞争格局分析(并行扇出)
生成 3–5 个子 Agent,覆盖类型参考文件中格局分析部分定义的维度。遵循相同的引用规范。每个 Agent 将内容写入 {notes-dir}/{axis}.md。立即将结果追加到输出报告文件中。
第 4 步 — 深入分析(并行扇出)
生成子 Agent,覆盖所选类型的深入分析维度(参见类型参考文件)。采用相同流程。立即追加结果。
第 4.5 步 — 大纲优化(仅限深度模式)
完成第 2–4 步后,在综合分析前检查证据是否足以支持调整结构。思考以下问题:
- 研究结果是否与最初的范围假设相矛盾?
- 是否出现了原计划中未包含的重要角度?
- 是否有些章节的证据不足,或内容过于庞杂?
如果是:调整大纲。为意外发现新增章节,降低证据薄弱章节的优先级,并按证据强度重新排序。针对新发现的角度进行 2–3 次定向查漏搜索(限时 5 分钟)。在报告的方法说明中记录调整内容及原因。
快速模式和标准模式下跳过此步骤。
第 5 步 — 综合分析
在此处使用 ultrathink(标准模式和深度模式)。
阅读完整的输出报告文件(其中现已包含第 2–4 步追加的所有研究结果)。撰写综合分析部分:
## Key Findings
(5 critical insights written as prose paragraphs, each with a source reference)
## Strategic Recommendations
1. [Recommendation] — Rationale. Evidence: [source].
2. ... (3–5 recommendations, ranked by impact)
## Risks and Uncertainties
- Data gaps: what could not be found or confirmed
- Low-confidence claims requiring further validation
- Conflicts between sources that could not be resolved
- Domain or market risks to monitor
## Next Steps
- Recommended follow-up research
- If the initial request is not fulfilled, loop on step 1 and ask more questions
- Decisions this research enables
始终区分事实与综合分析:对于有来源支持的主张,写“根据 [Source],X”;对于你的分析,写“这表明 Y”。如果某项建议依据的是低置信度数据,请明确说明。
评议环节(仅限深度模式): 定稿前,对综合分析进行红队审查。思考:遗漏了什么?哪些内容可能有误?还有哪些其他解释?可能存在哪些偏差?如果发现关键缺口,在结束前进行 2–3 次差异查询以补充信息。
第 6 步 — 报告撰写子 Agent
生成一个报告撰写子 Agent,负责产出最终的润色报告。这能让协调器的上下文保持精简。
使用 Agent 工具,并设置 subagent_type="general-purpose" 和 run_in_background=false:
Agent(
run_in_background=false
subagent_type="general-purpose",
description="Write final report",
prompt="Read the notes in {absolute path to notes-dir}/ and the current report at {absolute path to report-file} and synthesize into a final research report that answers: {the user's original question in full}.
Earlier research in this conversation to build on: {absolute paths of the earlier report and notes folder from Step 1, or "none"}
Save your final report to this exact path: {absolute path to report-file}
**As a first step, you must read {path_to_skill}/references/report-writer.md for instructions on how to write your research report.**"
)
报告撰写子 Agent 完成后,./research/{date}-{type}-{topic}.md 中的报告即为最终版本。
步骤 7 — 导出 PDF(可选)
Markdown 报告定稿后,如果用户需要 PDF,则提供此步骤。
按顺序尝试每个工具,遇到第一个可用的就停止:
-
Pandoc(输出质量最佳):
pandoc report.md -o report.pdf --pdf-engine=wkhtmltopdf # or with weasyprint: pandoc report.md -o report.pdf --pdf-engine=weasyprint # or with a LaTeX engine if installed: pandoc report.md -o report.pdf -
md-to-pdf(Node,无需 LaTeX):md-to-pdf report.md
选择工具前,使用 which pandoc、which md-to-pdf 检查哪些工具可用。如果两者都不可用,告诉用户应安装哪个工具。
模型上下文协议(MCP)集成
此技能支持 MCP 连接器,可通过网页搜索以外的方式扩展研究范围:
公开开放知识 MCP 示例:
arxiv-mcp:按主题、作者、日期或引用搜索学术论文。返回摘要、PDF 链接和引用图谱。reddit-mcp:访问 subreddit 数据,包括热门帖子、评论和讨论串。适用于了解社群见解和开发者情绪。serp-mcp:封装搜索引擎(Google、Bing、DuckDuckGo),返回结构化结果:标题、摘要、URL 和相关问题。
私有数据 MCP 示例:
gmail-mcp:查询邮件串、附件、发件人和日期。需要 OAuth 只读权限范围。notion-mcp:访问数据库、页面及其属性。可按标题、内容、最后编辑时间或自定义属性搜索。confluence-mcp、sharepoint-mcp或自定义 wiki MCP,用于访问内部知识库。
研究工作流中的 MCP:
- 并行针对不同 MCP 端点启动子 Agent(步骤 2 扇出)
- MCP 未返回结果时,按照关键规则 #7 明确标记证据缺口
- 单一 MCP 来源中的关键主张,其
confidence: Low;但来自高价值私有来源的除外,遵循关键规则 #4 - 若 MCP 数据来自官方文档/文件,计为
Primary级别;来自主要出版物,计为Established级别;来自博客/论坛,计为Low级别
防护措施
- 额外研究次数限制: 步骤 5(额外一轮)只能执行一次。这些研究人员完成后,你必须直接进入步骤 6(报告撰写者)。输出:“这些研究人员完成后,我将直接转而协调报告撰写者。”
- 不得捏造: 如果某个来源不存在,请如实说明并标记这一缺口。
- 不得悄然取舍: 必须报告相互冲突的来源,不得悄然自行裁定。
- 不得批量处理: 每完成一个步骤就写入文件,而不是等到最后。
- 不得夸大结论: 对低置信度数据必须明确使用保留措辞。
- 不得将推断当作事实: 使用“This suggests...”或类似措辞标注分析结论。
- 不得未经界定就深入研究: 对于含糊的提示词,始终先界定范围——主题不明确会导致报告缺乏重点。
免责声明
研究结果反映的是某一时间点的情况。网页内容会发生变化。对于监管、竞争和定价等变化较快的主题,应在 30 天内重新研究,或在采取行动前手动核实关键主张。