← 返回首页
Projects

Case Study

AI News Radar:用异构双引擎构建抗脆弱的情报系统

异构双引擎(FastAPI + Coze)· Make.com 中枢调度 · Notion Headless CMS · Next.js 实时渲染

FastAPIPythonCozeMake.comDeepSeekGPT-4oNotion APIRenderNext.js

🌍 Situation|背景与困境

作为一名深耕 Agentic Workflow 的 AI 产品经理,对前沿技术的敏锐嗅觉是我的核心竞争力。但 2026 年的 AI 资讯环境让「保持敏锐」变得极其昂贵:

  • 信息碎片化加剧:真正的 Alpha 信号分散在 X 上 10 位 KOL 的零散动态、Hacker News 的长篇技术辩论、Polymarket 的预测市场、YouTube 长视频字幕、以及中英文科技媒体之间。
  • 工具链两极分化:传统 RSS 只能搬运,缺乏语义理解;AI 聚合产品(Bensbites、Smol AI 等)口径偏英文、更新频次固定、无法个性化。
  • 单点风险:任何一个「一体化」方案都是脆弱的——API 限流、平台宕机、网络封锁,都会让情报链断流。

核心痛点

每天花 30-40 分钟人工巡逻 5-6 个信息源,仍然会错过关键信号。且一旦某天没时间浏览,知识债务会滚雪球式增长。

🎯 Task|目标与约束

构建一个完全自动化、抗单点故障、中英文双语、每日高频更新的个人 AI 情报系统。

硬性目标

  • 日均采集 30+ 条高信噪比资讯
  • 100% 自动化,零人工干预
  • 中文摘要(DeepSeek 级质量)
  • 每日至少 2 次主动更新,而非被动等待
  • 前端即时可见(< 2 分钟数据时延)

软性约束

  • 运维成本 < $1/月
  • 代码可迭代(区别于纯 SaaS 黑盒)
  • 能在个人网站上展示代码与无代码两种范式的取舍

最关键的约束:我自己既是开发者又是唯一用户,不能用「团队协作」的方案来绕过真正的技术决策难点。

🛠️ Action|行动方案

第 1 步:识别「不可调和的矛盾」,决定用异构双引擎

在架构设计初期,我先尝试了单一方案——纯 Coze 无代码覆盖全部数据源。结果撞上现实墙:

  • YouTube 字幕解析:Coze 在长文本提取时频繁 Timeout
  • 评论树遍历:Hacker News 的 500+ 评论线程让 Coze 节点内存溢出
  • 防爬虫与 API 成本:X 官方 API 定价飙升至 $5,000/月 量级,无代码平台只能靠 Google Search 间接获取

同时,纯代码方案也不可行——纯 Python 方案开发周期长,无法快速响应「某天想加个新博主」这类需求。

结论:用两套工具各司其职,而不是强行让一种范式覆盖全部需求。

第 2 步:Engine A — 社区共识引擎(Python + FastAPI)

负责:深度与厚度 — 长文本、长字幕、评论树、跨源打分

  • 基于开源项目 mvanhorn/last30days-skill 改造为 FastAPI 微服务
  • 三源精简:HN / Polymarket / YouTube(字幕级)
  • Render Web Service 部署,Make.com 每天 09:30 AM HTTP POST 触发
  • LLM 层从 Gemini 切换到 DeepSeek(因部分地区访问 Gemini gRPC 不稳定)
  • 每源独立 60 秒超时,单源故障不拖死主管线

关键代码决策

  • 修复 SubQuery(frozen dataclass)的 FrozenInstanceError,改为 rebuild 而非原地修改
  • 加入 LLM_PROVIDER 环境变量,一键切换 Gemini / DeepSeek / OpenAI(抗供应商锁定)
  • 输出严格 JSON Array(字段与下游一致)供 Make.com Iterator 直接消费

Engine A:社区共识(Consensus Layer)

