尧图精选

定时任务+Agent实战:从零搭建AI日报微信推送系统

🕒 发布时间:2026/9/28 9:12:15 📁 来源:尧图网络
1. 从每天手动刷资讯到给 WorkBuddy 上闹钟我到底经历了什么先交代一下背景。我做技术选型和技术趋势跟踪已经好几年每天早上的固定动作是打开几个 AI 资讯站、翻一遍 GitHub Trending、刷几条产品更新动态再整理成几条要点发到团队群或者自己笔记里。这套流程看起来简单但实际操作下来非常耗神——信息源又多又杂每篇都要打开看看完还要提炼、总结、排版等全部弄完大半个上午就没了。后来我开始用 WorkBuddy 处理这些事。WorkBuddy 本身是 Coding Agent 形态的 AI 工具但说白了它更像一个能替你把任务拆解、执行、交付的数字员工。你给它一个目标它可以自己决定先做什么、后做什么中间会调用各种工具比如搜索、读网页、执行脚本、调接口。早期我拿它写代码、做重构、查文档后来某天我突然想它既然能在命令行里自由操作为什么不能替我做一份 AI 日报于是就有了这个项目每天上午十点半WorkBuddy 自动抓取 AI 领域的最新动态整理成结构化的中文日报通过微信推送到我手机上。这就是标题里说的给 WorkBuddy 设了个闹钟。这个场景听起来挺小但它横跨了两个比较典型的需求点。第一个是定时自动化——怎么让一个 AI 代理在指定时间自动醒来干活第二个是消息触达——干完活之后怎么把一个结果自然、稳定、不费劲地送到微信里。这两个点结合在一块儿正好能覆盖很多人的真实痛点不是不会用 AI而是 AI 总是要人主动问才干活没法到点自己动。WorkBuddy 这类 Agent 工具的真正价值恰恰在于把人找 AI变成AI 找人。这篇文章我就把整套方案完整拆开讲一遍从任务编排、信息源配置、日报模板设计到推送通道选型、定时任务上云、实测效果和踩坑记录全部记录下来。如果你也想做一个类似的AI 自动干活项目——不管是日报、周报、还是盯数据、盯价格、盯竞品这个思路都可以直接抄作业。2. 为什么这个活适合 WorkBuddy 干而不是写个 Python 脚本很多人会问抓取资讯、整理摘要、推送消息这些用 Python 写个脚本不是更直接吗确实如果需求是每天抓三个固定网站提取标题拼接进微信模板消息用脚本两小时就能搞定。但我的需求没那么简单而且随着时间推移需求一定会变。先说说用纯脚本方案的几个麻烦点。第一信息源的维护成本非常高。AI 领域的资讯来源不是固定的今天这个博客活跃明天那个团队发了新论文后天某个产品上线了新功能。你用脚本高高兴兴抓了五个源过两个月其中两个改版了HTML 结构一换选择器全失效你就得花时间改解析逻辑。WorkBuddy 是用自然语言理解网页内容的它不需要你写死 DOM 节点只要有 URL 和一个你去看看这个页面讲了什么的指令它就能完成信息提取。信息源变化时它有一定的容错能力不需要你立刻改代码。第二内容加工环节的灵活性。脚本做摘要基本靠 NLP 规则或者调第三方大模型 API每次改摘要长度、改语气风格、改排序逻辑都要改代码。而 WorkBuddy 的干活逻辑是对话式描述的比如摘要控制在三句话以内重点突出产品发布和论文类内容语气像行业编辑。这些要求写进指令里就行改起来基本是改文案而不是改代码维护成本不是一个量级。第三多步任务的编排能力。做日报不是抓完就推这么简单合理的工作流应该是先拉取信息源列表挨个抓取和过滤再汇总去重再按模板生成日报最后走推送接口。脚本要做到这个程度需要写状态机、做异常处理、加日志监控整套下来工作量不小。WorkBuddy 本身就是一个任务编排引擎你可以把每一步定义成 Skill 或者任务节点它帮你调度。但这里要泼一盆冷水WorkBuddy 不是万能的它擅长的是读、想、写、调工具这类认知型任务而不是高并发抓取、大规模数据清洗这类重型计算任务。如果你的日报信息源有几十个、每个页面几 MB 大那还是老老实实用爬虫加队列处理WorkBuddy 扛不住这种量级的吞吐。我目前的方案是让 WorkBuddy 处理 5 到 8 个核心信息源每个源只读最新的几条配合定时任务每天跑一轮体量完全在它的舒适区里。所以这个项目的架构判断是WorkBuddy 负责动脑子的部分筛选、提炼、总结、排布传统工具负责出力气的部分网络请求、定时触发、消息推送。你不用把所有逻辑都塞给 AIAI 也不需要成为你唯一的工具。两者配合才是 Agent 自动化项目的正确打开方式。3. 日报内容质量的关键给 WorkBuddy 立好规矩而不是让它自由发挥AI 日报看着简单但AI 自己写的日报和能看的日报之间差着一套严格的指令约束。我最早试过给 WorkBuddy 一句帮我抓点 AI 资讯做成日报结果它自由发挥得相当奔放——信息源选项五花八门有的内容是一个月前的有的摘要写得像商品详情页还有的干脆把一篇论文的 abstract 翻译了一遍怼上来。后来我花了两个晚上把指令打磨成一套完整规范日报质量才算稳定下来。3.1 明确信息源清单和抓取顺序我首先做的是把日报的信息源从AI 自己随便找变成我定好的固定清单。这不是限制 AI而是为了保证内容稳定可控。我给 WorkBuddy 的指令里写了一份白名单每个源都标注了用途和权重大致是这样Hacker News关注 AI 相关的热帖和高赞讨论权重高因为社区讨论能反映技术趋势的传播度。机器之心 / 量子位国内 AI 媒体的综合性报道作为中文视角的补充。GitHub Trending今日新增或热度上升的 AI 开源项目重点看 Star 数、语言、项目描述。arXiv新论文重点抓标题和摘要筛选出和 LLM Agent 相关的方向。各大厂商官方博客OpenAI、Anthropic、Google、Meta 等重点看产品发布和能力更新。信息源不是越多越好我踩过这个坑。一开始列了十几个源结果 WorkBuddy 的上下文窗口很快就被撑满抓取到后面几个源时已经开始忘记前面看过的内容总结质量直线下降。后来我把源控制在 6 个每个源只抓当天的新内容效果明显好很多。3.2 定义日报模板锁定输出格式内容抓完之后下一步是让 WorkBuddy 按固定模板组织成日报。模板这件事我强烈建议你认真设计因为模板本质上就是你对 AI 的验收标准它决定了你每天看到的成品长什么样。我的模板大致有五个板块今日头条选取最重要的 1 条事件写两三句导读。模型与产品动态新模型发布、新功能上线、API 更新等。开源项目精选2 到 3 个项目包含项目名称、Star 数、一句话介绍。值得看的论文1 到 2 篇标注标题、方向、核心贡献。业界讨论与观点精选社区里值得关注的观点争议或深度讨论。每个板块下还规定了具体格式比如模型与产品动态每条要包含厂商名称、动作、核心价值点、影响范围。开源项目要附上链接和 Star 数讨论观点要写出谁在什么背景下说了什么。这里有一个经验先让 AI 按模板跑一遍手动流程你再对着输出结果改模板。直接凭空设计模板很容易过度复杂等你看到实际输出后再删减会清晰得多。3.3 语气和摘要长度的约束最后一个规范是语气和长度约束。我经历过AI 日报变成AI 论文摘要合集的阶段也经历过它把新闻稿整段复制过来的阶段。现在的指令里明确写了三条每条摘要不超过三句话第一句讲清事实第二句讲影响第三句给出判断或背景补充。 语气像行业媒体的早报编辑而不是像学术论文作者要有点观点但不要随便吹捧。 所有内容必须标明来源和链接方便我点开看原文。这三条看着简单但对输出质量的影响非常大。尤其是标明来源这一条它强迫 WorkBuddy 在生成内容时保留溯源信息实际上降低了它胡编乱造的概率——因为一旦它想不出对应链接它自己就会意识到这条可能不合适。4. 10:30 推送链路搭建微信通道的四种接法和我的选择内容生成只是前半场后半场是把日报送进微信。这一步的方案选择直接决定了整个系统稳定不稳定、维护成本高不高。4.1 个人微信直推能用但我不建议你碰很多人的第一反应是直接用个人微信发给自己或者用第三方库操作微信。这个方案的体验确实最接近原生的微信消息但代价很大。一方面个人微信的自动化操作违反了平台的使用规则账号存在被限制的风险另一方面这类方案依赖非官方接口稳定性完全看运气你每隔一段时间就得修一次登录态失效的问题。我自己的原则是日报推送给自己的场景不值得用账号安全去换便利。如果哪天真需要给个人微信发消息我更倾向使用文件传输助手 复制粘贴这种手动兜底方案而不是铤而走险去搞自动化。4.2 企业微信机器人 Webhook最稳的官方通道这是我最后选用的主力方案。企业微信虽然没有个人版那么普及但它的群机器人功能提供了官方 Webhook 接口往群里发消息本质上就是一次 HTTP POST而且个人可以免费创建企业微信不需要真的有一个公司建一个只有自己的群拉一个机器人进来拿一个 Webhook 地址这事就通了。为什么要强调只有自己的群因为它本质上解决的是给自己发消息这个需求但你用了官方合规的方式。而且 Webhook 只用来接收消息没人能通过这个地址看到你的聊天记录隐私方面也没什么问题。具体操作流程下载企业微信客户端注册一个企业个人身份即可不需要营业执照。创建一个群聊群名随便起比如AI日报接收站把群成员设置为只自己一个人。在群设置里找到群机器人点击添加取名AIDailyBot添加完成后会得到一个 Webhook 地址。把这个地址保存到 WorkBuddy 的配置里作为日报推送的目标地址。推送消息时只需要向这个 Webhook POST 一段 JSON下面是一个最简示例。curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key替换成你的Key \ -H Content-Type: application/json \ -d { msgtype: markdown, markdown: { content: ## AI日报 2025-01-15\n**今日头条**\n 内容摘要……\n\n**模型与产品动态**\n- 厂商A发布新模型\n- 厂商B更新API\n } }企业微信机器人的消息格式支持 text、markdown、news 等几种类型日常日报用 markdown 就完全够用标题、加粗、引用、链接都能正常展示手机端体验很不错。注意企业微信机器人的 markdown 格式和 GitHub 的 markdown 并不完全一致比如|表格支持得非常有限建议日报模板里少用表格、多用列表和引用块兼容性会好很多。4.3 Server酱和 PushPlus适合个人但有频率上限如果你不想牵扯企业微信Server酱方糖和 PushPlus 是轻量替代方案。它们的原理都是通过一个网站提供的 API 把消息转发到你微信上注册后各拿一个 SendKey 或 Token然后 GET 或 POST 一条消息文本就能在微信上收到推送。这两个方案的好处是接入简单两三分钟搞定不用额外注册企业微信。但劣势也很明显一是第三方服务的可用性不由你控制偶尔会遇到通道拥堵二是免费额度有每日频率限制Server酱免费版一天几十条日报一天推一次绰绰有余但如果你未来想把日报拆成实时告警这个方案就不够用了。我的建议是个人玩票、临时验证用 Server酱长期稳定跑直接上企业微信机器人。切换成本也不高核心逻辑都是 POST 一个 JSON只是 endpoint 和 payload 不一样。4.4 最终推送逻辑内容检查 失败重试在实际运行里推送不能只是发一次就完事。我在 WorkBuddy 的推送步骤里加了两条规则第一推送之前先让 WorkBuddy 自己检查一遍稿子。我会在指令里写预览整篇日报确认没有空板块、没有明显重复、没有超长段落再执行推送。这一步本质上是让 AI 在交付前做一次质量自检能过滤掉很多输出异常的情况。有时候它前一步生成的内容格式乱了这步自检能发现并要求自己重写。第二推送失败时要有一个备用动作。比如企业微信的 Webhook 因为网络问题返回超时WorkBuddy 会先重试两次如果还不行就把日报正文写到一个固定文件里同时向本地日志输出一条告警。这样即使推送链路挂了我当天也不会完全拿不到内容——打开电脑翻一下文件就行。5. 定时调度上云Cron 表达式、时区陷阱和手动触发做兜底WorkBuddy 本身有定时任务功能可以直接在配置中心设定执行计划。但真正把一个定时任务跑稳定里面有几个细节不处理会很难受。5.1 用 Cron 而不是每隔几分钟跑一次定时的第一选择是 Cron 表达式因为它能精确表达每个工作日的 10:30这类需求。对应的表达式是30 10 * * *这段的意思是每天的 10:30 分执行五个星号分别代表分钟、小时、日期、月份、星期。如果你想只在工作日跑改成30 10 * * 1-5这里 1-5 表示周一到周五。我个人建议工作日跑就好周末的 AI 资讯量本来就少没必要每天打扰自己。5.2 时区问题服务器时间是 UTC你以为是北京时间这是新手最容易踩的坑。如果定时任务跑在云服务器上而服务器的时区是 UTC那么Cron 里写 30 10 * * *实际触发的时间是国际标准时间 10:30换算成北京时间是18:30正好差了八个小时。这会导致你以为的上午十点半日报变成傍晚六点半日报。处理方式有两种。第一种是在 WorkBuddy 的配置里明确指定时区很多工具都支持timezone: Asia/Shanghai这样的参数写清楚之后 Cron 会自动按北京时间解释。第二种是在服务器层面把系统时区改成 Asia/Shanghai修改方式因系统而异Debian/Ubuntu 上是sudo timedatectl set-timezone Asia/Shanghai改完之后用date命令确认一下输出是否为北京时间再设定定时任务就能避免这个坑。5.3 为什么我保留了手动触发按钮即使定时任务配置得再完美我也强烈建议你在 WorkBuddy 的工作台上保留一个手动触发入口。原因很简单定时任务跑挂的那一天你必须有一条快速的补救路径。比如某天早上因为外部 API 不稳定日报生成失败又或者网络波动导致推送到微信的请求超时。这时候如果你只能等第二天自动重跑损失就大了。手动触发只需要点一下让 WorkBuddy 立刻按同样的流程重新生成一份日报并推送相当于给自己留了一条救急通道。这个设计逻辑和飞机上的备用仪表一样——主系统越自动化备份方案就越重要因为你知道复杂的链路上每一环都有可能出问题。5.4 任务执行的超时设定和幂等性最后说说超时和幂等。日报任务涉及多个网页抓取和内容生成一次完整执行可能要 5 到 15 分钟具体取决于信息源的响应速度和当天的内容量。WorkBuddy 的定时任务如果设置了太短的超时时间任务会在生成中途被强制终止导致日报内容不完整。我的经验是超时设为 30 分钟比较稳。幂等性则是说同一时刻不要重复执行。比如某个早上你手动触发了一次刚好定时任务也自动触发了一次两个任务同时跑最终你会收到两条一模一样的日报。解决方式是在任务里加一个锁如果检测到上一次任务在 30 分钟内已经成功执行过就直接跳过本次执行。这个逻辑在 WorkBuddy 的编排流程里可以用一个很简单的状态标记实现但对消息体验的提升很明显。6. 跑了一个月之后的不完全踩坑记录这个日报自动推送项目运行到现在已经一个多月。客观说整体稳定率能达到九成以上但中间也出过几类问题我逐一记录一下给想复刻这套方案的人提个醒。6.1 信息源被反爬不是所有网页都让 AI 随便读我最开始选定的一个信息源在持续抓取一周之后开始频繁返回 403 和验证码页面。WorkBuddy 读不了内容日报里那一栏就变成了今日无更新。这个问题的本质是很多网站对自动化访问有反爬策略。解决方式有几个方向一是换用该网站提供的官方 RSS 源RSS 是平台主动开放的内容出口抓取合法性高且结构稳定二是降低抓取频率把原来每 30 分钟检查一次改成了每天只在上午跑一轮很多站对低频访问是睁一只眼闭一只眼的三是给 WorkBuddy 配置一段延迟等待时间让它抓取时模拟更自然的行为。我在实测中优先用方案一和方案二基本能解决大部分反爬问题。6.2 上下文窗口溢出信息量过载会失忆这里说的失忆是指WorkBuddy 处理到第五个信息源的时候它已经忘了第一个信息源讲过什么导致日报的今日头条板块和后面的片段重复。原因是单次任务的上下文窗口有限内容太多就把前面的信息冲掉了。我的调整办法是拆步骤。不要求它一次处理全部信息源而是把日报任务拆成两步第一步逐源提取信息要点每个源单独整理成结构化条目存成中间文件第二步汇总所有文件再生成日报。这样每个步骤的上下文都相对干净内容不会互相污染。6.3 微信推送的 Markdown 兼容问题企业微信机器人虽然支持 markdown但它有很多自己的限制。比如不支持表格渲染不支持嵌套列表部分 HTML 标签会被过滤。一开始我设计的模板里有表格对比推送到手机上直接成了一堆竖线组成的乱码阅读体验非常差。后来我把模板全部改成列表加引用块的组合才算稳定。所以你现在看到我的日报里不会有表格这是被毒打之后的经验。6.4 日报里出现幻觉内容AI 生成内容一定会有幻觉风险。日报里出现过的幻觉包括虚构了一个某厂商发布新模型的标题摘要写得像模像样但点开链接后原文根本没有这个信息某开源项目的 Star 数对不上。这个问题无法彻底消灭只能靠规则 人工抽检压缩概率。我的做法是在指令里强调所有条目必须来源于本次抓取的网页内容严禁用自己的知识库补充所有链接必须来自原文页面的真实链接如果某条内容不确定宁可省略也不要硬编。另外我每周会抽两三天点开日报里的链接做抽查验证内容的准确度发现问题就调整对应的信息源或指令措辞。这段时间下来幻觉出现的次数已经降到了很低但我不敢保证永远不会发生。6.5 定时任务偶尔延迟定时任务有一个延迟的天然原因抓取外部网站时如果遇到某个站响应慢整个流程就会被拖住。我设置的触发时间是 10:30但偶尔日报会到 10:45 甚至 10:50 才推送。后来我加上了一个每个源最长抓取时间的限制比如单源超过 30 秒就跳过它继续后面的任务。虽然极端慢的情况下还是会有延迟但整体可控大部分时候能在 10 分钟之内推送完成。7. 成本账和实用建议这个项目到底值不值得做最后说点实在的就是钱和精力。7.1 运行成本分析整个项目运行一个月的成本构成包括成本项说明月度费用WorkBuddy 订阅基础订阅包含任务编排和定时功能视套餐而定大模型 API 费用日报生成中的摘要、总结、改写会消耗 token约几元到十几元云服务器跑定时任务的轻量服务器约几十元企业微信免费0信息源全部是公开免费内容0如果你有现成的服务器和 WorkBuddy 订阅这个项目的边际成本几乎为零主要就是每天大模型 API 的几分钱消耗。起步阶段如果想控成本可以先用轻量模型做摘要、用中端模型做最后的日报整合两边分开调用能省不少 token 费用。7.2 新手起步的落地路径建议如果你也想做类似的 AI 定时任务我建议按这个顺序上手而不要一上来就追求全自动化第一步先用 WorkBuddy 手动跑通生成日报这个流程在所有信息源和模板确定之前不要碰定时任务。 第二步接上企业微信机器人手动运行一次确认推送体验没问题。 第三步加定时调度先用每天跑一天看效果的模式跑一周观察输出质量和稳定性。 第四步再考虑加失败重试、备用通道、手动触发等增强功能。这样一步步来每一层都验证过再往下走出问题时定位会非常快。7.3 这个模式还能迁移到哪些场景日报只是 WorkBuddy 定时任务的一个应用。这套到点干活、微信通知的模式天然适合很多场景。比如周报生成器每周五下午五点自动拉取你这周的 Git 提交记录、任务管理软件里的完成项生成周报草稿推送给你。竞品监控每天盯几个竞品的官网和公众号有更新就自动总结变化点推给你。论文追踪如果你的方向更新快可以定时抓 arXiv 上的最新论文按关键词过滤后推送到群里。价格波动提醒盯某个商品或服务价格跌到阈值就通知你。早报整合把天气、待办事项、今日日程合并为一条早安消息。我个人在实际操作中的体会是这类自动化的核心难点从来不在技术而在于你怎么定义什么值得被推送。等你把筛选标准想清楚了WorkBuddy 能不能把活干好反而只是执行层面的问题。最后再分享一个小技巧运行稳定之后别急着把脚本丢一边不管每周抽几分钟点开 WorkBuddy 的执行日志看一眼。很多问题都是今天没问题明天可能就有苗头提前发现比事后修复舒服得多。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →