Skip to content
Back to skills

Batch Research

ASecurity

批量数据采集技能,负责分批并发调度 researcher agent 抓取所有数据源。

  • 563 stars
  • 0 votes
  • 0 copies
  • 38 views
  • Added December 19, 2025
ai-agentsjavascriptjava

Security analysis

A100/100

Scanned September 5, 2026

npx -y skills add miantiao-me/aigc-weekly --skill batch-research --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Batch Research?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Batch Research
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/miantiao-me-batch-research/badge)](https://www.skillsdirectory.com/skills/miantiao-me-batch-research)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: batch-research
description: 批量数据采集技能,负责分批并发调度 researcher agent 抓取所有数据源。
---

# Batch Research 技能

此技能用于指导 `/weekly` 命令如何高效、分批、并发地从多个数据源采集信息。

## 核心职责

作为批量调度器,负责:

1. 解析数据源列表
2. 生成所有待抓取 URL
3. 分批并发调用 `researcher` agent
4. 汇总结果生成报告

## 工作流程

### Step 1: 准备阶段

1. **读取数据源**:从 `.opencode/REFERENCE.md` 获取完整数据源列表
2. **生成 URL 列表**:
   - 静态 URL:直接使用
   - 动态 URL(Hacker News):使用 `generateHNUrls(start_date, end_date)`

```javascript
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 | 同域名限流     |

#### 调度规则

对每个批次:

1. **分轮执行**:将批次内 URL 按 `max_parallel` 分轮(如 12 个 URL 分 3 轮:5 + 5 + 2)
2. **轮内并发**:同时启动该轮所有 `researcher` agent
3. **等待完成**:等待当前轮所有 researcher 返回结果
4. **进入下一轮**:当前轮全部完成后,等待 `batch_interval`,再启动下一轮
5. **批次完成后**:进入下一个批次

**调用 researcher 的参数格式**:

```yaml
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 自行处理
- **进入下一阶段前**:必须完成所有批次的抓取

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.