数据源

  • Hacker News:前沿讨论 + 顶级评论提取
  • Polymarket:预测市场对 AI 事件的下注信号
  • YouTube:Matt Wolfe / AI Explained / The Rundown 等头部频道字幕级解析

触发:每日 9:30 AM · Make.com 定时 HTTP POST

与 Engine B 的分工

A 侧扛「厚」任务:长文本、重 IO、确定性超时与重试;B 侧扛「灵」任务:领袖动态、中文媒体、RSS 快讯与快速改 Query。

第 3 步:Engine B — 领袖动态引擎(Coze 工作流)

负责:速度与破壁 — 领袖动态、中文媒体、RSS 快讯

五条并行采集通道

通道Query覆盖
X 领袖通道(sama OR elonmusk OR karpathy OR ylecun OR AndrewYNg OR DrJimFan OR philschmid OR rohanpaul OR bindureddy OR AravSrinivas) AI site:x.com10 位 AI KOL
模型发布通道("GPT-5" OR "Claude" OR "Gemini" OR "Grok" OR "DeepSeek") release site:x.com大模型发布事件
中文媒体通道("DeepSeek" OR "阶跃星辰" OR "大模型发布" OR "通用人工智能") AND (site:36kr.com OR site:geekpark.net OR site:huxiu.com OR site:jiqizhixin.com)四大中文科技媒体
YouTube 视频通道("AI news" OR "Sora" OR "GPT" OR "Claude") ("The Rundown AI" OR "AI Explained" OR "Matt Wolfe")头部英文频道
RSS 38氪通道RSS 监听 + 关键词过滤(放行 AI 关键词、排除汽车/股市噪音)中文快讯兜底

错峰调度:每天 10:42 AM 定时触发(与 Engine A 的 09:30 错开,降低集中限流风险,上午与中午各有一批新信号)。

清洗层:GPT-4o 统一格式化为与 Engine A 一致的字段结构,实现下游无感知合并。

第 4 步:中枢调度 + 统一存储 + 前端渲染

09:30 AM ──► Engine A (FastAPI) ──┐
                                  ├──► Make.com 统一入库 ──► Notion DB ──► Next.js
10:42 AM ──► Engine B (Coze) ─────┘

TimeRange 字段:24h / 周 / 月
  • Make.com:中枢神经。接收双引擎 JSON Array → Iterator 拆分 → 逐条写入 Notion(URL 去重)
  • Notion:Headless CMS。Title / Source / Author / URL / OriginalText / Date / TimeRange 等字段统一建模
  • Next.js:个人网站前端直连 Notion API,按 TimeRange 做三级时间切片展示

端到端架构示意

09:30 AM                              10:42 AM
   |                                     |
   v                                     v
+-----------------+                  +------------------+
|  Make.com 定时   |                  |  Coze 工作流      |
|  HTTP POST 触发  |                  |  (5 节点并发)     |
+--------+--------+                  +--------+---------+
         |                                    |
         v                                    v
+-----------------+                  +------------------+
|  FastAPI 微服务  |                  | GoogleWebSearch  |
|  (Render 部署)   |                  | YouTube / RSS    |
|  |- HN 抓取      |                  |  |- X KOL 通道   |
|  |- Polymarket   |                  |  |- 模型发布通道  |
|  '- YouTube 字幕 |                  |  |- 中文媒体通道  |
+--------+--------+                  |  |- YouTube 通道 |
         |                           |  '- RSS 38氪通道 |
         +-----------+---------------+--------+---------+
                     |                        |
                     +-----------+------------+
                                 |
                                 v
                      +----------------------+
                      |  DeepSeek / GPT-4o   |
                      |  双语清洗 + 摘要      |
                      |  + 去重 + 打分        |
                      +----------+-----------+
                                 |
                                 v
                      +----------------------+
                      |  Notion Database     |
                      |  (Headless CMS)      |
                      |  + TimeRange 分级    |
                      +----------+-----------+
                                 |
                                 v
                      +----------------------+
                      |  Next.js 前端        |
                      |  (Vercel)            |
                      |  三级时间切片渲染     |
                      +----------------------+

