Files
agent-skills/sn-dimension-research/SKILL.md
Hermes Agent ccc63d1e70 first commit
2026-05-10 13:52:46 +08:00

220 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: sn-dimension-research
description: "[sn-deep-research 子阶段] 按 plan.json 中的维度定义执行单维度多源搜索、证据筛选、交叉验证,输出 sub_reports/{dimension_id}.md。通常由 sn-deep-research 自动调用。"
---
# Dimension Research
产出一个维度的 `sub_reports/{dimension_id}.md`。它把 `plan.json` 中的一个维度研究扎实,并在子报告内保留精简证据记录;不负责规划维度、综合所有维度或写最终报告。
完成本 skill 必须落盘两个结果:`sub_reports/{dimension_id}.md`、更新该维度 `status` 后的 `plan.json`。只在对话中说明研究结果不算完成。
它的核心职责不是“跑一次搜索”,而是把一个维度需要的不同来源拼成可判断的证据面:先做广度发现,再做专项深挖,最后回到原始来源核验,决定哪些材料保留、哪些材料丢弃、哪些结论需要交叉确认、哪些空白必须显式保留。
## 行为边界
做:
- 读取一个 dimension 的 `key_questions``method``search_strategy``expected_output`
-`search_strategy` 选择合适的搜索 skill 或检索入口,多轮搜索并覆盖计划指定的来源类型。
- 判断来源可信度,优先追溯原始来源。
- 对关键事实做交叉验证,记录冲突和信息缺口。
- 判断是否满足 `search_strategy.sufficiency`
- 写入带精简证据记录的维度子报告,并更新 `plan.json` 中该维度 `status`
不做:
- 不修改研究目标和报告格式。
- 不重写整个 `plan.json`,除非当前维度缺少必要搜索策略。
- 不写中间综合文件或 `report.md`
- 不把单次搜索结果直接改写成子报告。
- 不编造来源,不把未确认事实写成确定结论。
## 输入
- `{report_dir}/request.md`
- `{report_dir}/plan.json`
- 当前 dimension id
- 依赖维度的 `sub_reports/*.md`,如 `depends_on` 非空
## 搜索模型
把单维度研究理解成三层搜索模型:
1. **广度发现**:先用通用搜索快速摸清这个维度的来源地图,识别关键实体、术语、机构、时间点、争议点和候选来源类型。
2. **专项深挖**:对已经识别出的重点来源类型,调用相应专门搜索 skill 做更高召回、更高精度、更结构化的深挖。
3. **原始核验**:对关键事实、关键数字、关键时间点和高风险判断,优先回到原始来源确认。
通用搜索不是低配兜底,而是默认的广度发现层。专门搜索 skill 不是必须前置,而是对重点来源类型的深挖工具。最终可信度取决于来源本身,而不是搜索入口本身。
## 搜索技能分工
`sn-dimension-research` 是编排层,不需要自己囊括所有平台细节;它应根据 `source_types` 和当前维度性质,选择合适的搜索 skill 或原生浏览能力。
优先按下面方式路由:
- **学术论文、综述、百科、引用追溯**:使用 `sn-search-academic`
- **开源代码、技术问答、模型/数据集、工程社区**:使用 `sn-search-code`
- **中文社区讨论、中文视频平台、用户经验反馈**:使用 `sn-search-social-cn`
- **英文社区讨论、英文视频平台、英文舆情反馈**:使用 `sn-search-social-en`
- **官方网页、监管公告、公司披露、产品文档、新闻报道、机构页面**:使用通用网页检索与页面打开能力
如果一个维度同时需要多种来源,不要只选一个 skill应按证据需要组合使用。
如果某类来源暂时**没有对应的专门搜索 skill**,不要因此跳过该来源类型;继续用通用搜索完成广度发现和基础覆盖。只有当该来源类型对当前维度非常关键、且通用搜索无法满足深挖需要时,才把它记为覆盖限制。
## 来源优先级
多源搜索不是“来源越多越好”,而是“证据层次要够”。优先级通常是:
1. 原始来源:官方文件、监管公告、论文原文、公司披露、产品文档、数据库原始记录
2. 高可信二级来源:权威机构报告、顶级媒体、行业组织、研究机构、系统综述
3. 补充来源:社区讨论、问答、社交平台、视频、博客
社区和社交来源主要用于:
- 发现真实使用反馈
- 暴露争议点
- 补充术语、案例、边缘问题
- 生成下一轮检索线索
不要让社区讨论替代原始来源。
通用搜索在这里主要承担:
- 发现候选来源
- 暴露争议点和下一轮搜索线索
- 帮你决定哪些来源类型值得进入专项深挖
- 快速补足跨来源视角
专门搜索 skill 在这里主要承担:
- 在某一来源类型内提高召回
- 提供更结构化的结果字段
- 支持更细的筛选、排序和引用追溯
- 减少在高价值来源中的漏检
## 执行流程
1. **读取任务**:从 `plan.json` 找到当前维度,确认 `key_questions``method``search_strategy``expected_output`
2. **补齐搜索策略**:如果缺少 `search_strategy`,先为当前维度补写 `source_types``seed_queries``freshness_requirement``sufficiency`,再执行。
3. **广度发现**:先从 `seed_queries` 开始,用通用搜索和必要的初始入口摸清这个维度的来源地图;记录新实体、术语、机构、年份、争议点和候选来源类型。
4. **选择深挖方向**:判断哪些来源类型最可能回答 `key_questions`,再决定是否调用专门搜索 skill 深挖。
5. **专项深挖**:按 `source_types` 对重点来源类型做定向搜索;必要时组合学术、官方、新闻、社区、代码等多种来源。
6. **筛选证据**:保留能回答 `key_questions` 的材料;丢弃营销软文、二手转述、来源不明、内容过短或与维度无关的材料。
7. **原始核验**:关键事实优先找原始来源;高风险事实至少用两个独立来源确认。冲突无法解决时记录冲突和可能原因。
8. **判断充分性**:逐条检查 `search_strategy.sufficiency`。未满足时继续检索或明确记录信息缺口。
9. **整合判断**:把保留材料整理成“发现、冲突、限制、仍待回答的问题”,不要把搜索结果原样堆进子报告。
10. **落盘**:写入 `sub_reports/{dimension_id}.md`,并把该维度 `status` 更新为 `done`
11. **确认**:读取上述两个文件,确认子报告非空且包含证据记录,`plan.json` 中该维度已标记 `done`
## 搜索路由建议
可按维度类型快速选择入口:
| 维度类型 | 优先来源 | 推荐入口 |
|---|---|---|
| 学术 / 医学 / 方法论 | 先用通用搜索找论文线索,再进论文、综述、百科、引用链 | `sn-search-academic` |
| 技术实现 / 开源生态 / 模型工具 | 先发现关键项目和问题域,再进 GitHub、Stack Overflow、HuggingFace、HN | `sn-search-code` |
| 用户反馈 / 社区体验 / 中文舆情 | 先发现平台/话题,再进 B站、知乎、抖音 | `sn-search-social-cn` |
| 海外社区 / 英文舆情 / 视频解释 | 先发现关键词和社区,再进 Reddit、X、YouTube | `sn-search-social-en` |
| 政策 / 监管 / 公司 / 产品 / 新闻 | 先发现机构、法规、事件节点,再进官方网站、公告、公司页、新闻站 | 通用网页检索 |
`source_types` 里出现“官方文件 + 社区讨论”这类组合,至少覆盖一个高可信原始来源和一个补充来源,不要只停留在其中一侧。
如果某行对应的专门 skill 暂时不存在,就把“推荐入口”理解为“优先搜索方向”,继续以通用搜索完成发现与基础覆盖。
## 搜索充分性
最低要求:
- 每个 `key_questions` 都有材料支撑,或明确标注信息缺口。
- 至少执行两轮检索;第一轮以广度发现为主,后续轮次应基于上一轮发现扩展关键词或来源类型。
- 对比、趋势、政策、市场、公司、产品类维度至少覆盖两种来源类型。
- 重要维度应至少覆盖“广度发现 + 原始核验”两层;若存在高价值专门入口,优先再加一层专项深挖。
- 涉及最新信息时,必须核查最新可得资料并写明时间范围。
- 连续两轮没有产生新关键事实,才可视为信息趋于饱和。
如果由于缺少专门搜索 skill 导致某类来源无法做专项深挖,仍可继续研究,但只在下列情况把它视为显著限制:
- 该来源类型对当前维度是核心证据面
- 通用搜索已经明显无法继续提升发现质量
- 缺少这类深挖会显著影响结论强度
满足最低要求仍不代表结论确定;不确定性要写入子报告。
## 精简证据记录
把必要追溯信息压缩进子报告:
- `搜索覆盖情况`:说明广度发现用了什么入口、专项深挖用了哪些搜索 skill、原始核验回到了哪些来源类型。
- `搜索覆盖情况`:只写来源类型、轮次、关键扩展词和停止理由,不写完整查询流水。
- `证据记录`:用表格列出保留材料,每个关键材料一行;通常 5-12 行即可。
- `充分性判断`:说明已覆盖问题、未覆盖问题、交叉验证情况、信息缺口,以及是否仍有本应深挖但未能深挖的关键来源类型。
证据记录表格式:
```markdown
| 材料/来源 | 来源类型 | 关键支撑 | 覆盖问题 | 可信度/限制 |
|---|---|---|---|---|
```
## 子报告格式
写入 `{report_dir}/sub_reports/{dimension_id}.md`
```markdown
# {dimension_id}. {维度名称}
## 本维度要回答的问题
## 搜索覆盖情况
说明覆盖了哪些来源类型、执行了哪些轮次、停止理由是什么。
## 证据记录
用精简表格列出本维度保留的关键材料,不写完整搜索流水。
## 关键发现
只写本维度内有材料支撑的发现。
## 分析
解释发现之间的关系、因果、差异、趋势或约束。
## 对终稿的贡献
说明本维度能为 report 提供什么判断依据、表格、风险点或结构材料。
## 不确定性与空白
说明信息缺口、冲突事实、口径限制、时效风险。
## 需要后续维度承接的问题
```
## 质量门槛
- 子报告中的每个关键发现都能追溯到本报告的证据记录。
- 每个 `key_questions` 在子报告中被回答、部分回答或标注无法回答。
- 不确定性和冲突不被抹平。
- `status=done` 只能在子报告已写入且包含证据记录后更新。
- 更新 `status=done` 后必须再次读取 `plan.json` 确认。
- 子报告不写终稿摘要,不跨越本维度范围。
## 常见失败
- 搜一次就写子报告。
- 把通用搜索当成纯兜底,而不是先做广度发现。
- 还没完成广度发现,就过早进入某一个专门入口。
- 明明已有专门搜索 skill却只用单一通用搜索入口浅搜。
- 因为缺少专门搜索 skill就直接放弃某类来源覆盖。
- 只用搜索结果摘要,不打开或核查原始来源。
- 把社区讨论当成主要证据,而不回到官方或原始来源。
- 只找支持某个方向的材料,忽略反例和冲突。
- 把缺口包装成结论。
- 写完整搜索流水,导致子报告臃肿。
- 写了子报告但没有更新并确认 `plan.json`