# News Summary — 针对性新闻功能 PRD

## 背景与目标

- **现状**：仅从固定 RSS 源拉取并做摘要，无法按用户意图筛选（如「商业有什么新闻」「苹果公司相关新闻」）。
- **目标**：支持**分类定向**（如商业/科技）、**关键词过滤**、**搜索 API 查询**，在保留现有摘要与语音能力的前提下扩展「针对性新闻」。

## 用户场景

| 用户说法示例           | 预期能力           |
|------------------------|--------------------|
| 商业有什么新闻         | 只拉商业类 feed，摘要 |
| 科技/世界/财经新闻     | 按分类选对应 RSS   |
| 苹果 / 特斯拉 / 某公司 | 关键词过滤或搜索 API |
| 加息 / 通胀 / 某事件   | 关键词过滤或搜索 API |
| 今天有什么重要新闻     | 沿用现有「全量摘要」 |

## 功能需求

### F1：分类定向（增强现有）

- 用户表达**分类意图**（商业、科技、世界、财经等）时，只拉取对应 RSS feed，再做摘要。
- 分类与 feed 映射沿用 SKILL 内现有配置（如 BBC business/technology/world）。
- **验收**：问「商业有什么新闻」时，输出仅来自商业类源且格式符合现有摘要规范。

### F2：关键词过滤（RSS 后处理）

- 拉取 1 个或多个 RSS 后，在标题与描述中按**用户提供的关键词**过滤条目，再对过滤结果做摘要。
- 支持多关键词（AND/OR 可先采用简单策略，如任一匹配即保留）。
- 若无匹配，明确回复「未找到与 XX 相关的新闻」。
- **验收**：指定关键词后，摘要中仅包含含该关键词的新闻，且来源可追溯。

### F3：搜索 API 集成

- 接入至少一个**按关键词/主题搜索**的新闻 API（如 NewsAPI、或 Google News RSS 的 q 参数），用于用户明确问「某关键词/某公司/某事件」的新闻。
- 搜索结果为条目列表，需与现有摘要流程统一：标题+来源+可选描述，再汇总成文本摘要；可选语音。
- 需考虑 API 配额、KEY 配置（不写死）、失败降级（如回退到 F2 关键词过滤）。
- **验收**：用户问「苹果公司最近新闻」时，能返回基于搜索 API 的摘要；API 不可用时可有明确降级或提示。

## 非功能需求

- 与现有 SKILL 工作流一致：先取数 → 再摘要 → 可选 TTS。
- 不改变现有「无针对性」时的行为：不指定分类/关键词时，行为与当前一致。
- 实现可放在 openclawd 侧脚本/子模块，SKILL 只描述何时用分类/关键词/搜索及调用方式。

## 验收标准汇总

1. **分类**：问「商业有什么新闻」→ 仅商业类 feed，摘要正确。
2. **关键词**：指定关键词 → 摘要仅包含匹配条目；无匹配时有友好提示。
3. **搜索 API**：指定实体/事件 → 能返回基于搜索的摘要；有 KEY 与降级说明。

## 后续可选

- 分类与关键词组合（如「商业里和利率相关的新闻」）。
- 多语言摘要或来源偏好（如优先某几家媒体）。
