我给自己搭了个 AI 日报工厂:每天 5 份简报自动送进微信,跑了两个多月
我给自己搭了个 AI 日报工厂每天 5 份简报自动送进微信跑了两个多月先说痛点我平时要跟的信息源大概是这样的——arXiv 每天几十篇新论文、十几个技术博客的 RSS、几个 Newsletter、还有散落在各个群里的链接。以前的做法是「想起来就刷一波」结果是两极分化要么一天刷四次手机啥也没记住要么攒一周没打开直接放弃。去年开始我换了思路信息过载的解法不是更努力地刷而是让机器替你刷只把「值得知道」的部分送上门。于是有了这套跑了两个多月的 AI 日报工厂。现在它每天的节奏是这样的107:16 学术热点日报——arXiv 语义检索 / 智能体方向的新论文逐篇提炼 趋势判断 208:30 英语学习日报——从外刊和技术文章里抓的英语素材卡 308:45 科技日报 医疗 AI 日报——两条行业线并行 409:07 每日二次提炼——把当天所有来源做交叉关联分析只输出「今天真正值得知道的 3 件事」全部自动我只需要在微信里点开看。这篇把整个系统的架构、关键设计和踩过的坑完整拆一遍最后给出一个 50 行代码的最小复现版。## 一、总体架构四层流水线整个系统就四层每一层都可以独立换掉-采集层arXiv API按关键词抓每日新论文 RSS 解析技术博客、安全周刊 关键词过滤-提炼层LLM 两段式处理——先逐篇摘要打分再跨来源做「二次提炼」-排版层Jinja2 组件化模板JSON 数据进、HTML 出-投递层定时任务推送到微信失败自动告警 设计原则每一层只通过 JSON 数据交接任何一层都可以单独替换。比如想把微信推送换成邮件只改投递层十行代码。## 二、提炼层是灵魂两段式提示词这套系统里最值钱的设计不在采集而在提炼。直接把 30 篇论文丢给 LLM 说「帮我总结」得到的要么是复读机式的罗列要么是幻觉链接。我的做法是拆成两段### 第一段逐篇处理只做事实压缩每篇来源单独过一遍 LLM只让它提取核心方法、量化结果必须保留原文数字、与既有工作的差异。每篇控制在 150 字以内。这一段的关键约束是「不允许出现原文没有的数字和链接」——后面会讲为什么。### 第二段跨来源二次提炼只输出三件事把第一段的产出合并后提示词要求只保留交叉关联与趋势判断明确禁止原文转述。今天早上刚收到的产出长这样 1. 生成式检索的索引设计进入「自动进化」阶段——用 LLM 驱动的进化程序搜索替代手工设计并指出「代理可靠性只在部分组件上可迁移」的边界 2. 「语义基础设施」工程化三连发——运维、数据库、流程挖掘三个领域同日出现给「语义」配形式化工具的论文出现代价模型是从 PoC 走向系统工程的标志 3. 「涌现」声明终于有了可证伪判据——用信息分解给出判定标准不可分解到单组件的涌现声明均不成立。这种「今天的三个洞察」格式是我每天真正会认真读完的部分。前四份是素材这一份是结论。## 三、投递层微信就是最好的 Dashboard试过邮件、试过 RSS 阅读器、试过网页最后发现微信的打开率碾压一切——因为它就在你手机第一屏。实现上用的是自动化助手通道每份日报渲染成 HTML 卡片推送一次一条不打扰。投递层还有两个容易忽略的细节-失败告警要推到同一个通道——推送挂了的时候你得在微信里知道推送挂了自我指涉但很重要-时间错峰——我故意把五份简报从 7:16 拉开到 9:07半小时一档。一次性轰炸五条的方案我试过三天就被我自己屏蔽了## 四、踩坑清单都是真金白银换来的-LLM 会编造论文链接。早期版本出现过「推荐阅读」里全是 404。解法所有引用强制携带 arXiv ID投递前用 ID 反查校验对不上就丢弃该条-提示词会漂移。同一份提示词隔两周再跑输出风格就变了。解法把「格式契约」写进系统提示词并冻结每月人工复核一次-采集层反爬。部分站点对裸 UA 直接 412。解法请求间隔 3 秒起步同域名间隔 5 秒上浏览器渲染兜底-token 成本失控。第一版把全文都塞给 LLM一天跑下来成本感人。解法先规则过滤关键词命中 来源白名单再进 LLM进入提炼层的量降了 80%-推送通道是单点。通道故障时全天简报静默丢失。解法投递失败落本地存档 次日补发标记## 五、效果它改变了我信息摄入的姿势跑了两个多月最直观的变化- 每天主动刷新闻的时间从 40 分钟降到 10 分钟以内——只读送上门的- arXiv 覆盖率从「碰运气」变成「每日全量」因为机器不累- 二次提炼的「每日三件事」成了我的晨间简报好几条工作决策的信息输入来自这里更有意思的是副产品为了让提炼质量可控我把「提示词契约、数据交接格式、失败重试」这套东西沉淀成了标准管线——后来做别的内容自动化直接复用。## 六、最小复现版50 行代码起步不需要上自动化平台三件套就够了cron LLM API 企业微信群机器人。# 核心循环伪代码sources fetch_rss(RSS_LIST) fetch_arxiv(KEYWORDS)hits [s for s in sources if keyword_filter(s)] # 先过滤再进 LLMdigest llm.summarize_each(hits) # 第一段逐篇压缩insight llm.cross_analysis(digest) # 第二段二次提炼html render(TEMPLATE, digest, insight)webhook.send(WECOM_WEBHOOK, html) # 企业微信机器人archive.save(html) # 落档防丢- 第一步先跑通「单源 → 摘要 → 推送」别急着多源- 第二步加关键词过滤和白名单控住成本- 第三步再加二次提炼——这一步才是质变## 写在最后这套东西没有用到任何黑科技采集是十年前的老技术提炼是标准的 LLM 应用投递就是 webhook。它真正值得分享的是那个思路转换——**把「我要记得去刷」变成「它会来找我」把「帮我总结」变成「只告诉我今天值得知道什么」。**下一步我打算把「每日三件事」反向变成选题信号哪条洞察被我自己反复引用哪条就值得展开成一篇文章。信息流和创作流会在同一个工厂里接上。—王亚博Abel Wang· AI × Agent × 数字效能