第 75 卷
数据源就绪检查
定时触发不等于数据源已就绪。每次运行开始时,先检查各数据源的可用性:
| 数据源 | 检查项 | 不可用时的处理 |
|---|---|---|
| @wechat‑article‑search | 搜索 API 可达,返回非空结果 | 标记缺失,继续其他来源 |
| @蜜度热搜榜 | 当日热搜列表可获取 | 标记缺失,继续其他来源 |
| @GitHub热门项目 | GitHub API 未限流,热门列表正常 | 退避重试一次,失败则标记缺失 |
| @多引擎搜索 | 搜索引擎可达 | 标记缺失,继续其他来源 |
| @AIHOT | 热点追踪服务正常 | 标记缺失,继续其他来源 |
五个来源中至少有三个正常,才输出热点清单。全部失败时,进入 Blocked 状态并推送告警,次日重新触发。
内容质量门禁
数据源可达不代表内容有效。聚合后需要过滤:
・ 相关性:条目是否真正属于 AI 领域(排除泛科技话题的噪音);
・ 时效性:内容日期是否为当日(排除过期热点被重新推送的情况);
・ 重复性:同一事件是否已在多个来源出现,合并展示;
・ 最低数量:有效条目少于 5 条时,视为当日 AI 热点不足,在输出中标注。
质量状态:pass(正常输出)、warning(部分来源缺失,在输出顶部说明)、blocked(有效条目不足,不推送正文,只推送说明)。
输出结构
聚合完成后,输出一份结构固定的热点清单,方便博主快速扫描和判断:
AI 热点选题日报 — 2026‑07‑10
【今日概况】有效条目:18 条 | 来源:5/5 | 运行时间:09:02
━━━━━━━━━━━━━━━━ 高热度(适合快速蹭热点)
- [模型名称] 发布,[核心能力] — 来源:AIHOT + GitHub
热度指数:★★★★★ | 建议角度:功能测评 / 使用教程
- [工具名称] 开源,[功能描述] — 来源:GitHub热门项目
热度指数:★★★★ | 建议角度:上手教程 / 对比测评
━━━━━━━━━━━━━━━━ 潜力方向(适合深度分析)
- [话题] 引发讨论 — 来源:微信公众号
热度指数:★★★ | 建议角度:观点分析 / 案例拆解
━━━━━━━━━━━━━━━━
- 数据来源说明
推送目标与幂等
每次运行的输出需要推送到固定位置。常见推送目标:
| 推送目标 | 适用场景 | 注意事项 |
|---|---|---|
| 飞书群消息 | 团队共享选题 | 记录 message ID,避免重复推送 |
| 个人飞书通知 | 个人使用 | 同上 |
| 飞书文档(追加) | 保留历史记录,便于回溯 | 每日一条,按日期追加,不覆盖历 |
史邮件跨平台通知记录发件 ID
幂等原则:如果某次任务因推送失败而重试,不应重复发送已成功推送的内容。每次运行生成唯一批次 ID(如 ai‑hotspot‑2026‑07‑10),推送成功后记录状态,重试时检查状态跳过已完成步骤。
超时和重试策略
| 失败类型 | 是否重试 | 策略 |
|---|---|---|
| 数据源 API 超时 | 是 | 等待 10 秒后重试一次,仍失败则 |
标记缺失 GitHub API 限流(429)是按响应头中的 Retry‑After 等待,
最多等待 2 次
| 认证失效(401/403) | 否 | 转人工处理,不自动重试 |
|---|---|---|
| 推送目标不可达 | 是 | 指数退避重试 2 次,失败则告警并 |
保留结果聚合结果为空否进入 blocked 状态,推送说明,次
日重新触发
重试只针对临时性故障,不对输入问题或配置问题重试。
断点续跑
每次运行生成状态文件,记录已完成的步骤和产物:
{ "batch_id": "ai‑hotspot‑2026‑07‑10",
"trigger_time": "2026‑07‑10T09:00:00+08:00", "state": "delivering",
"completed": ["fetching", "aggregating", "filtering"], "source_status": {
"wechat": "ok", "midu": "ok",
"github": "ok", "multi_search": "ok",
"aihot": "ok"
"updated_at": "2026‑07‑10T09:02:14+08:00"
}
推送失败后重试,从 delivering 步骤继续,不重新抓取和聚合。
告警要可行动
自动化任务失败时,告警内容必须包含足够信息,让收到告警的人能够立即判断如何处理:
- AI 热点选题任务告警
批次:ai‑hotspot‑2026‑07‑10 状态:Blocked
触发时间:09:00 失败原因:所有数据源均返回空结果或超时
已完成步骤:fetching(部分失败)
影响:今日热点清单未生成,未推送
建议处理:
- 检查各数据源 API 状态
- 如为临时故障,可手动触发一次任务重跑
- 如需跳过今日,确认后标记为已处理
恢复入口:WorkBuddy → 自动化任务 → 手动运行
“任务失败,请查看”不足以让人处理。
降级交付
当部分数据源失败,不应等待全部就绪再输出:
・ 3 个及以上来源正常 → 输出清单,顶部标注哪些来源缺失;
・ 2 个来源正常 → 输出简化清单,标注数据不完整;
・ 1 个或 0 个来源正常 → 不输出正文,只推送说明和告警。
降级结果必须显式标记来源覆盖情况,不伪装成完整运行。
日志
每次运行记录:
・ 批次 ID 和触发方式(定时 / 手动);
・ 各数据源响应状态和耗时;
・ 聚合条目数量和过滤后数量;
・ 推送目标和结果(成功 / 失败 / message ID);
・ 总耗时和错误信息;
・ 运行成本(Token 消耗、API 调用次数)。
日志不记录热点内容正文(避免日志过大)。
全站分卷索引 · 80 卷
- 1第 1 卷
- 2第 2 卷
- 3第 3 卷
- 4第 4 卷
- 5第 5 卷
- 6第 6 卷
- 7第 7 卷
- 8第 8 卷
- 9第 9 卷
- 10第 10 卷
- 11第 11 卷
- 12第 12 卷
- 13第 13 卷
- 14第 14 卷
- 15第 15 卷
- 16第 16 卷
- 17第 17 卷
- 18第 18 卷
- 19第 19 卷
- 20第 20 卷
- 21第 21 卷
- 22第 22 卷
- 23第 23 卷
- 24第 24 卷
- 25第 25 卷
- 26第 26 卷
- 27第 27 卷
- 28第 28 卷
- 29第 29 卷
- 30第 30 卷
- 31第 31 卷
- 32第 32 卷
- 33第 33 卷
- 34第 34 卷
- 35第 35 卷
- 36第 36 卷
- 37第 37 卷
- 38第 38 卷
- 39第 39 卷
- 40第 40 卷
- 41第 41 卷
- 42第 42 卷
- 43第 43 卷
- 44第 44 卷
- 45第 45 卷
- 46第 46 卷
- 47第 47 卷
- 48第 48 卷
- 49第 49 卷
- 50第 50 卷
- 51第 51 卷
- 52第 52 卷
- 53第 53 卷
- 54第 54 卷
- 55第 55 卷
- 56第 56 卷
- 57第 57 卷
- 58第 58 卷
- 59第 59 卷
- 60第 60 卷
- 61第 61 卷
- 62第 62 卷
- 63第 63 卷
- 64第 64 卷
- 65第 65 卷
- 66第 66 卷
- 67第 67 卷
- 68第 68 卷
- 69第 69 卷
- 70第 70 卷
- 71第 71 卷
- 72第 72 卷
- 73第 73 卷
- 74第 74 卷
- 75第 75 卷
- 76第 76 卷
- 77第 77 卷
- 78第 78 卷
- 79第 79 卷
- 80第 80 卷