☰
用WorkBuddy打造每日AI日报:定时采集、AI汇总与微信推送全攻略
2026/10/1 19:26:04 网站建设 项目流程

每天早上十点半之前,我大概率都在做同一件事:把十几个网页标签页挨个点一遍,看今天 AI 圈又出了什么新东西。看多了以后我发现,真正被我记住的信息没几条,收藏夹倒是越来越长。后来我换了个思路,给 WorkBuddy 设了个闹钟——每天 10:30,让它自动把一份 AI 日报送进我的微信。跑通之后,我省下的不只是每天早上那半小时,而是那种“生怕错过什么”的焦虑。

这篇内容就是完整的落地记录。我尽量写得具体一点,因为配置这类定时任务,最怕的就是看了一堆概念,回去还是不知道先点哪里。整个过程涉及三个核心环节:数据采集、AI 汇总、微信推送。如果你也想给自己配一个类似的每日自动化信息流,这篇文章应该能帮你省不少弯路。

1. 为什么要把 AI 日报变成“定时任务”,而不是“AI 聊天窗口问一句”

1.1 你需要的不是更多信息,而是一个固定的信息接收时刻

先说我自己的背景。我平时的工作跟大模型应用相关,每天要看的信息源很多:Hacker News、GitHub Trending、arXiv 的上新论文、几个行业公众号、还有各种产品发布。我以前的习惯是“随看随存”,结果就是注意力被切成碎片,早上刚坐下来就刷了四十分钟,真正该做的事反而被拖到十一点。

后来我意识到一个反常识的点:我不是缺少信息渠道,而是缺少一个“信息接收时刻”。就像老一辈人习惯晚上七点看新闻联播,那个时间节点一到,整个世界发生了什么,半小时内就有了框架。对我来说,这个固定时刻就是工作日上午十点半。十点半正好是上午第一个工作阶段的尾巴,看完日报,既不会耽误进入状态的黄金时间,又能为中午或者下午的决策提供输入。

所以这不是单纯把搜索行为自动化,而是重新设计自己的信息摄入节奏。定时推送的核心价值,是让获取信息从一个“主动动作”变成一个“被动环境”——你不需要想起来才去看,到点它会来找你。

1.2 先把“日报”拆成可以自动化的三个环节

我在动手配置之前,先把“AI 日报”这个大目标拆成了三个独立环节:

  1. 采集:从指定数据源抓取当天新增内容。
  2. 生成:用 AI 对采集到的内容做过滤、归纳和排序。
  3. 投递:把最终结果推送到微信。

这个拆法很重要。很多人一上来就想做一个“什么都能干”的超级任务,结果最后定时任务是跑了,但内容像大杂烩,过三天自己都不想点开。拆开之后,每一个环节都可以单独测试:先测采集能不能拿到数据,再测 AI 汇总好不好读,最后测推送能不能出现在微信里。任何一个环节出了问题,定位起来都很快。

如果你想复现,建议不要一上来就追求什么“个性化推荐”“智能学习你的兴趣”。那样听起来很酷,但维护成本极高。第一版就做“固定数据源 + 固定提示词 + 固定时间推送”,先跑两周,再根据实际阅读情况慢慢调。自动化的第一原则永远是:先把最简单的那条链路跑通。

2. WorkBuddy 的定时能力、技能机制和微信推送,我到底用了哪几层

2.1 WorkBuddy 到底是什么?给没接触过的人一个坐标系

WorkBuddy 这个名字,和 CodeBuddy 属于同一个产品家族。你可以把它理解成一个“AI 工作台”,它不只是对话框里跟你聊天,还能通过定时触发、技能调用、消息通道这些方式,去完成一些不需要人盯着的任务。

我用它的方式比较朴素:把它当作一个“带闹钟的 AI 助理”。闹钟响的那一刻,它会按照我预设好的技能指令,去抓取信息、生成内容、再推给我。整个过程中我不需要打开电脑,手机上收到微信就说明这一次的任务跑完了。

如果你之前完全没用过这类工具,也别被术语吓住。它的核心模型就三个词:触发器(Trigger)、技能(Skill)、输出通道(Channel)。触发器决定什么时候干活,技能决定怎么干活,输出通道决定干完活怎么通知你。后面配置的时候,脑子里一直想着这三个词就够了。

2.2 “每天 10:30 推送”不是简单定时,而是“触发器 + 技能 + 输出通道”的组合

很多人一听定时任务,第一反应是 cron,然后自己找服务器搭一个,再写脚本调 API。技术上完全可以,但维护成本不低。WorkBuddy 这类工具的价值,是把你从服务器运维里解放出来,让你能把精力集中在“内容怎么做”这件事上。