数据流转四阶段

  1. 1. 分布式采集:异构双引擎在 9:30 与 10:42 错峰唤醒,最大化降低 API 限流概率。
  2. 2. 清洗与规范化:格式化为统一的 JSON Array(Title, Source, Author, URL, OriginalText, Date, TimeRange)。
  3. 3. 中央调度:Make.com 拦截双引擎数据,执行去重逻辑,统一写入 Notion。
  4. 4. 前端渲染:Next.js 直连 Notion API,实现全自动的「抓取-打分-发布」闭环。

第 5 步:优雅降级 + 抗脆弱设计

  • 单引擎挂掉 → 另一引擎仍在供数
  • YouTube yt-dlp 失败 → 自动回退到 HTTP 直抓
  • DeepSeek API 限流 → 单条摘要失败不阻塞其他条目(可占位「摘要生成中」)
  • Notion 写入失败 → 错误日志记录,下次重试

产品侧能力(与工程降级配套)

  • 多维度时间切片:日更 / 周榜 / 月度精选,TimeRange 标签 + 前端 Tab 切换
  • 零信息损失的中文化:英文原推 → 中文标题 + 约 200 字摘要 + 保留原文 URL;重要术语保留英文(GPT-5、Gemini 等)
  • Headless 可复制:Notion 作为唯一源,Web / 小程序 / Newsletter 均可复用同一套 API

📈 Result|成果与复盘

量化成果

指标数字
日均入库条数30-50 条
自动化率100%
数据时延抓取到入库 < 2 分钟
运维成本< $0.5 / 月(Render 免费层 + DeepSeek 按量)
时间节省从 40 分钟/天 → 0 分钟/天
单日更新次数2 次(9:30 AM + 10:42 AM)
数据源覆盖8 个(HN + PM + YouTube×2 + X×2 + 中文媒体 + 38氪)

质量验证

  • 可读性:DeepSeek 生成的中文摘要保留重要英文术语(GPT-5、Gemini),不生硬翻译
  • 准确性:手动抽查 50 条,信号正确率 94%(3 条过期、0 条错误归类)
  • 覆盖度:和 Bensbites、Smol AI 等英文日报对比,本系统多出约 30% 的中文信号与 X 原生讨论

复盘:三个反直觉的决策

1. 为什么不用一个工具全搞定?
无代码平台在「稳定性优先」任务上有天花板,代码平台在「灵活性优先」任务上太重。我没有选「更好的那个」,而是承认两者各自的边界,用两套工具分别覆盖各自擅长的领域。

2. 为什么不追求实时?
每天 2 次定时足够——AI 圈真正重要的信号不会在 30 分钟内变质,而实时会带来指数级的 API 成本和去重复杂度。在「时效性」和「成本/稳定性」之间,我选了后者。

3. 为什么用 Notion 而不是自建数据库?
Notion 作为 Headless CMS 零运维,自带 Web 界面便于手动审阅/置顶/归档。若未来接移动端 App 或 Newsletter,Notion API 直连即可,前端换马甲不改后端。

对未来的启发

这个项目的本质产出不是「一个资讯工具」,而是在真实业务中验证了异构架构的可行性。作为 AI PM,我现在面对客户需求时,会更冷静地问:

「这个需求是『灵活优先』还是『稳定优先』?这两种特性能在一个工具里并存吗?如果不能,我们接受异构的复杂度,还是接受单一工具的缺陷?」

这是我从 AI News Radar 学到的最有价值的一课。

💬 写在最后

这个项目不是为了解决「我要看 AI 新闻」这个需求——这个需求 RSS 都能解决。它是我作为 AI PM 对「Agentic Workflow 落地」的一份实战答卷:当无代码的优雅撞上真实世界的泥泞时,一个好的产品经理应该怎么决策?

异构双引擎不是「折中」,而是「取舍」。这是我想传递的核心产品观。