数据层:8平台 Fetcher(插件化,注册即生效)
↓
健壮层:重试(3次) → 降级(备用API) → 缓存(1h) → 优雅失败
↓
算法层:结构化评分模型(热度40% + 跨平台共振50% + 基础分10%)
↓
内容层:三层洞察(What / So What / Now What)× 四种风格
↓
输出层:群聊 / 知识库 / 可视化看板 / 语音播报
↓
持久层:按日归档历史数据,支持趋势分析
```
requests==2.31.0
beautifulsoup4==4.12.2
```
调用 scripts/hot_list_fetcher.py 获取8大平台实时热榜数据:
python scripts/hot_list_fetcher.py
脚本将自动抓取以下数据源(每个fetcher独立,互不影响):
| 平台 | 数据量 | 降级方案 |
|---|---|---|
| ------ | -------- | --------- |
| 微博热搜 | 前50条 | 缓存兜底 |
| 知乎热榜 | 前50条 | 第三方聚合 → 缓存兜底 |
| B站热门 | 前100条 | 缓存兜底 |
| 抖音热榜 | 前50条 | 第三方聚合 → 缓存兜底 |
| 百度热搜 | 前50条 | 缓存兜底 |
| 36氪热榜 | 前50条 | 缓存兜底 |
| 少数派热榜 | 前40条 | 缓存兜底 |
| 贴吧热议 | 前50条 | 缓存兜底 |
健壮机制:
数据将保存为 ./hot_lists.json 文件,包含:
version: "2.0"timestamp: 抓取时间platform_stats: 各平台抓取状态data: 所有热点数据(含评分字段)读取 ./hot_lists.json 文件,脚本已自动完成评分,智能体需要:
platform_stats,记录哪些平台成功/降级/失败final_score 降序取前10条评分算法:
综合得分 = 热度标准化分 × 0.4 + 跨平台共振分 × 0.5 + 基础分 10
- 热度标准化:各平台热度归一化到 0-100
- 跨平台共振:每多一个平台同时热议 +20 分
- 基础分:保底 10 分,避免零分
筛选标准(优先级从高到低):
为每条选中的热点生成三层洞察,而非一句话点评:
| 层级 | 含义 | 要求 |
|---|---|---|
| ------ | ------ | ------ |
| What | 事件本质(一句话定义) | 15-25字,直击核心,不加修饰 |
| So What | 为什么重要(影响链) | 30-50字,分析因果与结构性影响 |
| Now What | 后续关注什么(预判) | 20-35字,指出后续关键变量或时间节点 |
点评风格:根据用户指定或默认选择
| 风格 | 调性 | 触发词 |
|---|---|---|
| ------ | ------ | -------- |
| 严肃分析(默认) | 客观、专业、克制 | "分析"、"严肃"、或不指定 |
| 毒舌吐槽 | 犀利、反讽、解构 | "毒舌"、"吐槽"、"讽刺" |
| 投资视角 | 机会导向、数据驱动 | "投资"、"股票"、"标的" |
| 吃瓜八卦 | 轻松、八卦、猎奇 | "吃瓜"、"八卦"、"聊聊" |
点评质量红线:
根据用户需求选择输出格式,参见 references/output-format.md:
| 格式 | 适用场景 | 触发词 |
|---|---|---|
| ------ | --------- | -------- |
| 群聊格式(默认) | 微信/钉钉/飞书群 | 不指定、"群聊"、"简洁" |
| 知识库格式 | Notion/Obsidian/语雀 | "知识库"、"详细"、"归档" |
| 可视化看板 | 汇报演示/PPT | "看板"、"图表"、"可视化" |
| 语音播报 | 通勤听热点 | "语音"、"播报"、"听" |
若用户未指定格式,默认使用群聊格式。
若用户未指定风格,默认使用严肃分析风格。
输出末尾附加提示:
> 如需详细版本,请说明"知识库格式";如换口味,试试"毒舌吐槽"/"投资视角"/"吃瓜八卦"风格
./hot_lists.json 临时文件./cache/ 目录保留,供下次降级使用./history/ 目录长期保留,供趋势分析使用当用户询问"热点趋势"、"对比昨天"、"本周回顾"时:
./history/ 目录下对应日期的数据当用户指定领域偏好时:
共 3 个版本