
1. 为什么我要给 WorkBuddy 装一个“定时投递”的闹钟每天早上到工位第一件事不是打开编辑器而是先刷一遍昨天夜里各个渠道冒出来的 AI 动态新模型发布、工具更新、行业讨论、开源项目冒泡。刷完一圈半小时没了真正要动手的活儿还没开始。更麻烦的是这些信息散落在各种地方手动整理成一份能看的日报光是复制粘贴和排版就得再花二十分钟。我试过用收藏夹、用笔记软件、用待办清单最后都败给了“懒得整理”这四个字。后来我换了个思路与其让我去追信息不如让信息在固定时间主动来找我。具体做法就是给 WorkBuddy 设一个“闹钟”——每天上午十点半让它自动跑一遍我预设好的信息采集与整理流程把结果直接推送到微信里。这样我十点半端起咖啡的时候一份结构清晰的 AI 日报已经躺在聊天窗口里了。这套东西的核心其实不复杂关键词就几个WorkBuddy、AI、微信、自动化、deepseek。WorkBuddy 负责调度和执行任务deepseek 这类模型负责把原始信息加工成可读的摘要微信负责最后的触达。整条链路跑通之后我基本不用再操心“今天有没有漏掉什么重要动态”。这篇文章适合两类人看一类是每天需要跟踪大量信息、但又不想被信息淹没的从业者另一类是想拿 WorkBuddy 做点自动化小工具、却不知道从哪下手的新手。我会把整个搭建过程拆开讲包括为什么这么设计、每一步在干什么、踩过哪些坑以及怎么让它稳定跑下去。你不需要有很深的编程基础但需要对“定时任务”和“接口调用”这两个概念有个模糊的认识。提示本文提到的所有自动化操作都建立在合规使用工具和接口的前提下。请确保你的使用场景符合相关平台的服务条款。2. 拆解这条自动化链路谁在什么时候做什么2.1 把“日报”拆成三个独立环节很多人一上来就想写一个“大而全”的脚本结果卡在第一步就放弃了。我的经验是先把整件事拆成三个互不干扰的环节每个环节单独跑通最后再串起来。第一个环节是信息采集。我需要从几个固定的来源拿到原始内容比如某些公开的技术社区、开源项目的更新日志、我关注的几个信息聚合页面。这个环节的关键是“稳定”不要求快但要求每次都能拿到东西。第二个环节是内容加工。原始信息往往是零散的、重复的、甚至夹杂大量噪音。这时候就需要 deepseek 这类模型出场让它按照我给定的模板把原始内容压缩成几条要点并且加上一句简短的点评。这个环节的关键是“可控”模型输出不能太放飞得有明确的格式约束。第三个环节是消息投递。加工好的内容要送到微信里最稳妥的方式是通过微信提供的官方消息推送能力把内容以文本或图文卡片的形式发到我的对话窗口。这个环节的关键是“准时”十点半就是十点半不能因为前面环节慢了就拖到十一点。把这三个环节分开之后每个环节我都可以单独测试、单独优化。采集慢了就优化采集模型输出跑偏了就调整提示词投递失败就检查接口配置。互不影响排查起来非常清爽。2.2 为什么选 WorkBuddy 来做调度市面上能做定时任务的工具很多系统自带的计划任务、各种自动化平台、甚至自己写个 cron 都能实现。我选 WorkBuddy 的原因有三个。第一它把“任务编排”这件事做得足够直观。我不需要去记复杂的 cron 表达式也不用在服务器上折腾环境直接在界面里设定触发时间、执行步骤和失败重试策略就行。对于我这种不想在运维上花太多时间的人来说这一点非常关键。第二它对模型调用的支持比较友好。deepseek 的接口调用在 WorkBuddy 里可以作为一个标准步骤来配置我只需要填好接口地址和密钥剩下的参数传递和结果解析它帮我处理了。这省掉了很多胶水代码。第三它的执行记录比较清晰。每次任务跑完我都能看到每一步的输入输出和耗时。有一次日报内容不对我顺着执行记录一路查下去发现是采集环节某个页面的结构变了导致拿到的内容为空。如果没有这个记录我可能得花半天去猜问题出在哪。注意不同版本的 WorkBuddy 在功能入口上可能有差异如果你找不到某个配置项先确认一下自己的版本再对照官方文档找对应的位置。2.3 十点半这个时间点是怎么定下来的时间点的选择其实有讲究。我试过几个不同的时间段最后锁定在上午十点半原因如下。太早不行。比如早上八点那时候很多信息源还没有更新完夜里积累的内容可能还在陆续发布跑早了会漏掉一部分。而且八点我可能还在通勤路上推送到手机上也未必有时间看。太晚也不行。比如中午十二点那时候上午的工作已经进行了一半日报来得太迟对我上午的决策帮助就小了。我需要的是在上午工作节奏真正铺开之前拿到一份能帮我判断“今天该关注什么”的摘要。十点半这个位置刚好卡在一个平衡点上大部分信息源已经完成了当天的第一波更新我又刚好处理完早上的例行事务有几分钟空闲可以快速浏览日报。而且这个时间点离午饭还有一段距离如果日报里发现了值得深挖的内容我上午还有时间跟进。这个时间不是拍脑袋定的你可以根据自己的作息和信息源的更新规律来调整。核心原则是在你需要做判断之前让信息刚好到位。3. 信息采集环节怎么让原始内容稳定流进来3.1 先确定“日报里到底要有什么”在动手写采集逻辑之前我先拿纸笔列了一个清单我到底希望每天在日报里看到什么列完之后发现我真正关心的其实只有四类内容。第一类是模型与工具的动态比如某个我常用的模型发布了新版本或者某个开源工具更新了重要功能。第二类是行业内的讨论热点不要求全面但要知道大家在聊什么。第三类是值得收藏的技术文章或教程可能当时没空看但需要留个记录。第四类是我自己设定的关键词监控比如某个特定技术方向出现了新内容。这四类内容对应到采集环节就是四个不同的信息来源。我不需要把全网都爬一遍只需要盯住这几个固定的口子就行。这样做的好处是采集逻辑简单、稳定而且出来的内容跟我的实际需求高度匹配。3.2 采集源的选择与取舍选择采集源的时候我遵循一个原则宁少勿多宁精勿杂。一开始我贪心加了十几个来源结果每天采集回来的内容有大量重复加工环节的压力非常大模型经常被冗余信息带偏。后来我砍到四个来源每个来源只取最近24小时内更新的一到两条内容质量反而上去了。具体来说我会优先选择那些有稳定更新节奏、内容质量有基本保障的来源。比如某个项目的官方更新日志它每次更新都是实打实的功能变化不会夹杂太多噪音。再比如某个技术社区的精选板块它的内容已经经过了一轮筛选我拿过来直接用就行。对于那些更新频率极高、内容质量参差不齐的来源我选择放弃。因为采集回来之后我花在筛选上的时间可能比我自己去看还多得不偿失。3.3 采集频率与去重策略采集频率我设定的是每天一次就在十点半任务触发的时候跑。为什么不设成每小时跑一次因为我的日报是每天一份跑那么多次没有意义反而会增加接口调用的压力和出错概率。去重策略是必须的。我的做法是给每条采集到的内容生成一个简单的指纹比如把标题和来源拼在一起做一个哈希然后跟昨天采集到的指纹列表做对比。如果发现重复就直接跳过。这个逻辑不复杂但能省掉很多后续的麻烦。还有一个细节采集的时候要带上时间戳。这样在加工环节模型可以判断这条内容是不是“新鲜”的。如果某条内容的时间戳显示是三天前的那它就不应该出现在今天的日报里。提示采集环节一定要加超时和重试机制。有些来源的响应时间不稳定如果不设超时整个任务可能会卡在那里。我的做法是单个来源最多等10秒超时就跳过记录一条日志但不影响其他来源的采集。4. 用 deepseek 把原始信息“压”成可读日报4.1 提示词的设计比模型选择更重要很多人觉得只要模型够强输出就一定好。实际用下来我发现提示词的设计才是决定输出质量的关键。同样的 deepseek 接口提示词写得粗糙出来的日报就是一堆废话提示词写得精细出来的内容直接能用。我的提示词结构是这样的先给模型一个明确的角色设定比如“你是一个技术日报编辑负责把原始信息整理成简洁的要点”。然后给出输出格式的硬性要求比如“每条要点不超过两句话”“必须包含来源”“按重要程度排序”。最后再给一两个示例让模型知道什么样的输出是合格的。这个结构看起来简单但每一条都有讲究。角色设定是为了让模型的语气和视角保持一致不会一会儿像新闻播报一会儿像技术文档。格式要求是为了让输出可以直接投递到微信不需要我再手动调整。示例是为了让模型有一个具体的参照减少跑偏的概率。4.2 怎么防止模型“自由发挥”模型有时候会自作主张比如把一条普通更新描述成“重大突破”或者加一些原文里没有的评论。为了防止这种情况我在提示词里加了几条硬约束。第一条是“只使用提供的原始内容不要添加任何外部信息”。第二条是“如果原始内容不足以形成一条要点就跳过不要编造”。第三条是“点评部分必须基于原文事实不要使用夸张词汇”。加了这几条之后输出的稳定性明显提升。当然偶尔还是会有跑偏的时候所以我在投递之前加了一个人工检查的环节——日报先发到我的文件传输助手我扫一眼确认没问题再转发到自己的主对话。这一步看起来多余但实际上帮我避免了好几次尴尬。4.3 输出格式的约束与微信的适配微信对消息格式的支持有限太复杂的 Markdown 渲染不出来表格也显示不好。所以我在提示词里明确要求模型输出纯文本用简单的符号来区分层级比如用短横线表示列表项用方括号表示来源。另外微信单条消息有长度限制如果日报内容太长会被截断。我的做法是让模型把内容控制在800字以内如果确实有更多内容就分成两条消息发送。这个长度限制我也写进了提示词里让模型自己控制。还有一个细节微信里链接的展示效果不太好所以我让模型在提到某个来源时只写来源名称不写完整链接。如果我真的需要链接可以去采集记录里找。这样日报看起来更干净也避免了链接被截断的问题。5. 把日报送进微信投递环节的几种做法5.1 为什么我选择官方消息推送能力把内容送进微信市面上有几种做法。一种是模拟客户端操作一种是利用微信提供的官方接口。我选择后者原因很简单稳定、合规、不容易出问题。官方接口的调用方式不复杂核心就是拿到一个访问凭证然后调用消息发送接口把内容推送到指定的对话。凭证有有效期需要定时刷新这个刷新逻辑我放在了 WorkBuddy 的任务里每次投递之前先检查凭证是否有效无效就自动刷新。这种方式的缺点是配置稍微麻烦一点需要先在相关平台完成一些设置。但一旦配好后面基本不用管每天准时送达很少出问题。5.2 投递失败时的兜底方案再稳定的系统也有出问题的时候。我遇到过几次投递失败原因各不相同有时候是凭证过期了没刷新有时候是网络波动导致请求超时有时候是内容里包含了特殊字符导致接口报错。针对这些情况我做了两层兜底。第一层是重试机制投递失败后自动重试两次每次间隔30秒。第二层是备用通道如果重试两次还是失败就把日报内容写入一个本地文件同时给我发一封邮件提醒。这样即使微信投递挂了我也不会完全丢失当天的日报。这个兜底方案看起来有点过度设计但实际用下来它帮我挽回了好几次“日报失踪”的情况。尤其是凭证过期这种问题如果没有兜底我可能要到第二天才发现。5.3 消息内容的最终检查清单在投递之前我会让 WorkBuddy 做一次最终检查。检查项包括内容是否为空、长度是否超限、是否包含敏感词、格式是否符合预期。任何一项不通过就跳过投递转入兜底流程。这个检查清单是我根据实际踩坑经验总结出来的。比如有一次模型输出里带了一个特殊符号导致接口直接报错整条日报都没发出去。后来我加了特殊字符过滤这个问题就再也没出现过。注意检查清单不要设得太复杂否则会增加任务执行时间。我的原则是只检查那些“一旦出问题就会导致投递失败”的项其他细节问题可以容忍。6. 让这套东西稳定跑下去的几条经验6.1 日志要记但不要记太多WorkBuddy 自带执行记录但我还是额外加了一个简单的日志文件。日志里只记三样东西任务开始时间、每个环节的耗时、最终投递结果。其他的中间数据一概不记。为什么这么克制因为我试过记全量日志结果文件膨胀得很快查问题的时候反而要在海量信息里翻找。精简之后的日志一眼就能看出哪个环节慢了、哪个环节失败了排查效率高很多。6.2 定期检查采集源的有效性采集源不是一成不变的。有些页面会改版有些接口会调整有些内容会停止更新。如果不定期检查可能会出现“采集环节正常执行但拿到的内容为空”的情况而任务本身不会报错你就以为日报正常实际上里面什么都没有。我的做法是每周花五分钟看一眼最近的采集记录确认每个来源都有内容进来。如果某个来源连续两天没有内容就去检查一下是不是页面结构变了或者接口调整了。6.3 模型输出要定期“校准”deepseek 的输出质量整体稳定但偶尔会有波动。我每个月会抽一天把当天的原始内容和模型输出放在一起对比看看有没有明显的偏差。如果发现模型开始“偷懒”或者“加戏”就调整一下提示词重新校准。这个习惯帮我保持日报质量在一个稳定的水平线上。毕竟自动化工具最怕的就是“看起来在跑实际上输出已经不能用了”定期校准是发现这种问题的有效手段。6.4 不要把整条链路绑得太死最后一个经验是关于架构的。我一开始把采集、加工、投递写在一个大任务里任何一个环节出问题整个任务就挂了。后来我把它拆成了三个独立的任务用 WorkBuddy 的依赖关系串起来。采集任务先跑跑完触发加工任务加工完触发投递任务。这样做的好处是如果加工环节出了问题采集环节的结果还在我可以手动触发加工不需要重新采集。同样如果投递失败加工好的内容也还在我可以手动重发。每个环节都可以单独重跑灵活性高了很多。这套东西跑到现在已经成了我每天上午的一个固定节奏。十点半咖啡端起来日报刚好弹出来。我不需要再去想“今天有没有漏掉什么”因为我知道该来的都会来。如果你也在被信息追着跑不妨试试给它设个闹钟让信息在你需要的时候主动来找你。