关于 research
面向研究任务的混合路由技能,可将问题交给专业技能,或执行通用的搜索、综合与引用流程。它通过公开路由决定并允许用户改选,适用于需要快速研究简报或文档的场景。
主要功能
- 01按领域信号确定路由
- 02委派给专业研究技能
- 03通用研究搜索与综合
- 04提供简报或 DOCX 输出
- 05记录引用与路由审计
适用场景
- 01将专利或文献问题转给相应技能
- 02对一般主题开展带引用的网络研究
- 03生成可分享的研究 DOCX
- 04在分类不明确时先澄清方向
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill research安装后在 Claude Code 中输入/research确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/deterministic_classification_canon.mdfallback_workflow_canon.mdhybrid_router_architecture.mdscripts/classifier.pyfallback_decomposer.pyrouting_transparency_logger.py详细介绍
研究 — 混合路由器 + 后备工作流
研究领域的运行时编排器。 架构 C:确定性分类 → 委派给专家,或自行执行规划-拆解-搜索-综合-引用工作流。
可移植性
后备工作流需要 WebSearch + WebFetch;要能正常委派,必须具备专家技能(pulse、grants、litreview、syllabus、patent、dossier、deepread)。如果 Q2 = 文档模式,则需要安装 Node.js 和 docx 包。在 Claude Code CLI 中可原生运行。在配备 Web 工具 + Code Execution 的 Claude.ai 中,也支持此工作流。
与 engineering/autoresearch-agent 的区别
这两项技能都包含“研究”一词,但适用场景完全不同:
research/research/(此技能)——研究查询路由器 + 后备工作流(“研究 X”)engineering/autoresearch-agent/——Karpathy 的自主文件优化实验循环(“让这段代码运行得更快”)
两者没有重叠,可以共存。
混合架构(C)
每次调用都会产生以下三种结果之一:
- 委派——分类为专家领域。路由至相应专家。用户看到专家的输出。
- 执行后备工作流——分类为一般研究。运行自有的规划 → 搜索 → 综合工作流。
- 请求澄清——分类存在歧义,或仅匹配到一个孤立名词信号。提出一个引导式问题(并提供建议答案)以消除歧义,然后进行路由。
如果专家能做得更好,技能绝不会在不告知用户的情况下静默运行后备工作流。路由透明度是混合架构值得信赖的关键。
专家注册表
| 专家 | 路由信号 | 领域 |
|---|---|---|
pulse | reddit / hn / x / buzz / sentiment / trending / “大家在说什么” / “关注一下” / “了解一下风向” / “当前讨论” | 多源时效性研究 |
grants | NIH / grant / R01 / K-award / RePORTER / NOSI / “资助项目” / FDA / “研究评审组” / “首席研究员” | NIH 资助情报 |
litreview | 文献综述 / PICO / SPIDER / 系统综述 / “关于……的综述论文” / 元分析 | 学术文献梳理 |
syllabus | 教学大纲 / 课程提纲 / 课程体系 / “阅读清单” / “给我的课程” / “给我的学生” | 课程补充阅读 |
patent | 现有技术 / FTO / 实施自由 / 专利 / “专利布局” / 发明 / 新颖性检索 / “知识产权布局” | 专利现有技术 + 布局 |
dossier | “关于……的背景资料” / “尽职调查” / “背景调查” / “为……做准备” / “竞争对手研究” / “投资者尽调” / “面试准备” / “关于……的背景信息” | 用于决策的实体研究 |
deepread | “深入阅读” / “精读” / “读这本书” / “读这份 PDF” / “读这份文档” / “提取论点” / “知识图谱” / “费曼” | 对所提供文档进行证据优先的阅读 |
**升级至 deep-research:**当错误答案代价高昂(例如战略决策、比较 N 个选项、验证假设、绘制领域图谱),且严谨性比速度更重要时,应升级至 deep-research 技能,而不是使用快速后备工作流——它会执行多轮三角验证式对抗调查,并保存一份可审计、可复用的研究文件夹。此路由器是快速路径;deep-research 则是重量级方案。
Agent 完整性规则
此技能遵循研究包规范:
- 执行纪律(仅限后备工作流):按顺序搜索。速率限制为每秒 1 个查询。确认收到响应后再进行下一次调用。
- 来源纪律:仅引用本次会话工具调用返回的来源。训练知识标记为
[Background — not from search],且不计入数量。 - 三项计数跟踪(仅限后备工作流):已发送的查询数 / 已收到的来源数 / 已引用的来源数。
- 重试策略:失败时 → 等待 3 秒 → 重试一次 → 记录。连续失败 3 次后:停止并提醒用户。
- 路由纪律:绝不静默委派。始终说明决策,并允许用户改选。
阶段 1:Grill-Me 信息收集(2–4 个问题)
信息收集刻意保持精简——目标是快速路由,而不是盘问。每轮只问一个问题。
Q1(始终询问)——研究问题
你的研究问题是什么?请用 1–2 句话说明。问题越具体越好——“医疗领域的 AI”只能得到含糊的综述;“医疗系统如何整合基于 LLM 的临床决策支持?”才能得到有用的答案。
拒绝含糊表述。 如果用户说“研究 AI”,就追问一次:“具体研究 AI 的哪方面——应用、安全性、能力、资金、监管,还是比较?请选择一个角度。”
Q2(始终询问)——输出偏好
你希望得到什么形式的输出?请选择一项:
- 快速聊天简报(5 分钟可读,在聊天中以 Markdown 呈现)
- 独立文档(含引用的 .docx,可供分享)
必须让用户做出选择。文档模式会触发更深入的搜索预算和完整的审计日志。
Q3(仅当分类结果为 ask 或 fallback 且没有信号时询问)——领域消歧
请快速澄清——选择最接近的一项 (推荐:{N}——你的问题匹配了
{specialist}信号):
- 学术文献(论文、同行评审)
- 行业/趋势(热点、新闻、舆情)
- 特定实体(公司、个人、组织)
- 技术/专利(现有技术、知识产权格局)
- 资助资金(NIH、基金会)
- 课程材料(教学大纲或课程体系)
- 以上都不是——开展一般研究
当分类器返回 ask(单个裸名词信号)时,预先标记推荐选项。如果分类产生了静默路由(≥2 个信号,或一个强多词短语),则跳过此问题。
Q4(仅当需要询问 Q3 且用户选择“以上都不是”时询问)——一般研究范围
对于一般研究,你希望采用哪种时间投入——快速扫描(5 次搜索)还是深入研究(15 次搜索)?
如果已转交给专业方向,则跳过。
停止条件: 完成 Q4 后(或在适用依赖跳过规则时更早),确认并开始阶段 2。大多数调用会在 Q1 + Q2 后结束信息收集。
阶段 2:确定性分类
此过程是确定性的,不由 LLM 推理——这样更快速、易于调试且一致。
SIGNALS = {
pulse: ["reddit", "hn", "hacker news", "x.com", "twitter", "buzz",
"sentiment", "trending", "what are people saying",
"what's happening", "the conversation around",
"pulse on", "take the pulse", "current conversation"],
grants: ["nih", "grant", "grants for", "r01", "r21", "k-award", "reporter",
"nosi", "funding", "fda", "study section", "principal investigator"],
litreview:["literature review", "lit review", "litreview", "pico", "spider",
"systematic review", "review papers on", "research papers on",
"papers about", "meta-analysis"],
syllabus: ["syllabus", "course outline", "curriculum", "reading list",
"for my class", "for my students", "course material"],
patent: ["prior art", "fto", "freedom to operate", "patent",
"patent landscape", "invention", "novelty search",
"patent search", "ip landscape"],
dossier: ["dossier on", "due diligence", "background check",
"prep me for", "competitor research", "investor diligence",
"interview prep", "research my competitor", "background on"],
deepread: ["deep read", "deeply read", "read this book", "read this pdf",
"read this document", "extract the claims", "extract claims from",
"knowledge map", "feynman", "argument map"]
}
# Signals are case-insensitive literal phrases (multi-word substring match).
# Bracketed placeholders (e.g., "research [company]") are intentionally NOT
# signals — they over-trigger on generic "research X" queries that should
# fall back to general research, not auto-route to dossier.
# STRONG signal = multi-word phrase (contains a space): pairs verb with noun
# ("dossier on", "prior art") and routes reliably.
# BARE-NOUN signal = single word ("funding", "fda", "patent", "grant"):
# too weak to silent-route on alone — it must trigger Q3 with a
# recommended answer instead.
For each specialist S:
score[S] = count of SIGNALS[S] phrases matched in question (case-insensitive substring)
if max(score) >= 2:
route_to = argmax(score) # high confidence — silent route
elif max(score) == 1 and only one specialist has score 1:
if the matched phrase is multi-word (contains a space):
route_to = that specialist # strong phrase — silent route
else:
route_to = "ask" # bare noun — ask Q3, recommend that specialist
else:
route_to = "fallback" # ambiguous or no match — ask Q3 / run fallback
实现: scripts/classifier.py --question "..." 会返回路由决策、匹配的信号、各专业方向的得分,以及(对于 ask)推荐的专业方向。请使用此脚本,不要重新实现。上方的 SIGNALS 映射和规则与脚本逐短语保持同步——出现偏差即为错误。
阶段 3a:委派给专业方向(≥2 个信号或一个强多词短语)
委派时:
- 原样传递用户的问题,以及输出偏好(Q2)
- 让专业方向自行进行 Grill-Me 信息收集——不要预先回答专业方向的问题
- 将专业方向的输出作为用户可见的结果返回
- 在聊天输出中为结果添加标记
[Delegated to: research → {specialist}],让用户知道是哪个技能生成了结果 - 通过
scripts/routing_transparency_logger.py --action record_delegation为审计日志添加标记
阶段 3b:自有备用工作流
如果路由未找到匹配的专业领域技能(且 Q3 确认进行一般研究),则运行 8 步备用流程:
- 拆解 — 将问题拆分为 3–5 个子问题(是什么 / 为什么 / 如何 / 谁 / 接下来会怎样)。搜索前先展示拆解结果。
scripts/fallback_decomposer.py --question "..."可提供一个确定性的起点。 - 选择来源 — 针对每个子问题:时效性 → WebSearch+WebFetch(有相关信号时加上 Reddit/HN);技术 / 文档 → WebSearch+WebFetch;学术 → 如果已连接,则使用 Consensus MCP,否则使用带有
scholar.google.com站点筛选条件的 WebSearch;数据 / 数字 → WebFetch 获取一手文档;实体层面 → 提供改用dossier路由的选项。 - 搜索 — 按子问题依次搜索,每秒 1 个查询,每个来源 2–4 个查询,从宽泛到具体。
- 阅读 + 提取 — 使用 WebFetch 获取高信号结果;记录每个来源 URL。
- 综合 — 每个子问题撰写 2–4 段并添加行内引用;如果来源之间存在分歧,则明确指出。
- 跨领域模式 — 围绕各子问题撰写 1–2 段:共识、争议、空白。
- 输出 — 默认提供 Markdown 简报;如果用户选择文档模式,则提供 DOCX。
- 审计日志 — 记录三个计数(已发送 / 已接收 / 已引用)+ 每个来源的可靠性级别(一手 / 二手 / 三手)。
路由透明协议(强制)
分类后,该技能始终:
- 说明决定,用一句话表达:“路由至
litreview,因为你提到了 PICO 和荟萃分析(2 个信号)。” - 提供覆盖选项:“如果你想进行一般研究,或改用其他专业领域技能,请现在告知。”
- 如果用户没有反对,则按推荐路线继续 — 不设计时器,不倒计时。
- 如果用户选择覆盖 → 接受,重新路由,并通过
routing_transparency_logger.py --action record_override记录覆盖操作。
绝不静默委托。 这是建立信任的关键,也是混合模式奏效的原因。
输出格式
Markdown 简报(Q2 = 快速聊天简报):标题 + *生成时间:[DATE] | 路由至:[专业领域技能 | 备用流程]*,然后依次为 TL;DR(2-3 句)→ 研究结果(每个子问题一个 H3,附行内引用)→ 跨领域模式 → 来源(编号、带超链接,并标注每个来源的可靠性级别)→ 审计(三个计数 + 失败情况)。
DOCX(Q2 = 独立文档):采用标准研究资料包 DOCX 格式 — Arial 12pt,海军蓝标题,蓝色表格标题,带超链接的来源,必须包含审计日志章节。请参考 docx 技能了解设置方法。
审计日志块(备用模式)
Queries sent: N | Sources received: M | Sources cited: K
Failures: F (3-consecutive-failures triggered: yes/no)
Per-source tier: [URL — primary | secondary | tertiary]
Routing decision: fallback (no specialist matched)
Sub-questions: [list]
所有路由决定和覆盖操作也会通过 routing_transparency_logger.py 记录到 ~/.research_sessions/<session>.json。
失败模式
| 失败情况 | 行为 |
|---|---|
| 仅有一个没有上下文的名词信号(例如“funding”“fda”) | 针对匹配的专业领域技能提出 Q3,并将其预先标记为推荐答案。绝不静默路由。 |
| 分类不明确(匹配多个仅有 1 个信号的技能,或没有匹配项) | 提出 Q3(领域消歧)。 |
| 专业领域技能委托失败 | 在聊天中说明。提供重试或改用一般研究的选项。 |
| 用户覆盖路由 | 接受。重新路由。记录覆盖操作。 |
| 备用搜索返回的结果有限 | 明确指出。建议问题可能过于小众或过新。不得捏造信息。 |
| 备用流程中连续 3 次工具调用失败 | 停止,提醒用户,并分享已收集的内容。 |
| 问题不属于研究范畴(例如“帮我写代码”) | 礼貌拒绝。建议使用适当的技能。 |
| 无法回答子问题 | 注明“公开信息有限”;不要默默省略。 |
| 输出格式不匹配 | 遵从 Q2;如果无法提供,则改用 Markdown 并说明。 |
| 环境中缺少专业领域技能 | 在分类评分中跳过该技能;路由至备用流程或次优专业领域技能。 |
被拒绝的反模式
- 由大模型推理分类(必须使用确定性的关键词 + 意图匹配)
- 静默委派(始终展示路由决策)
- 当 ≥2 个信号匹配时,拒绝路由至专业工具
- 对单个裸名词信号进行静默路由(“research FDA approval trends” 应询问,而不是自动路由至 grants)
- 基于墙上时钟的交互提示(“Ns 后自动继续”)——模型无法等待;如果用户没有异议,就按推荐路线继续
- 预先回答专业工具的盘问式信息收集问题(让它自行执行)
- 搜索结果不足时,在回退流程中编造来源
- 在回退模式下跳过审计日志
- 将 “dossier on [company]” 视为回退请求,而不是交给
dossier专业工具(动词与名词成对的短语会触发路由;泛化的 “research X” 形式不会) - 将泛化的 “research [topic]” 查询自动路由至专业工具(单独的 “research Microsoft” 含义模糊——可能是 dossier,也可能是一般研究;应询问 Q3,而不是猜测)
工具
scripts/classifier.py— 确定性 SIGNALS 匹配 → 路由决策(specialist/ask+ 推荐项 /fallback)+ 各专业工具评分 + 匹配短语。--question "..." --output json。scripts/routing_transparency_logger.py— 以 JSON 为后端的审计日志,路径为~/.research_sessions/<session>.json。记录每项路由决策、覆盖操作和委派交接。scripts/fallback_decomposer.py— 将启发式问题 → 拆分为 3–5 个子问题(是什么 / 为什么 / 如何 / 谁 / 下一步是什么)。
参考文档(每份均引用 7 个以上权威来源)
references/hybrid_router_architecture.md— 路由器与运行模式的权衡 + 路由透明度原则references/deterministic_classification_canon.md— 为什么基于关键词的路由优于大模型推理references/fallback_workflow_canon.md— 规划-拆解-搜索-综合方法论
依赖项
WebSearch+WebFetch— 回退工作流必需- 专业技能 — 委派必需:
pulse、grants、litreview、syllabus、patent、dossier。如果缺少某项专业技能,路由器会跳过它,改为路由至回退流程。 - Node.js
docx库 — 用户选择文档输出时必需(Q2 = standalone) - Consensus MCP — 可选;回退流程中出现学术子问题时使用
版本: 1.1.0
源规范: megaprompts/13-research-megaprompt.md(维护者本地的草案规范——已被 git 忽略,不存在于公开仓库中)
构建模式: Path B(直接转换)。v1.1.0:裸名词信号现在会触发询问,而不是静默路由;移除了 5s 自动继续提示;根据 2026-06 newgen 审计精简上下文。