14.6 案例二:研报素材定时采集与整理
面向经管学生、研究者与从业者的 AI 智能体设计教材

场景:研究团队正在撰写一份宏观经济月报,需要每天定时采集 PMI、CPI、社融等指标的最新数据,并按模板整理到素材库中。团队成员在白天写分析,Claude 在夜间自动完成数据采集和初步整理。
项目目录结构
macro-report/
├── data/
│ ├── raw/ # 原始采集数据
│ └── processed/ # 整理后的结构化数据
├── templates/
│ └── indicator-card.md # 指标卡片模板
├── output/
│ └── monthly-materials/ # 月报素材库
├── scripts/
│ ├── fetch_pmi.py # PMI 数据采集脚本
│ ├── fetch_cpi.py # CPI 数据采集脚本
│ └── fetch_social_finance.py # 社融数据采集脚本
├── TODO.md # 任务清单
└── CLAUDE.md # 项目规则文件CLAUDE.md 配置
# 宏观经济月报素材采集
## 身份
你是一名宏观经济数据助理,负责定时采集和整理宏观指标数据。
## 工作模式
每次被 /loop 触发时,读取 TODO.md,找到第一个 pending 任务并执行。
执行完成后将状态改为 completed,并在 progress.md 中记录执行结果。
## 数据采集
- PMI:运行 python scripts/fetch_pmi.py,输出到 data/raw/pmi/
- CPI:运行 python scripts/fetch_cpi.py,输出到 data/raw/cpi/
- 社融:运行 python scripts/fetch_social_finance.py,输出到 data/raw/social-finance/
## 整理规范
- 采集完成后,按 templates/indicator-card.md 模板生成指标卡片
- 指标卡片保存到 output/monthly-materials/ 目录
- 卡片内容包括:指标名称、最新值、环比变动、同比变动、趋势判断
## 质量要求
- 采集失败时,在 TODO.md 对应任务中标注失败原因,状态改为 failed
- 数据缺失字段标记为 N/A,不要编造数据TODO.md 任务清单
# 月报素材采集任务
## task-001
- 状态:completed
- 描述:采集 3 月 PMI 数据并生成指标卡片
- 完成时间:2026-03-14 22:15
## task-002
- 状态:pending
- 描述:采集 2 月 CPI 数据并生成指标卡片
## task-003
- 状态:pending
- 描述:采集 2 月社融数据并生成指标卡片
## task-004
- 状态:pending
- 描述:汇总所有已完成的指标卡片,生成月报数据摘要页用户操作
研究员在下班前启动采集任务:
cd ~/macro-report && claude
切换到 Auto-Accept Mode,启动定时轮询:
▶ Claude Code
/loop 2h 读取 TODO.md,找到第一个 pending 任务并执行。完成后更新任务状态,把执行结果追加到 progress.md。如果采集失败,标记为 failed 并记录原因。
Claude 每 2 小时检查一次 TODO.md,逐条执行。研究员第二天早上查看 progress.md 和 output/monthly-materials/ 目录,确认数据采集情况。如果某条任务失败,修复脚本后把状态改回 pending,Claude 下次轮询时会重新执行。
研究员还可以随时追加新任务,打开 TODO.md 在末尾添加:
## task-005
- 状态:pending
- 描述:对比 PMI 和 CPI 的趋势分歧,生成一段 200 字的分析备注Claude 下次轮询时自动拾取这条新任务。