我用到的三层是这样的:

  • 触发器:设定为每天 10:30 触发,同时可以排除周末。
  • 技能:一个名为“daily_ai_brief”的技能。技能里写清楚数据源清单、要生成什么风格的日报、输出格式是什么。
  • 输出通道:微信。任务跑完以后,把生成的文本发送到我的微信。

这三层缺一层都不行。触发器再准时,如果技能指令写得稀烂,推过来的内容就是垃圾。同理,技能写得再好,输出通道没走通,日报也只会静静地躺在任务日志里没人看。

2.3 微信推送的几种可行路径,以及我为什么选“低侵入”的方式

这里要提醒一句:在国内现网环境里,个人微信没有官方对外开放的“主动发消息”接口,这一点无论用什么工具都一样。所以在设计推送路径时,要优先选那些合法合规、不被风控的方式。

WorkBuddy 自己带的微信推送通道,本质上是走消息模板、企业微信机器人或者 Webhook 这类正规渠道。我之前也试过自己搭 Server 酱、PushPlus 之类的推送服务,它们在微信里的呈现方式是通过公众号或企业微信应用来触达,效果也还行。从稳定性角度来说,我更推荐 WorkBuddy 原生集成的通道,少一个中间环节就少一处可能断掉的地方。

至于那些以“解密数据库”“模拟登录个人微信”为卖点的方案,我强烈不建议碰。信息接收而已,没必要把账号安全搭进去。定时任务的底层逻辑是很朴素的:信息源合规、推送通道合规、内容合规,这才能长期稳定地跑下去。

3. 配置“每日 AI 日报”的完整操作:从数据源到微信模板

3.1 先准备数据源:没有好素材,AI 汇总就是垃圾进垃圾出

这一步我排在最前面,因为数据质量直接决定日报质量。AI 再聪明,也没办法把一个质量很差的源变成一个高质量源。所谓 Garbage In Garbage Out,在一个自动化任务里会被放大十倍——因为你会习惯性信任机器筛选过的内容。

我第一版的日报数据源控制在 6 个,覆盖这几类:

数据源抓什么更新频率
Hacker News 热榜技术社区热点、创业产品讨论实时
GitHub Trending今日 Star 增长快的开源项目每日
arXiv cs.AI 新论文最新学术动态工作日
几个行业 RSS头部博主和媒体的长文每日
内部知识库/周报团队动态工作日前一天

用 RSS 的地方尽量用 RSS,因为 RSS 自带时间字段和链接,做去重和时效过滤都很方便。拿 Python 写一个简单的采集脚本,大概长这样:

import requests import feedparser from datetime import datetime, timedelta SOURCES = [ "https://hnrss.org/frontpage", "https://github.com/trending", "https://export.arxiv.org/rss/cs.AI", ] def fetch_rss(url): feed = feedparser.parse(requests.get(url, timeout=10).content) items = [] for entry in feed.entries[:10]: items.append({ "title": entry.get("title", ""), "link": entry.get("link", ""), "published": entry.get("published", ""), "source": url, }) return items def fetch_all(): all_items = [] for url in SOURCES: try: all_items.extend(fetch_rss(url)) except Exception as e: print(f"fetch {url} failed: {e}") return all_items

这里做了几件事:每个源最多取 10 条、失败不影响其他源、统一字段结构方便后续传给 AI。实际跑起来以后,你大概率会发现还有些数据源要用 HTML 抓取,那就再加一步解析,但第一版尽量用 RSS 和 JSON API,别一上来就写爬虫。

3.2 写一段“日报生成指令”,让 WorkBuddy 每次都知道自己要干嘛

数据源准备好以后,真正的灵魂在提示词里。这个过程别写成“帮我整理今天的 AI 新闻”这种一句话需求,否则 AI 会给你发挥出一篇没有信息来源的“正确的废话”。

我用的指令大致是这个结构:

你是一个资深 AI 领域编辑。以下内容来自多个信息源,请从中筛选出最有价值的 5-7 条,生成一份中文日报。 要求: 1. 只选与 AI 技术、产品、开源项目、论文相关的内容; 2. 剔除纯舆论八卦和明显软文; 3. 每条用一句话说明“为什么值得关注”,不能只是复述标题; 4. 按“今日焦点 / 值得关注 / 一句话补充”三个栏目组织; 5. 全文不超过 800 字,适合在微信里阅读; 6. 必须给出原文链接。 输入素材: {raw_items}

