
1. 一份AI日报的诞生从信息洪流到结构化简报每天早上七点我的信息采集脚本会自动跑完一轮把过去24小时里散落在各个角落的AI动态抓回来去重、分类、打分最后生成一份可以直接发出去的日报。这套流程我打磨了将近一年中间推翻重来过三次现在算是跑得比较顺了。今天这篇不聊别的就把这套AI最新资讯日报的生产逻辑完整拆开从信息源怎么选、去重怎么做、评分怎么定到最终排版和人工复核的边界在哪里全部摊开讲。你可能会问现在各种AI新闻聚合工具一抓一大把为什么还要自己搭一套原因很简单通用工具给你的是所有信息而日报需要的是今天值得看的信息。这两者之间的差距就是一套筛选和排序逻辑。我搭这套东西的初衷是给自己团队做每日晨会前的信息同步材料后来发现身边不少朋友也有类似需求就慢慢把流程标准化了。这篇文章适合三类人看一是想给自己或团队做信息简报的从业者二是对信息聚合流程感兴趣的技术同学三是单纯想知道一份靠谱的AI日报背后长什么样的读者。不管你是哪一类看完应该都能拿走点能直接用的东西。先说清楚一个前提日报的核心价值不在于全而在于准和快。全的信息网上到处都是但把噪音过滤掉、把真正重要的东西挑出来、并且用最短的时间让人看懂这才是日报存在的意义。所以整套流程的设计目标就三个词覆盖够广、噪音够低、阅读够快。后面所有的技术选型和参数调整都是围绕这三个目标来的。2. 信息源的分层策略为什么我不追求全网抓取2.1 三层信息源结构的设计逻辑刚开始做的时候我犯过一个典型错误觉得信息源越多越好恨不得把能抓的站点全接进来。结果就是每天抓回来几百条光去重和筛选就耗掉大量时间而且信噪比极低。后来我改成三层结构情况才好转。第一层是核心源大概8到10个这些是必须每天扫的包括主流AI研究机构的官方博客、几个头部模型厂商的更新日志、以及两三个高质量的行业分析通讯。这一层的特点是更新频率稳定、内容质量高、几乎不会出现纯噪音。第二层是扩展源大概20到30个覆盖技术社区的热门讨论、开源项目的release动态、以及一些垂直领域的专业媒体。这一层需要过滤但经常能挖到核心源没覆盖的细节。第三层是信号源主要是社交平台上的讨论热度和关键词趋势这一层不直接产出内容而是用来判断今天什么话题在升温辅助排序。为什么要这么分因为不同层级的源处理策略完全不同。核心源可以全量抓取、直接进入候选池扩展源需要先过一遍关键词过滤信号源则只提取趋势指标不抓正文。如果混在一起处理要么漏掉重要信息要么被噪音淹没。2.2 每个源的具体接入方式和踩坑记录接入方式上我优先选RSS其次是官方API最后才是网页解析。RSS的好处是结构稳定、解析成本低缺点是很多新站点不提供了。官方API最可靠但有频率限制需要做请求队列。网页解析是最后的选择因为页面结构一变就得改代码维护成本高。这里踩过一个坑有几个源我一开始用网页解析跑了两个月都好好的结果对方改版整个抓取直接挂掉而且因为没做失败告警我过了三天才发现日报里少了这一块内容。后来我加了两条规则一是所有解析任务必须有失败重试和告警二是核心源尽量走RSS或API实在没有再考虑解析。另外抓取频率也要控制我一般设成每30分钟一轮太频繁容易被限流太稀疏又会影响时效性。还有一个细节是时区处理。AI领域的动态是全球性的不同源的发布时间戳时区不一样如果不统一处理排序就会乱。我的做法是全部转成UTC存储展示的时候再转成本地时区。这个看起来是小事但实际跑起来时区问题导致的排序错乱非常常见。3. 去重这件事比想象中难得多3.1 从URL去重到语义去重的三级方案去重是日报流程里最容易被低估的环节。最开始我只做了URL去重觉得同一个链接不重复出现就行了。但实际跑起来发现同一个事件往往有多个来源报道URL完全不同内容却高度重合。比如某个模型发布官方博客一条、科技媒体三条、社区讨论五条如果不去重日报里就会出现九条讲同一件事的内容。我现在的去重分三级。第一级是URL精确去重这个最简单维护一个已抓取URL的集合就行。第二级是标题相似度去重用编辑距离或者简单的分词后Jaccard相似度阈值设在0.75左右超过就认为是同一事件。第三级是语义去重这个最复杂需要对正文做向量化然后计算余弦相似度。我试过几种方案最后选了一个轻量级的句子向量模型本地跑不依赖外部服务延迟可以接受。三级去重不是每级都全量跑而是逐级过滤。URL去重后剩下的才进标题去重标题去重后剩下的才进语义去重。这样能把计算量压下来。实测下来一级去重能去掉大约15%的重复二级再去掉20%左右三级再去掉10%左右。最终进入候选池的大概是原始抓取量的55%到60%。3.2 语义去重的阈值调优和误杀处理语义去重的阈值调优是个细活。阈值太高重复内容去不掉阈值太低会把相关但不同的事件误杀。比如某模型发布新版本和某模型新版本性能评测这两条语义相似度很高但它们是不同的内容一个是发布消息一个是评测分析都不应该被去掉。我的做法是引入一个事件类型标签。在去重之前先对每条内容做一个粗分类比如发布评测融资论文工具更新等。只有同类型的内容才进入语义去重比较跨类型的即使相似度高也保留。这样能有效降低误杀率。另外我还会保留被去重内容的来源列表在最终展示时标注此事件有N个来源报道这样既避免了重复又保留了信息完整度。还有一个经验是去重结果要定期人工抽查。我一般每周抽一天把去重前后的内容对比看一下确认没有误杀重要内容。这个习惯帮我发现过好几次阈值设置的问题。4. 评分与排序让真正重要的内容浮上来4.1 多维度评分模型的构建去重之后候选池里可能还有几十条内容这时候就需要排序把最重要的放在前面。我用的是一套多维度评分模型主要考虑四个维度来源权重、内容热度、时效性、以及话题匹配度。来源权重是基础分核心源给高分扩展源给中等分信号源不直接参与内容评分。内容热度包括社交平台的讨论量、转发量等指标这个需要从信号源那边拿数据。时效性是随时间衰减的越新的内容分越高我用的是一个半衰期24小时的衰减函数。话题匹配度则是看这条内容是否命中了当前的重点关注关键词比如最近大家在关注什么方向命中就加分。四个维度的权重不是固定的我会根据实际情况调整。比如重大发布密集的时候会提高来源权重的占比行业讨论活跃的时候会提高热度权重。这个调整目前还是手动做的我试过做成自动的但效果不稳定后来还是保留了人工干预的入口。4.2 人工干预的边界在哪里说到人工干预这里有个原则机器负责排序人负责定调。什么意思就是评分模型给出一个初始排序但最终日报的头条放什么、哪些内容需要加编者按、哪些内容要合并成专题这些由人来决定。机器不擅长判断这条内容对读者意味着什么这个判断必须由人来做。我一般会在早上花15到20分钟做这件事。先看机器排出来的前20条快速扫一遍然后做三件事一是调整头条把当天最重要的放上去二是合并同类项把讲同一件事的多条内容合成一条三是补充背景有些内容需要一句话说明为什么这条重要这个机器写不出来。这个流程听起来简单但实际做起来最耗时的往往是判断哪条最重要。我的经验是不要试图追求绝对客观日报本身就是有立场的关键是立场要一致、要透明。比如我这份日报的立场是关注技术进展和产品落地那么纯资本层面的新闻就会往后排这个标准一旦定了就不要每天变。5. 日报的呈现格式让人三分钟能读完5.1 结构化模板的设计日报的呈现格式我改过很多版现在的版本大概是这样的开头是一句话摘要概括今天最重要的动态然后是分板块的内容一般分模型与产品技术与研究行业与生态三个板块每个板块下面按重要性排3到5条每条包含标题、一句话说明、以及来源链接最后是一个值得关注的简短列表放一些还没成气候但值得留意的信号。为什么要分板块因为读者的关注点不一样。做技术的可能更关心模型和研究做产品的可能更关心产品和生态。分板块能让不同的人快速定位到自己关心的部分。每个板块内部的排序逻辑是一样的都是按评分从高到低。每条内容的一句话说明是最考验功力的地方。它不能只是标题的重复而要补充标题里没有的信息比如这个更新解决了什么问题这个数据意味着什么。我一般要求自己写的一句话说明能让读者不点开链接就知道这条内容的核心价值。5.2 排版细节和阅读体验优化排版上有几个细节是我踩过坑之后定下来的。第一每条内容之间要有明显的分隔我用的是空行加短横线这样扫读的时候不会串行。第二来源链接放在每条内容的末尾用统一的格式方便复制。第三重要内容用加粗标注关键词但不要整句加粗那样反而没有重点。还有一个是长度控制。整份日报我控制在1500到2000字之间太短信息量不够太长读者读不完。如果某天内容特别多我会把次要内容放到值得关注列表里只给标题和链接不展开说明。这样既保证了信息完整度又控制了阅读时间。实测下来一份排版良好的日报读者三到五分钟就能读完并且能记住三到五个关键信息。这个效率是远高于自己刷各种信息流的。6. 自动化与人工的配合哪些环节必须留人6.1 可以完全自动化的环节抓取、去重、初步评分、排版生成这些环节我已经完全自动化了。每天早上七点脚本跑完八点前我打开电脑就能看到一份初稿。这些环节的共同特点是规则明确、判断标准一致、不需要理解内容含义。比如去重相似度超过阈值就是重复这个判断不需要人来做。自动化带来的好处不只是省时间更重要的是一致性。人工做这些事情今天状态好可能做得细明天累了可能就马虎了。机器不会只要规则不变输出就是稳定的。这也是为什么我坚持把能自动化的都自动化。6.2 必须人工介入的环节但有几个环节我坚持留给人来做。一是头条判断哪条内容放头条这个需要理解当天整体信息环境机器做不了。二是一句话说明的撰写这个需要理解内容的价值机器写的往往很生硬。三是异常处理比如某天某个核心源挂了或者抓回来的内容明显异常这些需要人来判断怎么处理。还有一个容易被忽略的环节是反馈收集。我会定期问几个固定读者这份日报对他们有没有用、哪里可以改进。这个反馈是调整评分权重和板块设置的重要依据。机器不知道读者想要什么只有人知道。7. 跑了一年之后我总结出的几条经验7.1 关于信息源的维护信息源不是接进来就完事了需要定期维护。我每个月会做一次源的健康检查看哪些源更新频率下降了、哪些源内容质量变差了、有没有新的优质源可以加进来。这个维护工作看起来琐碎但不做的话日报质量会慢慢下降。还有一个经验是不要迷信大源。有些小型的垂直博客更新频率不高但每篇都是干货这种源的价值远高于一些更新频繁但内容注水的媒体。判断一个源值不值得留我的标准是过去一个月里它贡献了多少条最终进入日报的内容。如果一条都没有那就要考虑替换了。7.2 关于时效性和准确性的平衡AI领域的信息有个特点快但经常反转。早上看到的消息下午可能就被辟谣了。所以日报里我有个原则不确定的信息标注不确定。如果一条内容只有单一来源而且来源权威性一般我会在说明里加一句此消息尚未得到官方确认。这样既保证了时效性又避免了误导读者。另外对于重大事件我一般会等半天再发看看有没有后续更新。这个等半天的策略帮我避免过好几次乌龙。当然如果是确定性的官方发布那就直接发不用等。7.3 关于读者反馈的处理读者反馈里最有价值的是这条内容对我没用和这条内容我早就知道了。前者说明筛选标准有问题后者说明时效性或覆盖度有问题。这两类反馈我都会认真处理调整对应的环节。但也要注意不要被个别反馈带偏。日报是给一群人看的不可能让每个人都满意。我的做法是看趋势如果多个人反映类似问题那就调整如果只是个别意见那就记录一下观察观察再说。8. 如果你也想搭一套从哪里开始8.1 最小可行版本的搭建路径如果你看完想自己搭一套我建议从最小可行版本开始。不要一上来就搞几十个源、复杂的评分模型那样很容易半途而废。第一步选3到5个你最常看的信息源用最简单的脚本抓回来存到一个地方。第二步加一个最简单的去重URL去重就行。第三步按时间排序生成一个简单的列表。这三步做完你就有了一份最基础的日报。然后根据实际使用中的痛点逐步加功能。觉得噪音多就加关键词过滤觉得排序不合理就加评分模型觉得排版不好看就调模板。每一步都解决一个具体问题这样搭出来的系统才是真正适合你的。8.2 几个容易踩的坑和规避方法第一个坑是过度追求自动化。有些环节机器做不好就是做不好硬要自动化结果就是质量下降。该人工的地方就人工效率和质量要平衡。第二个坑是忽视失败处理。抓取失败、解析失败、去重失败这些都要有告警和重试机制。我前面说过我因为没做告警漏了三天内容才发现。这个教训很深刻。第三个坑是不做版本管理。评分权重、去重阈值、模板格式这些参数改了之后要记录不然过一段时间你自己都忘了为什么设成这个值。我用一个简单的配置文件加注释来管理每次调整都写清楚原因和日期。第四个坑是只做不评。日报发出去就完了不收集反馈、不做效果评估。这样你永远不知道自己做得好不好。我建议至少每个月做一次简单的回顾看看哪些内容被读得多、哪些被忽略据此调整。这套流程跑到现在我最大的体会是日报的价值不在于技术多复杂而在于对读者需求的理解有多深。技术只是工具真正决定日报质量的是你知不知道自己或你的读者真正需要什么信息。这个判断机器帮不了你只能靠自己在实践中慢慢摸索。