17.3 信息采集:多源数据的并行抓取

面向经管学生、研究者与从业者的 AI 智能体设计教材

作者

李学恒、林建浩、严翊歆

发布于

2026-05-11

投研分析师 60%-70% 的工时花在数据收集上。一份深度研究报告通常需要三类原始材料:财报数据、券商研报、新闻舆情。三者互不依赖,串行处理意味着分析师必须逐个来源逐个读,做完一类再做下一类。这正是 Agent Teams 的价值所在:三个采集 agent 各占一个 Tmux 窗口,同时工作,完成后统一落盘到 raw_data/

本节拆解三个采集 Skill 的设计、并行启动的操作方式,以及标准化输出格式。

三类数据源与采集 Skill

投研信息采集可以拆成三条独立管线。每条管线对应一个 Skill,由 data-collector agent 在各自的 Tmux 窗口中调用。

Skill 输入 产出 存放路径
earnings-extract 年报/季报 PDF 关键财务指标结构化表格 raw_data/earnings/
report-digest 多份券商研报 核心观点、目标价、风险提示 raw_data/reports/
news-monitor 近期新闻搜索结果 分类新闻列表 + 情绪评级 raw_data/news/

三个 Skill 的产出格式统一。每份输出文件都用 YAML frontmatter 标注元数据:数据来源、采集时间、可信度评级。下游分析 agent 读取时,只需解析 frontmatter 就能判断数据是否可用。

财报数据提取 Skill

earnings-extract 是三个采集 Skill 中结构化程度最高的。它从年报或季报 PDF 中提取关键财务指标,产出一张标准表格。完整的 SKILL.md 如下:

▶ Skill
---
name: earnings-extract
description: 从上市公司年报/季报 PDF 中提取关键财务指标,产出结构化 Markdown 表格。当需要整理财报数据时使用。
---

# 财报数据提取

## 输入

- 年报或季报 PDF 文件路径(支持中英文财报)
- 目标公司名称和股票代码

## 提取指标

按以下四组提取,每个指标必须标注页码和原文数值:

### 盈利能力
| 指标 | 说明 |
|:---|:---|
| 营业收入 | 本期及同比增长率 |
| 净利润 | 本期及同比增长率 |
| 毛利率 | 百分比 |
| 净利润率 | 百分比 |
| ROE | 百分比 |
| 经营利润率 | 百分比 |

### 成长性
| 指标 | 说明 |
|:---|:---|
| 收入增长率 | YoY |
| 盈利增长率 | YoY |
| 账面价值增长率 | YoY |

### 财务健康
| 指标 | 说明 |
|:---|:---|
| 流动比率 | 流动资产 / 流动负债 |
| 资产负债率 | 总负债 / 总资产 |
| D/E | 总负债 / 股东权益 |
| 经营性现金流 | 本期金额 |
| 自由现金流(FCF) | 经营性现金流 - 资本支出 |

### 估值参考
| 指标 | 说明 |
|:---|:---|
| P/E | 市盈率(取最新收盘价) |
| P/B | 市净率 |
| P/S | 市销率 |
| EV/EBITDA | 企业价值倍数 |

## 输出格式

产出 Markdown 文件,包含 YAML frontmatter 和四组指标表格:

## 提取规则

1. 每个数值必须标注 PDF 页码(如"见 P.42")
2. 找不到的指标标记为"未披露",不得推算或编造
3. 单位统一为:金额用亿元(保留两位小数),比率用百分比(保留一位小数)
4. 中文财报中"归属于母公司股东的净利润"对应净利润指标
5. 如遇合并报表与母公司报表,优先取合并报表数据
财报数字的常见提取错误

AI 从 PDF 提取数字时有三个高频出错点。第一,小数点位移:把”营收 312.5 亿元”读成”3125 亿元”。第二,单位混淆:中文财报用万元、亿元,英文财报用 thousands、millions,混读会差三个数量级。第三,币种遗漏:港股公司以港币计、A 股以人民币计,不标注币种会让下游分析出错。提取完成后,至少抽查三个关键数字与原文核对。

研报观点整合与新闻舆情采集

report-digest 读取多份券商研报(通常 3-5 份),提取每份研报的核心观点、盈利预测、目标价和主要风险提示,合并为一份观点对照表。Skill 的设计要点是按研报来源分列,而不是混在一起。分列可以暴露分歧:如果三家券商对同一指标的预测差异超过 20%,下游分析需要特别关注。

news-monitor 搜索目标公司近 30 天的新闻,按正面、中性、负面三类整理,并给出整体情绪评级(positive / neutral / negative)。Skill 要求每条新闻标注来源和日期,过滤掉重复报道和营销软文。

report-digest 的完整 SKILL.md 如下:

▶ Skill
---
name: report-digest
description: 研报观点整合。读取多份券商研报,按来源分列提取核心观点、盈利预测和目标价,输出观点对照表。当需要整合研报时使用。
---

# 研报观点整合

## 输入

- 3-5 份券商研报 PDF 或文本文件
- 目标公司名称和股票代码