注意里面加了三个硬约束:数量限制、栏目结构、字数上限。这三个约束比“要专业、要有洞察”这种虚词有用得多。AI 汇总类任务的通病就是追求全面,结果面面俱到等于什么都没讲。你把限制给死,它反而能交出更像人编辑出来的东西。

在 WorkBuddy 里,我把这段指令保存成了一个技能,取名为 daily_ai_brief。以后每次触发任务时,只需要在任务配置里引用这个技能名,再传入当天的采集结果。

3.3 创建定时任务:每天 10:30,工作日还是每天?

配置定时任务时,我一开始想得比较简单,选了个“每天 10:30”。跑了三天就发现问题:周六周日推过来的日报,我基本不会点开,还占用通知栏位置,真正需要的信息漏掉时反而更难发现。

后来我把触发器改成“工作日 10:30”,周一至周五推送,周末不推。WorkBuddy 的任务配置里也支持这种周期规则。一份典型配置长这样:

trigger: type: schedule cron: "0 30 10 * * MON-FRI" timezone: "Asia/Shanghai" job: skill: daily_ai_brief params: raw_items: "{{ fetch_rss_result }}" delivery: channel: wechat target: "my_work_wechat"

这里的 cron 表达式是标准的五段式:0 30 10 * * MON-FRI,表示周一到周五每天 10:30 触发。时区一定要显式指定,否则任务会默认跑在服务器时区,到时候比预期晚 8 个小时你就很困惑了。

首次配置完不要直接等第二天,WorkBuddy 里一般都支持“手动运行一次”。先手动触发,确认采集、生成、推送全链路没问题,再开启自动定时。这个习惯帮我避开了很多坑。

3.4 设计微信推送消息的呈现形式

微信收消息这件事,有一个很影响体验的细节:长文本和短文本的呈现差别很大。如果推过来一篇 3000 字的长文,微信里大概率是被折叠的,你要点进去才能看,这个附加动作会杀掉大部分阅读欲望。

所以我最终推送的格式是:

📋 AI 日报 · 10月18日 星期四 【今日焦点】 1. 标题:一句话说明为什么重要 链接:xxx 【值得关注】 2. 标题:一句话说明为什么重要 链接:xxx 【一句话补充】 3. 标题最短摘要 ...

正文控制在 800 字以内,结构清晰,前三条消息就能看完重点。链接放在每条后面,想深入了解就点,不想点也不影响信息摄入。

这里有个小诀窍:推送内容里尽量不要用《》这种标题符号,也不要加太多加粗。微信适配的富文本风格比较简洁,纯文本加适量换行是最好的。你可以在配置里加一个提示词约束:“不要加 Markdown 加粗、不要用 emoji 标题符号,使用纯文本换行”。

4. 实测两周踩过的坑:自动日报没推送、推送了但我不看、内容越来越水

4.1 坑一:定时任务“静默失败”,没有日志提示

这是最容易让人血压升高的问题。第一天配置好后,我美滋滋地等着 10:30 的推送,结果十点半到了,微信安静得像凌晨三点。去翻任务配置,它显示“已运行”,但就是没推过来。

排查链路是这样的:

  1. 先看任务日志,确认任务是不是真的在 10:30 被触发了。
  2. 再看采集环节,手动跑一次 fetch_all,确认数据源是不是超时了。有些 RSS 源偶尔会超时,需要给请求加更长的 timeout。
  3. 再看生成环节,确认提示词引用的技能名有没有拼写错误。
  4. 最后看推送通道,确认目标微信有没有绑定好。

最后发现我的问题出在一个很蠢的地方:我配置了工作日触发,但当天是周六,日志自然显示“已运行”,实际上什么都没干。这个属于我对节假日的预期判断失误,不算 bug。但这个排查过程很有价值,它让我养成了看任务日志的习惯。任何定时任务,日志就是你的第一现场。

4.2 坑二:日报标题很吸引人,点进去发现只是旧闻重发

跑了三四天后,我发现日报开始出现一个很讨厌的问题:一些所谓“热门内容”,实际上是之前已经推过好几轮的旧讨论,只是换了个角度重新上榜。RSS 源里有时间字段,但 AI 汇总的时候没有做“文章发布时间必须晚于上次运行时间”的过滤,导致新旧信息混杂。

解决办法有两个层面:

第一层,在采集环节做硬过滤。只保留发布时间在最近 24 小时内的数据,代码里加一行:

CUTOFF = datetime.now() - timedelta(hours=24) items = [i for i in items if i["published"] >= CUTOFF]

第二层,在提示词里做软约束:“如果发现内容与本周已推过的内容主题重复,优先选择时效性更强或角度更新的一条。”这一招可以避免新闻里的“回锅肉”问题。

