
1. 这个闹钟是怎么长出来的先说结论我用 WorkBuddy 搭了一条完全自动化的信息流水线每天上午十点半微信准时收到一份 AI 日报——不是那种标题凑一堆、内容全靠抄的垃圾聚合而是经过筛选、摘要、去重、排版之后的可读内容。先交代一下我的背景免得大家觉得这玩意儿离自己很远。我平时的工作和 AI 沾边但不算纯技术岗每天需要快速知道业内发生了什么哪个模型发了新版本、哪个开源项目值得跟进、哪篇论文值得精读、哪个工具链更新了。以前我每天早上的流程是固定的——刷 Hacker News、刷 Product Hunt、刷公众号、刷推特一圈下来四十分钟起步而且经常被完全无关的热搜带跑偏。这个痛点听起来不大但日积月累其实就是每天白白丢掉了半个小时的专注时间。所以某天我决定把这件破事彻底自动化于是就有了今天这篇文章的主角一个跑在 WorkBuddy 里的定时任务。有人可能会问这种东西自己写个 Python 脚本 cron 不也能搞定吗说实话能我也写过。但折腾过一段时间之后你会发现脚本方案有几个绕不开的坑信息来源一变你要改代码内容筛选逻辑想调整你要改代码想增加一个只关注 Agent 方向的更新这种规则你还是得改代码。改到后面维护脚本的时间比手动刷资讯还长那就本末倒置了。但 WorkBuddy 这类工具不太一样它能让我用自然语言描述需求、用配置而不是代码来管流程、把信息来源、筛选规则、推送渠道都变成可以随时调整的积木。这对我来说才是真正的一劳永逸。这篇文章我就把完整思路和配置过程写出来所有细节都是实操过的你可以直接照着搭。2. 先把需求拆明白再谈工具2.1 一份合格的 AI 日报要满足什么标准在动手配 WorkBuddy 之前我先把日报这个需求本身拆了一遍。很多自动化项目最后做出来不好用根子不在工具不行而在需求定义得太模糊。每天推送 AI 日报这句话看着清楚但仔细一想全是问题日报包含哪些类型的资讯覆盖哪些信源每条新闻要多详细一天推几条合适格式是长文还是列表万一当天没有重要新闻是不是要推一条今日无大事我自己定的标准是这样的每日 6 到 10 条内容太少显得空洞太多微信里根本看不完每条内容必须包含标题、三句话以内的摘要、来源链接、以及我关心的关键词命中情况内容覆盖面要广到模型层、应用层、开源项目、工具链、论文这几个维度最重要的是每条内容必须真的值得看而不是把 RSS 里的条目全部无脑搬过来。有了这个标准之后再回头看整个流程就清晰多了。整个链条其实就五个环节采集信息、过滤噪音、生成摘要、组装排版、推到微信。这五个环节在 WorkBuddy 里分别对应不同的能力——RSS 读取、网页抓取、大模型理解、代码执行、消息推送。我只需要把每个环节的输入输出接好剩下的交给调度器按固定时间执行就行。这就像搭积木但积木的规格必须先定好不然拼到一半发现接口对不上那才叫崩溃。另外我得强调一点日报不是越详细越好。微信阅读场景是碎片时间你推一篇 5000 字的长文过去大多数人划两下就关了。我之前犯过这个错让 AI 把每篇新闻生成 500 字摘要结果整份日报像一本电子杂志打开率很低。后来改成每条内容就两三句话反而阅读体验好了很多。内容这东西克制比堆砌难得多。2.2 为什么选 WorkBuddy 做调度中枢工具选型这一步我其实纠结过一阵子。市面上的方案不少n8n 偏流程自动化Dify / Coze 偏应用搭建还有些纯代码方案。最后选了 WorkBuddy主要原因有几个。第一WorkBuddy 对定时任务的支持足够原生。它不是那种你要自己写 cron 再调用 API的半吊子方案而是直接在任务编排里提供了时间触发节点配置一个 cron 表达式就行。第二它能跑本地代码。日报的后期处理里经常要做文本清洗、按关键词打分、生成 Markdown 表格之类的事这些逻辑用代码写比用大模型提示词写要可靠得多——大模型擅长做语义判断不擅长做精确计算。第三它有一套规则系统可以定义对所有任务都生效的全局规则这个做信息过滤非常有用。比如我可以定一条规则所有时间敏感的内容必须在摘要前标注日期这样无论是日报任务还是周报任务都会自动遵守不用每个任务单独配置。当然这里我必须说明一下WorkBuddy 并不是唯一能做到这些事的工具我只是在实际使用中觉得顺手。你可以用 Coze、Dify、甚至自己写 Python 脚本核心方法论都是一样的工具只是载体。这篇文章后面所有操作步骤我尽量写得通用如果你用别的工具也能对照着找到对应的能力。3. WorkBuddy 里的任务编排从触发到推送3.1 创建定时触发器的正确姿势WorkBuddy 里新建一个任务的时候第一步是设定触发方式。我选的定时触发这个在界面里叫Scheduled或者定时。关键是 cron 表达式的写法我配置的是0 30 10 * * *——意思是每天上午十点三十分整触发一次。这里有一个非常容易踩的坑时区问题。WorkBuddy 默认的 cron 可能有自己的一套时区配置如果你的服务器或者运行环境在 UTC 时区那0 30 10 * * *实际触发的是北京时间下午六点半这显然不是你要的效果。解决办法有两种一是在触发器设置里明确指定TZAsia/Shanghai前缀格式大致是TZAsia/Shanghai 0 30 10 * * *二是看看工具有没有全局默认时区设置直接把默认时区改成中国标准时间。我建议配置完触发器之后一定要手动测试一次不要等到第二天看结果。WorkBuddy 提供了立即执行按钮先把任务跑一遍确认生成和推送都正常再回去看定时配置。我见过太多人自信满满地配了个每天早上八点推送的任务结果实际跑了一周才发现推送时间一直是下午——就是因为时区没设对。3.2 用规则系统约束 AI 的输出行为WorkBuddy 有个比较特别的东西全局规则Global Rules。你可以把它理解成给整个工作台里的 AI 助理定做事规矩所有任务都会自动遵守这些规则不需要在每个任务里重复写。这功能在日报场景里简直是我的救命稻草。因为大模型的输出风格不稳定同样的提示词今天可能给你一大段啰里啰嗦的分析明天可能就简洁过头。我在全局规则里写了几条硬性约束全部生效的前提是后续对所有任务都生效这一点设置好。我的规则大致是这样的所有输出使用简体中文专业术语保留英文原文并用括号标注中文解释。凡是引用外部信息必须附上来源 URL不提供来源的内容一律不写入日报。每条新闻的摘要控制在 80 到 120 字之间禁止超过这个范围。当信息源中不存在符合筛选条件的重大新闻时明确返回当日暂无重大更新不要为了凑数降低标准。这几条规则看着简单实际效果非常明显。尤其是没有就不推这条一开始我没有写进去的时候AI 经常把一些无关紧要的产品更新硬塞到日报里凑数很多其实只是某个小工具改了版本号。加了规则之后它就会老老实实地告诉你今天没什么大事这样我反而更信任它了。3.3 Skill 的选择与配置WorkBuddy 里的 Skill 相当于给 AI 装配特定的工具能力。我这个日报任务一共用到了四个 Skill这里逐一说明它们的作用。第一个是 RSS 读取器用来抓取各个信息源的 RSS 内容。第二个是网页抓取器当信息源没有 RSS 或者 RSS 里只有摘要没有正文时它会自动打开链接抓取正文内容。第三个是代码解释器用来执行我写的那些文本清洗、打分的逻辑。第四个是搜索增强主要用来做补充验证——当选中的新闻信息不完整时它可以去搜索补充背景资料。Skill 的配置界面不复杂核心是选择你要启用的 Skill以及配置权限。这里我遇到过一个问题网页抓取器默认可能会限制访问外网的频率导致抓取速度很慢。后来在 Skill 的配置里把并发数调高了一些情况才好转。但这里要提醒大家并发数不是越高越好——很多信息源网站是有反爬机制的抓得太猛容易被封 IP反而得不偿失。4. 信息源怎么选决定日报的生死4.1 信源矩阵不能只靠一两个网站日报内容的质量七成取决于信息源选得好不好三成才取决于 AI 的筛选能力。如果信源本身就是噪音爆炸的地方那 AI 再聪明也没办法变废为宝。我现在维护了一个信源列表按类别大致分成了几组模型层OpenAI、Google AI、Anthropic、Meta AI 的官方博客以及各大模型团队的 Release Notes开源项目GitHub Trending、Hugging Face Daily Papers、Papers with Code应用与工具Product Hunt、TechCrunch AI 频道、The Verge AI 分类中文圈少数几个我信任的公众号文章汇总源以及即刻上几个 AI 产品的精选圈子每个信源在 WorkBuddy 里配置成对应的 RSS 地址标签打好比如官方博客社区热议开源动态这样。这样做的目的是让 AI 在做筛选时能根据信源类型调整权重——官方博客的东西哪怕标题不炸也值得看一眼社区里那种标题党除非真有大动作否则直接过滤是常态。很多人一开始做日报会一股脑地把所有 AI 相关 RSS 都塞进去觉得信息多多益善。实话说这样做的结果就是日报变成了一本标题列表毫无可读性。信息源的纪律是宁缺毋滥那些长期产出低质量内容的站点该删就删不要舍不得。我前后调了三轮信源列表从最开始 30 多个 RSS 源删到现在的 15 个日报质量反而提升了一大截。4.2 RSS 缺失时怎么补救有些重要信源没有提供 RSS这事挺折腾人的。我遇到最典型的是几个需要登录才能看的社区内容平台RSS 输出基本不存在。解决办法我试过两种第一种是寻找第三方桥接服务比如用 RSSHub 这类开源项目把原本没有 RSS 的网站包装成 RSS 输出。第二种是直接用网页抓取器定时去扫特定页面然后做文本比对。这两种方案各有利弊。RSSHub 配置方便但依赖第三方服务的稳定性有时候上游接口一变它就静悄悄失效了你也不知道。网页抓取器的好处是直接但每次抓的内容是全量抓还是增量抓需要你设计好去重逻辑不然日报里一天出现三条同质化内容就很尴尬。我在 WorkBuddy 里的做法是优先用 RSS 源没有 RSS 的才用抓取器并且抓取器的频率设置得比 RSS 低一些比如两小时拉一次页面拿到结果后跟昨天的内容做比对只保留新增的部分。这个逻辑我用代码解释器写了个简单的文本差量脚本效果还不错。5. 日报的生成策略筛选、摘要、去重、打分5.1 筛选逻辑让 AI 学会说不信息采集回来之后第一步不是生成摘要而是筛选。这一步我完全交给大模型来做但提示词写得非常具体。我不是跟它说挑出重要新闻这么笼统而是给出明确的判断标准涉及主流 AI 厂商OpenAI、Anthropic、Google、Meta、微软等的产品发布、模型更新全部保留。开源项目的标准是 GitHub star 增速快、或者属于 AI Agent / 大模型应用方向的新项目保留。论文只看被广泛讨论的判断依据是 Hugging Face 上的收藏量或者 Twitter 转发量。单纯工具链的 incremental 更新比如某个库修了个 bug自动丢弃。带有标题党倾向但实际内容空泛的丢弃。这套判断标准写进提示词之后日报的内容密度一下子提上来了。以前十分钟刷不完整份日报因为里面有一堆无关紧要的信息现在基本两分钟就能看完而且每一条都值得点进去看一眼。筛选比生成重要得多这是我从这个项目里学到的最大教训。5.2 摘要生成的技巧结构化模板筛选完之后AI 需要对每条入选的内容生成摘要。这个环节的难点不是让 AI 写摘要——这个它天生就会——而是让摘要的格式保持统一方便我阅读。我设计了一个固定的模板结构【类型】模型更新 / 开源项目 / 论文 / 工具 【一句话概述】不超过 30 个字的核心信息 【为什么值得关注】1-2 句说清楚这件事对你的影响 【来源】URL这个模板在 WorkBuddy 里通过提示词实现配合我前面说的全局规则输出的稳定性非常可以。有一点要注意提示词里的模板格式必须用分隔符比如---或者 之类包起来不然模型容易把格式要求和实际内容混在一起输出就乱了。我还试过让 AI 给每一条新闻打个关注度评分从 0 到 10。一开始觉得这种主观打分没什么用后来发现了一个妙用我可以在任务里设定一条规则比如当日仅当存在关注度评分大于等于 8 的内容时才推送日报否则发送一条极简简报即可。这个机制避免了每天都被强推一堆无用信息的烦恼。5.3 去重与排版最后一道质量关重复内容处理是整个流程里最容易被忽视的环节。同一个新闻很可能同时出现在多个 RSS 源里如果不做去重日报里就会出现三条内容相似但来源不同的条目。WorkBuddy 的去重逻辑我用的是文本相似度计算——把每条新闻的标题处理后去掉标点、停用词算一个哈希值再比较相似度超过阈值就只保留一条。排版方面微信里适合短段落 清晰列表结构。我最终输出的格式是 Markdown 渲染后的纯文本每条新闻之间用空行隔开标题加粗URL 直接暴露而不是用[链接](url)这种隐藏形式——因为在某些微信推送环境下超链接的跳转并不总是可靠裸 URL 反而更实用。整份日报的长度我控制在 1200 字以内超过这个阈值就砍内容优先保前面的高优先级条目。6. 微信推送通道我踩过的坑和最终方案6.1 四条路逐一评测推送这一步是最后一公里看起来简单其实最折腾。微信并不像 Telegram 那样有开放的 Bot API想在微信里收到自定义内容推送你得走一些曲线救国的路线。我认真试过下面这几种第一是企业微信群机器人。这是我最推荐也最终在用的方式——你只要建一个群添加一个自定义机器人就会拿到一个 webhook 地址往这个地址 POST 一段 JSON消息就能进群。整个过程不需要写任何微信相关的代码稳定、简单、不会被封号风险困扰。第二是 Server酱 / PushPlus 这类第三方推送服务。原理是你关注它们提供的服务号然后通过 HTTP 请求把内容转成微信模板消息推送给你。好处是个人就能用不需要建群坏处是依赖第三方服务的稳定性而且模板消息的格式限制比较多长文体验一般。第三是钉钉/飞书的群机器人。虽然它们不是微信但如果在日常办公里本来就在用也是一个替代方案。这里不展开讲只是提一句因为我知道有些读友的公司团队用钉钉比较多。第四是个人微信的自动化登录方案。这条我不建议走因为现在对个人微信的自动化协议管得越来越严账号容易被限制甚至封禁为了推送个日报冒这么大风险完全不值得。综合下来我最推荐企业微信群机器人方案——它绕开了所有个人微信的限制又不需要引入第三方。你在正常的企业微信里建一个只有你自己的群把别人都踢掉加个群机器人就相当于给自己开了一条专属推送通道。6.2 群机器人的配置与实测配置企业微信群机器人的流程很简单几个关键步骤说一下。在企业微信里创建一个群群名随意比如我就叫我的日报。群建好之后点群设置找到群机器人选项选择添加机器人给它起个名字比如AI 日报助手添加完成后会得到一个 webhook 地址类似https://qyapi.weixin.qq.com/cgi-bin/webhook/send?keyxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx。这个 webhook 地址就是推送通道的入口。然后你在 WorkBuddy 的消息推送节点里配置一个 HTTP 请求把这个地址填进去请求方法选 POST请求体是一个固定格式的 JSON{ msgtype: markdown, markdown: { content: ### AI 日报 2025-03-20\n\n- **标题一**[摘要文字](https://example.com)\n- **标题二**[摘要文字](https://example.com) } }注意这里我用的是markdown消息类型不是text。markdown类型在微信客户端里能渲染加粗、标题、链接这些格式阅读体验好很多。text类型则纯粹是纯文本适合极简场景。我实测下来企业微信群机器人对 markdown 的支持比想象中好但也有一些限制比如##这种多级标题可能渲染异常最好只用###和加粗。另外链接必须写完整的http(s)://开头不然没法点击跳转。这些细节我在调推送模板的时候都踩过写出来给大家省点时间。6.3 推送失败的重试机制推送通道配置好了之后还有一个不能忽略的问题如果 webhook 请求失败怎么办。网络抖动、企业微信服务临时不可用这些都有可能造成推送丢失。WorkBuddy 的任务编排里支持设置重试策略我建议把它设置成失败后重试 3 次间隔分别设为 1 分钟、5 分钟、15 分钟——前两次解决瞬时故障第三次兜底。还有一种更稳妥的做法是把推送结果也写入一个本地日志文件。我不是在 WorkBuddy 里做的而是利用代码解释器在推送后追加写一条记录到日志文件。这样万一第二天你发现没收到日报可以直接打开日志看是采集环节失败了、生成环节失败了还是推送环节失败了排查速度会快很多。7. 常见问题与排查实录能救一个是一个7.1 日报没推送先查这三处这类问题我大概遇到了四五次每次排查的路径都差不多。第一步看 WorkBuddy 的任务日志确认定时任务当天有没有正常运行。如果任务连跑都没跑基本是时区配置问题或者调度器被暂停了。第二步看采集环节——检查一下 RSS 源是不是正常返回了数据有时上游 RSS 源本身挂掉了任务照样跑但采集到的内容是空的。第三步看推送环节的日志确认 webhook 的返回码是不是200如果是4xx说明请求格式有问题5xx可能是企业微信服务端的问题。排查顺序一定要从上游往下游走不要一上来就看推送。我见过有人遇到没收到日报第一反应就是改 webhook 配置结果把本来正常的部分也改坏了。先看数据流到哪儿断了再动手改。7.2 日报内容质量忽高忽低这个问题的根源大概率在提示词写得不够具体或者全局规则没有严格执行。大模型的输出是概率性的同样的提示词两次生成结果可能有差异。我自己处理的办法就是版本化管理提示词——WorkBuddy 支持给提示词配置版本号我每次调整都会存一个新版本如果效果变差了就回滚到之前的版本。另外我强烈建议在日报生成之后、推送之前让 AI 自己做一个质量自检检查是否每条新闻都有来源 URL、是否超过字数限制、格式是否符合模板。这个自检步骤会额外多消耗一些 API 调用时间但换来的是每天日报的稳定质量。我加了这一步之后几乎没再因为格式问题重推过。7.3 海外 RSS 源抓取延迟或失败不少优质 AI 信源都在海外服务器上国内网络环境访问时延迟高或者直接失败。这个问题我在搭建过程中也遇到了尤其是某一阵子Hugging Face 的 RSS 时好时坏。解决思路有几个第一是给 WorkBuddy 配置代理如果你自己的网络环境有可用代理直接在抓取请求里加上 proxy 配置第二是切换镜像站点的 RSS 地址部分开源项目提供镜像服务速度会快很多第三是在 RSS 读取失败时启动网页抓取兜底用浏览器的能力直接访问原始页面。不过这里我要提醒一句配置代理属于网络环境相关的常规操作具体能不能用、怎么用取决于你自己所在网络的情况我不展开细说。我只想强调不要因为一个信源抓不到就不管了要把失败处理纳入任务逻辑里否则整个日报会因为这个单一依赖点而变得不可靠。7.4 企业微信里 markdown 格式渲染异常这个问题比较诡异但确实发生过。同样的 JSON 内容在某一天推送后微信里显示的 markdown 没有渲染直接显示了原始语法字符。我查了下原因大概率是接口返回了特殊转义或者在推送到服务端时多了一层转义。解决办法是在 WorkBuddy 的消息推送节点里把 content 字段做一次 JSON 序列化处理确保特殊字符被正确转义。比如换行用\n引号用\这样微信端的解析器能正确处理。另一个经验是不要用多级嵌套的 markdown 语法保持在最简形态——标题 加粗 链接 列表这样即使渲染出了问题纯文本状态下也能看懂。8. 后续还能怎么玩从日报到自动化工作流这个日报任务跑起来之后我有了一个很深的体会一旦你习惯了信息主动送上门的状态就很难再回到自己主动去刷的旧模式。最近我正琢磨着把这几条经验复制到别的任务上。比如周报生成。以前每周五下午都要花一两个小时写周报现在我打算把本周所有工作通知、会议记录、项目进展的碎片信息在每周四周五自动汇总成一个周报素材包推给我。这样周五写周报就变成了在已有素材上进行补充润色效率能提高不少。再比如关键词追踪。我现在有一个特别关注的研究方向比如多模态 Agent那么我可以另外建一个监控任务专门捕捉全网这个方向的新动态一旦发现符合特定条件的重大进展比如有新的论文发布不仅推日报还直接推一条强提醒通知到我手机上。这个需求本质就是把日报里的筛选条件极端化构建一个雷达任务。如果你也想搭类似的自动化我的建议是千万别一上来就把流程做得很复杂。先从最简单的做起一个信息源、一种推送方式、一条不加筛选的摘要。跑通之后再逐步加信源、加筛选规则、加评分机制。这个迭代过程虽然慢但每一步都扎实最终的系统一定比凭空设计出来的要靠谱得多。我个人实际用下来的体会是工具的选型固然重要但真正决定体验的是你有没有想清楚要什么和不要什么。给 WorkBuddy 设的这个闹钟技术上一点都不炫酷它就是一个定时触发、抓取、生成、推送的循环。但这个循环一旦转起来每天稳定地帮你节省三十分钟一年下来就是一百八十多个小时——这笔账怎么算都不亏。