batch-research
A scheduling agent that manages concurrent data scraping from multiple sources, organizing them into prioritized batches for reporting.
Install
mkdir -p .claude/skills/batch-research && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5795" && unzip -o skill.zip -d .claude/skills/batch-research && rm skill.zipInstalls to .claude/skills/batch-research
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
批量数据采集技能,负责分批并发调度 researcher agent 抓取所有数据源。Key capabilities
- →Parse data source lists from configuration
- →Generate dynamic URLs for research
- →Schedule researcher agents in prioritized batches
- →Manage concurrency and domain rate limits
- →Generate summary reports from logs
How it works
The skill acts as a scheduler that divides URLs into batches, executes researcher agents concurrently within defined limits, and aggregates results.
Inputs & outputs
When to use batch-research
- →Aggregating daily technical news
- →Collecting updates from multiple blogs
- →Curating influencer content feeds
- →Automating weekly research reports
About this skill
Batch Research 技能
此技能用于指导 /weekly 命令如何高效、分批、并发地从多个数据源采集信息。
核心职责
作为批量调度器,负责:
- 解析数据源列表
- 生成所有待抓取 URL
- 分批并发调用
researcheragent - 汇总结果生成报告
工作流程
Step 1: 准备阶段
- 读取数据源:从
.opencode/REFERENCE.md获取完整数据源列表 - 生成 URL 列表:
- 静态 URL:直接使用
- 动态 URL(Hacker News):使用
generateHNUrls(start_date, end_date)
import { generateHNUrls } from '.opencode/utils.mjs'
// Hacker News - 每天一个 URL
const hnUrls = generateHNUrls(start_date, end_date)
// 返回: [
// "https://news.ycombinator.com/front?day=2026-03-22",
// "https://news.ycombinator.com/front?day=2026-03-23",
// ...
// ]
Step 2: 分批策略
将所有 URL 按优先级分为 3 批,每批 10-12 个 URL:
| 批次 | 数据源类型 | 来源 |
|---|---|---|
| Batch 1 | Important Resources | REFERENCE.md 中 "Important Resources" 部分 |
| Batch 2 | Blogs & Websites | REFERENCE.md 中 "Blogs & Websites" 部分 |
| Batch 3 | KOL & Influencers | REFERENCE.md 中 "KOL & Influencers" 部分 |
Step 3: 并发调度
并发配置
| 参数 | 值 | 说明 |
|---|---|---|
max_parallel | 5 | 每轮最大并发数 |
batch_interval | 3s | 批次间等待时间 |
domain_rate_limit | 2 req/domain | 同域名限流 |
调度规则
对每个批次:
- 分轮执行:将批次内 URL 按
max_parallel分轮(如 12 个 URL 分 3 轮:5 + 5 + 2) - 轮内并发:同时启动该轮所有
researcheragent - 等待完成:等待当前轮所有 researcher 返回结果
- 进入下一轮:当前轮全部完成后,等待
batch_interval,再启动下一轮 - 批次完成后:进入下一个批次
调用 researcher 的参数格式:
url: https://news.ycombinator.com/front?day=2026-03-22
source_name: Hacker News
week_id: Y26W12
start_date: 2026-03-22
end_date: 2026-03-28
current_date: 2026-03-25
timezone: UTC+0
并发调用示例(伪代码):
# Batch 1: Important Resources
并行调用:
- researcher(url: "https://news.ycombinator.com/front?day=2026-03-22", source_name: "Hacker News")
- researcher(url: "https://news.ycombinator.com/front?day=2026-03-23", source_name: "Hacker News")
- researcher(url: "https://drafts.miantiao.me/", source_name: "Miantiao Drafts")
- researcher(url: "https://www.solidot.org/search?tid=151", source_name: "Solidot")
- ...
等待 Batch 1 全部完成
# Batch 2: Blogs & Websites
并行调用:
- researcher(url: "https://www.anthropic.com/engineering", source_name: "Anthropic Engineering")
- researcher(url: "https://claude.com/blog", source_name: "Claude Blog")
- ...
等待 Batch 2 全部完成
# Batch 3: KOL & Influencers
并行调用:
- researcher(url: "https://baoyu.io/", source_name: "Baoyu")
- ...
等待 Batch 3 全部完成
Step 4: 日志记录
所有日志统一写入 logs/weekly-{week_id}.log,仅用于人类审计,不作为恢复依据。
日志格式:
[2026-03-25T12:34:56Z] [PHASE1] [INFO] 开始抓取 Hacker News
[2026-03-25T12:35:10Z] [PHASE1] [OK] Hacker News - 5 篇文章
[2026-03-25T12:35:15Z] [PHASE1] [FAIL] daily.dev - 429 Too Many Requests (retried 2)
日志级别:
| 级别 | 用途 |
|---|---|
INFO | 阶段/任务开始 |
OK | 任务成功(含文章数) |
FAIL | 任务失败(含错误原因和重试次数) |
Step 5: 汇总报告
所有批次完成后,在日志末尾生成汇总:
[2026-03-25T12:45:00Z] [PHASE1] [SUMMARY] 总数据源: 30 | 成功: 27 (X篇) | 失败: 3
约束与注意事项
- 全量抓取:必须抓取所有数据源,不能跳过
- 批次顺序:必须按批次顺序执行,等待当前批次完成后再进入下一批
- 错误隔离:单个 researcher 失败不影响其他
- 重试由 researcher 处理:本技能不负责重试,由 researcher 自行处理
- 进入下一阶段前:必须完成所有批次的抓取
When not to use it
- →Real-time data streaming
- →Single-source research tasks
Prerequisites
Limitations
- →Requires batch-based execution order
- →Depends on researcher agent for retries
How it compares
It provides an automated, throttled, and prioritized batch processing workflow instead of manual sequential data collection.
Compared to similar skills
batch-research side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| batch-research (this skill) | 1 | 6mo | No flags | Intermediate |
| firecrawl-scrape | 5 | 7mo | Review | Beginner |
| firecrawl | 0 | 3mo | Review | Intermediate |
| wechat-batch-crawl | 0 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by miantiao-me
View all by miantiao-me →You might also like
firecrawl-scrape
parcadei
Scrape web pages and extract content via Firecrawl MCP
firecrawl
hardjunior
|
wechat-batch-crawl
JourneytoNewland
| Intent | Supported Phrases | |--------|-------------------| | 爬取今天 | "爬取今天的微信文章" / "获取今天的文章" / "抓今天的公众号" | | 爬取昨天 | "爬取昨天的微信文章" / "获取昨天的文章" | | 爬取指定日期 | "爬取1月20号的文章" / "获取上周一的文章" | | 仅列出 | "今天有哪些文章" / "列出今天的文章" / "看看有啥新文章" | | 增量爬取 | "继续爬取" / "爬取新增的文章" |
reddit-fetch
ykdojo
Fetch content from Reddit using Gemini CLI when WebFetch is blocked. Use when accessing Reddit URLs, researching topics on Reddit, or when Reddit returns 403/blocked errors.
brightdata-web-mcp
patchy631
Search the web, scrape websites, extract structured data from URLs, and automate browsers using Bright Data's Web MCP. Use when fetching live web content, bypassing blocks/CAPTCHAs, getting product data from Amazon/eBay, social media posts, or when standard requests fail.
tavily-web
davila7
Web search, content extraction, crawling, and research capabilities using Tavily API