还有一个更省事的做法:把上次成功运行的时间记录下来,作为下一次采集的起始时间戳。很多任务工具都支持在每轮任务之间传一个 state,你可以用它来记住“上次跑到哪了”。

4.3 坑三:微信里 5000 字的日报根本没人看

我一开始贪心,觉得日报嘛,信息越多越值。结果第一版推了 1500 字,我自己看到都头疼,更别提每天坚持读。我后来做了一个很刻意的改变:把日报上限压到 800 字,每条内容必须能一句话讲清为什么重要。

800 字的日报告诉我什么信息必须留、什么信息可以丢。这个“判断力”比任何技术配置都重要。真正的 AI 信息过滤不是把所有内容都塞进来,而是把你不会错过的三件事挑出来放在最前面。宁可让日报看起来短,也不能让它变成收藏夹里的另一个负担。

4.4 坑四:周末收到日报,比工作日骚扰更严重

这个我在前面提到了。周末的日报打开率几乎为零,还容易让微信通知栏变得很拥挤,其实工作日早上的那种“信息新鲜感”都被稀释掉了。改成MON-FRI之后,周末不再推送。如果你像我一样有补课需求,可以把周六的日报改成“周六早晨九点,汇总一周精华”,而不是简单复制每日格式。

4.5 坑五:提示词写得太开放,日报变成了“正确的废话”

有一版日报让我印象很深。它每条都很通顺,但读下来完全不知道今天到底发生了什么实质变化。“多个团队发布了新的模型能力”“部分开源项目获得社区关注”——这种话,说了等于没说。

问题出在提示词缺少两个东西:一是缺少“必须基于具体事实”的约束,二是缺少“避免抽象概括”的反面示例。我在提示词里加了一句:

避免下列写法:“多个团队发布了新模型”“本周 AI 领域动态活跃”。 如果一条信息无法用具体名称、具体数据或具体链接来表达,就丢弃它。

加了这个约束以后,日报质量有了明显提升。你会发现,AI 汇总类任务中,负面影响最大的往往不是能力不够,而是指令里没有给它“什么不该写”的边界。

5. 日报跑通之后,我又把哪几个 WorkBuddy 定时任务加进了早晨流程

日报这件事跑稳以后,我开始有点“上瘾”。同样的触发器、技能、输出通道模式,稍作修改就能套用到好多场景。我这里列几个我已经在用的早晨任务,它们不是一次性做完的,而是每周迭代加进去的。

5.1 周报素材自动整理

每周五下午 4 点,WorkBuddy 会把我这周提交过的代码评论、团队协作记录和技术讨论内容拉出来,生成一份“本周工作素材草稿”,推给我做人工润色。以前我写周报要回忆半小时,现在 5 分钟就能搞定草稿。这个任务的提示词核心就一句话:“基于输入内容,提取本周完成的事、遇到的问题、下一步计划,不要虚构工作内容。”

5.2 竞品动态和 GitHub Star 变化盯梢

每天上午日报之后,第二个任务会追踪几个重点竞品项目的最新更新,包括 GitHub 每日 Star 数变化、新 Release 公告和 README 更新。这个不追求全面,只追求“变化”。生成的样式类似“XX 项目今天新增 12 个 Star,发布 v0.3.2,主要更新:新增多模态接口”,一眼就能看清楚市场动态。

5.3 会议纪要归档与待办提醒

WorkBuddy 本身可以和一些会议工具联动,把转写文本自动整理成三段式纪要:结论、行动项、负责人。我设置每天 9:30 检查一次待办事项,把今天超过截止时间的任务单独提醒一次。这个任务技术含量不高,但带来的松弛感是实打实的——再也不用在脑子里反复记“下午三点有会”。

5.4 我的建议:自动化再好,也要留一条“人工确认”的口子

最后我想提醒一个很多人会忽略的点:定时任务的最大风险不是失败,而是“你开始无脑相信它”。

AI 日报做得再顺,它也只是这轮信息筛选的一个环节。我保留了每天早上读完日报后的一个动作:如果有两条以上内容和我业务直接相关,我会亲自点开原文再读一遍。这不是不信工具,而是我清楚地知道,自动化的价值在于省时间,而不在于替我做最终判断。

以后我大概率还会继续扩展这类任务,但每加一个定时推送,我都会问自己一句:这条消息如果真的让我看到了,我会后悔吗?如果答案是“会”,那它就有必要推送;如果答案是“不会”,那就说明它只是噪音。这句话送给所有想给自己做信息流系统的人,比任何配置技巧都实用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询