| name | research-collector |
| description | 使用多策略进行高效资料收集:Fork Subagent 隔离收集、两阶段粗筛+精读、格式约束优化 token 消耗、本地缓存复用。触发词:收集资料、研究资料、搜集信息、资料整理、research、gather information、collect资料。 |
Research Collector - 高效资料收集器
使用多种策略进行高效资料收集,优化 token 消耗并支持本地缓存复用。
触发条件
当用户提出以下类型的请求时,调用此技能:
- "帮我收集关于 XX 的资料"
- "搜集 XX 领域的信息"
- "研究 XX 主题"
- "XX 相关的资料有哪些"
- "帮我调研 XX"
- 任何涉及批量搜索、系统性资料收集的请求
核心策略
策略 1: Fork Subagent 隔离收集
原理: 主 Agent 派发多个 fork subagent 并行搜索不同关键词/信源,每个 subagent 只返回结构化摘要,避免原始网页全文污染主上下文。
实现:
主 Agent
├── Fork Subagent 1: 搜索 "关键词 A + 来源1"
├── Fork Subagent 2: 搜索 "关键词 B + 来源2"
├── Fork Subagent 3: 搜索 "关键词 C + 来源3"
└── ...
↓
每个 Subagent 返回:结构化摘要(<150 字)
↓
主 Agent 聚合:提炼后的结果
优势:
- Token 消耗极低:每个 subagent 独立上下文,不共享原始内容
- 并行执行:多路搜索同时进行
- 隔离安全:一个 subagent 失败不影响其他
策略 2: 两阶段收集法
第一阶段: 批量粗筛
- 并行搜索多个关键词
- 每个结果只返回:标题 + URL + 一句话摘要 + 相关性评分 (1-5)
- 目标:快速发现候选资料
第二阶段: 定向精读
- 主 Agent 根据评分筛选 3-5 篇核心资料
- 使用
WebFetch 定向深读
- 提取:核心观点、关键数据、引用来源
- 目标:获取高质量详细内容
策略 3: 强制输出格式约束
给 subagent 的 prompt 中严格限定输出格式,避免冗余:
## 返回格式(严格遵守)
每条资料格式:
- **标题**: [文章标题]
- **URL**: [链接]
- **摘要**: [核心观点,不超过 150 字]
- **相关性评分**: [1-5,5 为高度相关]
- **关键数据**: [如有,列出 1-3 个关键数据点]
- **来源类型**: [官方文档/技术博客/学术论文/社区讨论/新闻报道]
禁止返回:
- ❌ 完整段落
- ❌ 页面导航信息
- ❌ 广告内容
- ❌ Cookie 提示
- ❌ 无关的侧边栏内容
策略 4: 本地缓存复用
缓存目录: ${WORKSPACE_PATH:-./workspace}/${PROJECT_SLUG}/(项目专属文件夹)
文件命名: 02_deep_research.md(固定命名,供下游组件读取)
缓存结构:
# {主题} - 资料收集
收集时间: YYYY-MM-DD HH:MM
搜索关键词: [关键词列表]
## 第一阶段: 粗筛结果
| # | 标题 | URL | 相关性 | 摘要 |
|---|------|-----|--------|------|
| 1 | ... | ... | 5/5 | ... |
## 第二阶段: 精读笔记
### 资料 1: {标题}
- **URL**: ...
- **核心观点**: ...
- **关键数据**: ...
- **我的笔记**: ...
## 综合分析
[总结关键发现、趋势、共识与分歧]
工作流程
Step 0: 读取项目信息和 todo.md 状态(必须执行)
启动时必须确定项目文件夹并检查 todo.md:
WORKSPACE_PATH="${WORKSPACE_PATH:-./workspace}"
PROJECT_SLUG=$(grep "项目标识" "${WORKSPACE_PATH}"/*/00_intent.md 2>/dev/null | head -1 | sed 's/.*://')
if [ -z "$PROJECT_SLUG" ]; then
echo "找到以下项目:"
ls -d "${WORKSPACE_PATH}"/*/ 2>/dev/null | xargs -I {} basename {}
echo "请指定项目名称"
exit 1
fi
PROJECT_DIR="${WORKSPACE_PATH}/${PROJECT_SLUG}"
cat ${PROJECT_DIR}/todo.md 2>/dev/null || echo "不存在"
状态检查:
- 如果 todo.md 不存在:提示用户先运行
/research-planner 创建意图文件
- 如果 todo.md 存在但阶段 0 为 ⬜ 或 🔲:提示用户"意图阶段未完成,请先完成
/research-planner"
- 如果 todo.md 存在且阶段 0 为 ✅,阶段 1 为 ⬜:允许执行,更新阶段 1 为 🔲 进行中
- 如果 todo.md 存在且阶段 1 为 ✅,阶段 2 为 ⬜:允许执行,更新阶段 2 为 🔲 进行中
更新 todo.md 状态:
.claude/scripts/todo-state.sh "${PROJECT_DIR}/todo.md" start P1
.claude/scripts/todo-state.sh "${PROJECT_DIR}/todo.md" start P2
完成后更新状态:
.claude/scripts/todo-state.sh "${PROJECT_DIR}/todo.md" complete P1
.claude/scripts/todo-state.sh "${PROJECT_DIR}/todo.md" complete P2
Step 1: 理解需求
- 识别用户的研究主题
- 确定搜索关键词 (3-5 个不同角度)
- 选择信源偏好 (官方文档/博客/论文/社区)
- 确认输出格式要求
Step 2: 两阶段并行收集
Phase 1: 粗筛 (并行)
使用 Agent 工具创建多个 subagent,每个负责不同搜索维度:
Subagent 1: 搜索 "{关键词1} site:官方文档"
Subagent 2: 搜索 "{关键词2} 最佳实践"
Subagent 3: 搜索 "{关键词3} 教程 入门"
Subagent 4: 搜索 "{关键词4} 常见问题 问题排查"
每个 subagent 的 prompt 模板:
你是一个资料收集助手。只返回关于指定主题的结构化资料摘要。
返回格式(严格遵守,每条不超过 150 字):
1. **标题**: ...
**URL**: ...
**摘要**: [核心观点,150 字内]
**相关性评分**: [1-5]
**关键数据**: [1-3 个]
**来源类型**: [官方文档/博客/论文/社区/新闻]
禁止返回: 完整段落、导航、广告、Cookie 提示。
请搜索并返回 3-5 条最相关的资料。
参数:
- 主题: {主题}
- 搜索关键词: {关键词}
- 信源限制: {信源类型}
Phase 2: 精读 (按需)
从粗筛结果中筛选评分 ≥4 的资料:
使用 WebFetch 深度阅读:
- URL: {选中的 URL}
- Prompt: "提取文章的核心观点、关键数据、主要结论。忽略广告、导航、侧边栏。"
Step 3: 结果整合
- 聚合所有 subagent 返回的结构化摘要
- 按相关性评分排序
- 对高评分资料进行精读
- 生成综合分析
Step 4: 缓存写入
将结果写入本地文件:
${WORKSPACE_PATH:-./workspace}/${PROJECT_SLUG}/02_deep_research.md
注意: 使用固定文件名 02_deep_research.md,方便下游组件(outline-generator、chapter-writer)直接读取。
更新 todo.md 状态:
.claude/scripts/todo-state.sh "${PROJECT_DIR}/todo.md" complete P2
输出示例
## 📚 资料收集完成
### 第一阶段: 粗筛结果 (共发现 12 条)
| # | 标题 | 评分 | 来源 |
|---|------|------|------|
| 1 | React 18 新特性详解 | 5/5 | 官方文档 |
| 2 | React 并发模式最佳实践 | 4/5 | 技术博客 |
| 3 | React 18 迁移指南 | 4/5 | 官方博客 |
| ... | ... | ... | ... |
### 第二阶段: 精读笔记
#### 1. React 18 新特性详解 (官方文档)
- **核心观点**: React 18 引入并发渲染、自动批处理、Suspense 改进
- **关键数据**:
- 性能提升 2-3 倍 (复杂应用)
- 自动批处理减少 60% 渲染次数
- **我的笔记**: [根据精读内容生成]
### 综合分析
[总结关键发现、最佳实践、常见问题]
---
✅ 资料已缓存到: ${WORKSPACE_PATH:-./workspace}/${PROJECT_SLUG}/02_deep_research.md
高级用法
1. 递归深入收集
/research-collector "React 状态管理"
/research-collector "Zustand vs Jotai vs Redux Toolkit 对比"
/research-collector "React 状态管理 项目实战 最佳实践"
2. 多维度并行
同时从多个维度收集:
- 维度 1: 官方文档 (权威性)
- 维度 2: 技术博客 (实践经验)
- 维度 3: GitHub Issues (常见问题)
- 维度 4: Stack Overflow (社区解答)
3. 缓存复用
ls research_notes/*react*
cat research_notes/react-2025-01-15.md
/research-collector "React 性能优化" (补充之前未覆盖的方面)
注意事项
- 相关性评分: 严格按 1-5 评分,避免所有资料都标高分
- 摘要字数: 每条摘要控制在 150 字内,超长会截断
- 缓存命名: 使用有意义的文件名,便于后续查找
- 并行限制: 同时最多 5 个 subagent,避免过载
- 源质量: 优先官方文档 > 技术博客 > 社区讨论 > 新闻报道
- 时效性: 标注资料发布日期,优先选择近 2 年的内容