## 提取规则

按研报来源逐份提取,每份研报提取以下字段:

| 字段 | 说明 |
|:---|:---|
| 券商名称 | 研报出具机构 |
| 发布日期 | 研报发布日期,超过 60 天标注"[过期]" |
| 投资评级 | 买入/增持/中性/减持 |
| 目标价 | 12 个月目标价及估值方法 |
| 核心观点 | 3-5 条关键判断,每条不超过 50 字 |
| 盈利预测 | 未来 1-3 年营收和净利润预测 |
| 主要风险 | 研报提及的核心风险因素 |

## 分歧检测

- 目标价最大偏差 >= 20% 时,标注"[分歧显著]"
- 评级不一致时,列出各家评级对照

## 输出格式

产出 Markdown 文件至 raw_data/reports/,包含 YAML frontmatter 和按券商分列的观点对照表。

news-monitor 的完整 SKILL.md 如下:

▶ Skill
---
name: news-monitor
description: 新闻舆情采集。搜索目标公司近期新闻,按情绪分类整理,输出舆情汇总表。当需要采集新闻或判断舆情时使用。
---

# 新闻舆情采集

## 输入

- 目标公司名称和股票代码
- 采集时间窗口(默认近 30 天)

## 搜索与过滤

1. 搜索目标公司名称 + 股票代码的近期新闻
2. 过滤掉重复报道(同一事件只保留首发来源)
3. 过滤掉营销软文和自媒体转载

## 分类规则

每条新闻按以下维度标注:

| 字段 | 说明 |
|:---|:---|
| 标题 | 新闻标题 |
| 来源 | 媒体名称 |
| 日期 | 发布日期 |
| 类别 | 业务 / 政策 / 市场 / 管理层 / 其他 |
| 情绪 | positive / neutral / negative |
| 摘要 | 一句话概括(不超过 30 字) |

## 整体情绪评级

- positive 占比 >= 60% → 整体 positive
- negative 占比 >= 40% → 整体 negative
- 其余 → neutral

## 输出格式

产出 Markdown 文件至 raw_data/news/,包含 YAML frontmatter、分类新闻列表和整体情绪评级。

三个采集 Skill 的输出格式保持一致,方便下游分析 agent 批量读取。

研报观点的时效性

券商研报的目标价和盈利预测有明确的时效窗口。一份三个月前的研报可能基于过时的宏观假设。report-digest Skill 应在 frontmatter 中标注研报发布日期,并在输出中高亮超过 60 天的研报。下游分析 agent 可以据此降低过期研报的权重。

Agent Teams 并行采集

三个采集任务互不依赖,这是使用 Agent Teams 的前提条件。在 Tmux 中为每个 agent 分配独立窗口,各自读取对应的 Skill,各自产出结构化文件。

启动并行采集的操作如下:

▶ Claude Code
以比亚迪(002594.SZ)为目标,启动 Agent Teams 并行采集。
三个 data-collector agent 分别执行:
- 窗口 1:/earnings-extract 提取比亚迪 2025 年年报的财务指标
- 窗口 2:/report-digest 整合最近 5 份券商研报的核心观点
- 窗口 3:/news-monitor 采集近 30 天比亚迪相关新闻
产出统一存入 raw_data/ 对应子目录。

三个窗口同时开始工作。财报提取通常最快(10-15 分钟,取决于 PDF 长度),研报整合次之(15-20 分钟,需要逐份读取),新闻采集最慢(20-30 分钟,涉及搜索和去重)。串行执行总计约 60 分钟,并行执行只需等最慢的那一路,约 30 分钟。

并行采集的时间收益

三路并行将信息采集阶段从约 60 分钟压缩到约 30 分钟。这个收益在数据源更多时更显著。如果加入第四路(如行业数据采集),串行增加 20 分钟,但并行几乎不增加等待时间。Agent Teams 的并行价值随数据源数量线性增长。

标准化输出与数据质量检查

三个 agent 各自完成后,raw_data/ 目录结构如下:

raw_data/
├── earnings/
│   └── 002594_2025_annual.md    # 财报指标表
├── reports/
│   └── 002594_broker_digest.md  # 研报观点对照表
└── news/
    └── 002594_news_30d.md       # 新闻舆情汇总

每份文件的 frontmatter 包含四个标准字段:

字段 说明
source 数据来源(财报名称/研报机构/搜索引擎)
ticker 股票代码
extracted_at 采集完成时间
confidence 可信度评级(high / medium / low)

采集完成后,进入分析阶段前需要做一轮交叉验证。重点检查三项:财报中的营收和净利润是否与研报引用的同期数字一致;研报目标价是否在合理范围内(偏离当前股价超过 50% 需要标注);新闻中提到的重大事件(如诉讼、并购、高管变动)是否在研报中有对应分析。

交叉验证由研究者完成,不由 AI 自动判断。AI 可以把三份数据中的关键数字并列呈现,方便肉眼比对,但”数字是否一致”的最终判断留给人。