给我的 OpenClaw 做了个 AI 新闻监控工具
给我的 OpenClaw 做了个 AI 新闻监控工具
装过不少 AI 新闻监控工具。AI news、RadarAI、各类”AI 日报”skills,听着都挺好,用起来总差点意思。
有的号称覆盖全网,结果一看全是同一个源搬来搬去;有的说自动抓取,实际上经常跳过整个网站,你都不知道它漏了什么;还有的纯粹是信息搬运,抓完往那一丢,既不去重也不排序,十条里有三条是换了个标题的同一件事。
我的需求其实不复杂:每天早上给我一份报告,十条最值得关注的 AI 新闻,每条带中文摘要和关键词,结合自己业务方向给点启发。就这么个事,找了一圈没找到趁手的。
干脆自己做一个。
思路和做法
于是决定自己写个 AI 新闻监控的 skill 给 OpenClaw 用。技术栈不复杂:后端 FastAPI + SQLite,前端 React + Tailwind,收集新闻后,用大模型做分析。整个项目用 Claude Code 写的,前后断断续续搞了三天。
流程分四步:
第一步,采集。 配置 11 个新闻源,国内的 36 氪、钛媒体、量子位、机器之心、InfoQ,国外的 OpenAI、DeepMind、Anthropic、Google、MIT Technology Review 等这些,分成学术、产业、资本、Agent、前沿五个维度,权重不同。用 RSS 拉取,每个源最多取 10 篇。
第二步,去重。 先按网址去重,再用语义相似度判断——两篇文章说的是不是同一件事,哪怕标题完全不一样。阈值设为 0.85,实测效果还行,基本能把”换皮新闻”过滤掉。
第三步,打分排序。 每条新闻的得分由三个因素决定:它属于哪个维度(学术类权重最高)、来源是一线还是二线、发布时间多久了(8 小时内线性衰减,之后加速衰减)。排完取 30 条作为候选池。
第四步,大模型分析。 这步最重要也最折腾。让大模型从 30 条里挑出 Top 10,然后逐条生成中文标题、100 字摘要、关键词标签、商业价值判断,最后再综合生成三条战略建议。所有分析都会结合公司背景——我们做 AI 云平台、智能营销、数字人这些方向,所以建议会往这些业务上靠。
最终呈现是一个 Web 页面,左边是历史报告列表,右边是报告详情。支持一键采集、定时采集(默认每天早上 8 点),也可以只用现有数据重新分析。
踩过的坑
坑一:十条新闻八条学术
第一版跑出来的 Top 10,八条是论文相关的,产业和资本方向几乎没有。原因是学术类的权重最高,大模型也倾向选看起来”重要”的论文。后来加了两个限制:同一个类别最多 3 条,同一个来源最多 2 条。这样强制保证了多样性,十条新闻至少能覆盖三四个维度。
坑二:大模型回复里夹私货
用的大模型有个习惯:回答之前”思考”一段,输出一大堆推理过程,然后才给正式结果。我要的是纯 JSON,结果前面多了一大段文字,直接解析就报错。写了个提取器,从回复里找最大的那个完整 JSON 对象,不管前面后面有什么都能正确提取。
坑三:新闻正文全是乱码
有几个中文源,尤其 InfoQ、36 氪,RSS 返回的内容里夹着大量 HTML 标签。页面上显示出来就是一堆尖括号和转义符号。加了 HTML 清洗,发现光加一层不够,有的标签嵌套很深,有的实体编码是转义过的。最后在采集、入库、分析、展示四个环节都做了清洗,才基本干净。
后面想做的事
目前只覆盖了 RSS 能抓到的内容。下一步想加两个方向:
一个是社交媒体。Twitter/X 上很多 AI 领域的一手消息比新闻网站快得多,Hugging Face 的论文讨论、OpenAI 员工的动态,这些信息密度很高但现在完全没覆盖。
另一个是视频。B 站、YouTube 上不少 AI 深度解读内容质量相当好,但没有文字版就没法用 RSS 抓。考虑结合字幕提取或者视频摘要模型来做。
再远一点,想把每天的报告积累起来,变成一个可检索的 AI 行业知识库。按时间线串起来,哪个赛道什么时候出了什么变化,回头找素材或写分析报告的时候直接查,比翻收藏夹靠谱多了。
工具不大,但解决了一个实际问题:每天 5 分钟看一份报告,比花半小时刷十个网站强。自己的需求自己最清楚,有时候不如动手做一个。
夜雨聆风