# Collection Tools

这些脚本用于把 JD、论文和行业资料从 Markdown 笔记变成可检索、可检查、可视化的数据。

## Scripts

### `new_item.py`

生成一个带 frontmatter 的新条目草稿。

```bash
python3 tools/collection/new_item.py jobs "baidu aidu agent algorithm engineer beijing" \
  --title "Baidu AIDU Agent Algorithm Engineer" \
  --url "https://talent.baidu.com/jobs/list?projectType=3&recruitType=GRADUATE"
```

支持的 collection:

- `jobs`
- `papers`
- `industry`

### `build_index.py`

扫描 `jobs/items/`、`papers/items/`、`industry/items/` 的 frontmatter，生成结构化索引。

```bash
python3 tools/collection/build_index.py
```

输出：

- `data/index.json`
- `data/summary.json`

### `check_urls.py`

检查条目中的 `url`、`source_url`、`code_url` 是否可访问。

```bash
python3 tools/collection/check_urls.py
```

可加 `--json` 输出机器可读结果。

### `collect_arxiv.py`

用 arXiv API 批量收集最近一年 Agent 相关论文，生成 `papers/items/` 条目、`data/arxiv-agent-papers-*.json` 入库清单和 `data/arxiv-agent-candidates-*.json` 全量候选清单。

```bash
python3 tools/collection/collect_arxiv.py \
  --from-date 2025-07-08 \
  --to-date 2026-07-08 \
  --max-items 180 \
  --sleep 1.0
```

默认策略：

- 多组关键词召回：LLM agent、language agent、tool use、memory、evaluation、coding agent、web/GUI agent、multi-agent、safety、RAG 等。
- 自动去重：按 arXiv ID 去重。
- 自动打标签：根据标题和摘要推断 topics。
- 自动分层：生成 `queued` 条目，后续人工精读后再升级状态。
- API 退避：遇到 arXiv 429 或临时网络错误时按 `--retries` 和 `--retry-sleep` 重试。

当 `export.arxiv.org` API 不可用时，可以使用 arXiv 官方搜索页面后端：

```bash
python3 tools/collection/collect_arxiv.py \
  --backend search-html \
  --from-date 2026-07-09 \
  --to-date 2026-07-27 \
  --per-query 300 \
  --page-size 100 \
  --request-timeout 120 \
  --dry-run
```

`--dry-run` 不写 `papers/items/`，但会保存候选和选择 manifest。之后使用
`promote_arxiv_manifest.py` 按本地阈值入库。API 和 HTML 后端使用相同的分类、去重和
manifest schema。

## Method

1. 搜索或导入资料。
2. 用 `new_item.py` 生成草稿。
3. 人工整理摘要、标签、判断和关联。
4. 运行 `build_index.py` 更新结构化数据。
5. 运行 `check_urls.py` 检查来源可达性。
6. 更新对应 insight 文件。

大规模论文扩展时，先运行 `collect_arxiv.py`，再运行 `build_index.py`。

### `promote_arxiv_manifest.py`

从 `collect_arxiv.py` 生成的候选池里，把达到阈值的记录批量提升为 `papers/items/` 条目。适合在 arXiv API 限流后继续本地调阈值。

```bash
python3 tools/collection/promote_arxiv_manifest.py \
  data/arxiv-agent-candidates-2025-07-08-to-2026-07-08.json \
  --min-score 13 \
  --relevance high \
  --output-manifest data/arxiv-agent-papers-2025-07-08-to-2026-07-08.json
```

默认用途：

- `score >= 13` 且 `relevance=high` 的论文进入主阅读队列。
- 低分候选仍留在 candidate manifest，后续可以人工抽查或降低阈值再提升。
