新闻详情

新闻详情

首页 / 资讯中心 / 详情

用WorkBuddy搭建自动AI日报系统:定时生成+微信推送全指南

发布时间:2026/10/1 13:44:39来源:尧图网络
用WorkBuddy搭建自动AI日报系统:定时生成+微信推送全指南
如果你也是那种每天早上打开手机被几十个公众号和新闻客户端轮番轰炸的人那这篇文章应该正好能帮上忙。我最近干了一件特别“偷懒”的事给 WorkBuddy 设了个闹钟每天上午十点半它自动把一份整理好的 AI 日报推进我的微信群里。整个过程从触发、生成、推送到归档大概两分钟期间我不用碰一下电脑。先说清楚 WorkBuddy 是什么。如果你们还没接触过可以把它理解成一个带“工作台”的 AI 智能体不只是聊天框它能按规则执行任务、调用外部工具、读网页、建文件在某些版本里还支持 skill 技能包。而我做的事情本质上是把“每天早上花四十分钟刷 AI 资讯”这件事拆成了“定时任务 信息收集 结构化输出 微信推送”四段流水线交给 WorkBuddy 和系统计划任务一起跑。这篇东西不是产品说明书我也没打算教你背命令。我会尽量把设计思路、踩坑过程、关键代码和那些“文档里不会写”的细节都摆出来。不管你是开发、产品、运营还是单纯想给自己搞个 AI 信息助理这套方案都能直接抄作业。1. 为什么我要给 WorkBuddy 装一个“定时闹钟”1.1 日报真正值钱的部分是筛选而不是搜集最开始我试过纯手动刷信息订阅了一堆公众号和 newsletter结果每天光“已读”就要花掉大半个上午。后来我也试过让 WorkBuddy 随口帮我“总结几条 AI 新闻”效果很飘有时候它给我推三天前的旧闻有时候一口气列二十条排版乱得根本不想看。问题不在于 WorkBuddy 笨而在于我没给它定规矩。日报不是搜索引擎的“结果堆叠”它应该有明确的骨架今天最重要的 3 条焦点、模型和应用更新、值得关注的开源项目、以及对我实际工作有影响的观点。这个骨架一旦固定下来AI 输出就会稳定得多。所以我的第一个决定是日报的核心不是“抓取”而是“筛选”WorkBuddy 的价值在于它能同时完成搜索、对比、摘要和结构化输出而不是简单地扔给我一屏链接。1.2 十点半这个时间点是我踩过时间坑之后定下来的很多人第一反应是“早上八点推送起床就能看”。我也试过结果发现太早真不行。AI 圈子里的重要更新很多来自海外开源社区和技术博客八点的时候很多页面还没来得及更新WorkBuddy 抓到的经常是前一天的存量信息。推得太早日报就变成了“昨日黄花”。下午再推又失去了“日报”的意义中午一过新鲜感就没了。最后我把时间定在十点半这时候晨会基本开完用户也处理完早上最紧急的一波消息正好空出几分钟认真读一份日报更重要的是上午十点前后是欧美技术圈夜间更新基本落定、内容源相对完整的时间窗口。这个时间点我连续测了一周稳定性和信息新鲜度都明显好过八点档。1.3 为什么是微信而不是邮件或者独立网页我还真纠结过触达渠道。邮件胜在排版自由但现在谁每天主动打开邮箱网页面板更别提了还要我手动输网址、登录、点击查看一旦忘了这份日报就白做了。微信是我每天打开次数最多的应用没有之一推送到达后扫一眼就能读完不需要额外跳转。具体到实现方式我选了群机器人 webhook而不是去开发一个微信小程序。原因很简单企业微信群机器人申请一个群就能拿到接口就一个 URL免费、无需审核、支持 Markdown 消息十分钟就能跑通。对个人或者小团队来说这是性价比最高的微信推送通道。后面我会把完整的接入代码放出来。2. 搭建思路全局规则、skill 模板和推送链路2.1 给 WorkBuddy 定几条全局规则让后续所有任务都默认守规矩我见过很多人在用智能体的时候只会在对话里临时补一句“你写日报的时候记得标注来源”结果第二天一问它又忘了。原因就在于对话里的临时指令只对当前这一轮任务生效再开一个新任务所有临时约束都会归零。WorkBuddy 这一类工具通常都会提供一个“全局规则”或“系统提示词”的配置入口放在这里的内容会作为底层约束注入到后续每一次任务执行里。我实际配置的内容大致长这样global_rules: - 所有输出统一使用简体中文 - 日报内容必须标注来源和日期禁止出现无法核实来源的传闻 - 每条新闻摘要控制在 50 字以内只保留事实判断不写虚的形容词 - 信息按影响力排序而不是按抓取顺序 - 涉及数字和版本号时必须与源页面保持一致这一条特别重要热搜词里那句“给 workbuddy 定几条规则后续对所有任务都生效”说的就是这个场景。如果你把规则只写进某一次 prompt那叫临时约定只有写进全局配置它才叫工作制度。我在第四部分会专门讲这个坑。2.2 在 skill 里固化日报模板AI 输出才稳定全局规则管的是“态度”skill 管的是“格式”。如果你让 AI 自由发挥它会每次生成一个结构的日报一会儿列表、一会儿表格、一会儿故事体。所以我建了一个名为ai_daily_report的 skill相当于给 WorkBuddy 一份“岗位说明书”。skill 里面我固定了几层信息源优先级官方发布页和技术博客排第一arXiv 和 GitHub Trending 排第二科技媒体的深度报道排第三。这样 WorkBuddy 不会因为某个蹭热点的营销号把重要新闻挤掉。输出模板是这样的# AI 日报 {{date}} ## 今日焦点3 条 - 事件 / 影响 / 我的判断 ## 模型与应用更新 - 模型发布、版本更新、API 变更 ## 开源项目与论文 - 值得跟踪的仓库、论文、数据 ## 对开发者的影响 - 这与我当前工作场景的关系模板固定之后Output 的稳定性直线上升。我只需要在每天早上触发时告诉 WorkBuddy“按ai_daily_reportskill 生成今天的日报”它就知道该采集哪些来源、按什么结构落盘、用什么样的口吻写摘要。2.3 推送链路选型企业微信机器人为什么最省事触达渠道的对比我直接列一张表省得你们来回试。推送方式前置要求成本适合场景邮件SMTP 配置低正式通知、归档Server酱绑定微信免费但依赖第三方个人消息通知企业微信群机器人建一个群拿 webhook免费、即时个人日报、团队内部推送公众号模板消息认证服务号需要审核、开发面向外部用户自建小程序认证 开发成本高产品化、多用户管理我自己最后留下的是企业微信群机器人。它最大的优势是两个不需要申请任何额外权限拉一个只有自己的群就能拿到 webhook消息类型支持 Markdown体验比纯文本好很多。要注意的是 webhook 地址就是一个携带 key 的 URL一旦泄露任何人都能往你群里发消息所以绝对不能把它提交到公开的 Git 仓库里。2.4 整条数据流其实就是一条流水线如果你把整套系统拆开看它不复杂系统计划任务在十点半触发脚本脚本调用 WorkBuddy 的命令行接口注入日期、路径要求它按 skill 生成日报WorkBuddy 完成任务后把 Markdown 文件写到指定目录脚本读取文件、按长度截断然后通过企业微信机器人 webhook 推送到群里最后文件自动按日期归档。这个流水线的好处在于每个环节都可以单独替换。比如你今天想改成飞书机器人只需要换掉那个send_to_wechat函数想把时间改成早上九点改一行计划任务就行。后面讲周报扩展的时候你会发现这套结构根本不挑任务类型。3. 手把手落地从 CLI 调用到系统定时任务3.1 准备工作确认 WorkBuddy 环境和 CLI 命令在写脚本之前我先花十分钟确认 WorkBuddy 在本机能不能通过命令行独立调用。终端里先跑两条命令workbuddy --version workbuddy run 你好请回复 OK不同年头、不同发行版的命令名可能略有差别但思路是一样的必须确保它能在不打开图形界面的情况下通过一条命令接收 prompt 并返回结果。等到这条命令稳定执行成功后面的事情就都很顺了。我一开始在这个环节卡了很久因为我在图形界面里能用但命令行一跑就报“无法定位工作目录”后来发现是没有初始化本地配置目录执行一次初始化命令就好了。另外一个容易被忽视的问题是脚本运行环境。系统计划任务执行脚本时不会加载你自己终端里那一堆自定义环境变量。所以我后来在脚本开头就写死了几个绝对路径别贪图省事用相对路径否则手动跑是好的定时跑就各种报错。3.2 核心脚本生成日报文件我建议让 WorkBuddy 直接把日报写到本地文件而不是把 stdout 拿回来解析。原因有两个一是终端输出的转义和编码问题很烦Windows 上经常出现 Unicode 乱码二是文件归档本来就是日报这个场景的刚需按日期落盘等于自动建了历史数据库。#!/usr/bin/env python3 # -*- coding: utf-8 -*- import subprocess import pathlib import datetime DATE datetime.date.today().isoformat() REPORT_DIR pathlib.Path(/data/ai-reports) REPORT_PATH REPORT_DIR / fdaily-{DATE}.md def generate_daily_report(): prompt ( f请按照 ai_daily_report skill 生成今天 {DATE} 的 AI 日报 f把结果保存到文件 {REPORT_PATH} ) result subprocess.run( [workbuddy, run, prompt], capture_outputTrue, textTrue, timeout300, encodingutf-8, ) if result.returncode ! 0: raise RuntimeError(result.stderr[-500:]) return REPORT_PATH if __name__ __main__: report_file generate_daily_report() print(f日报已生成: {report_file})这里有几个细节。timeout 我给了 300 秒因为 AI 需要搜索来源、读取页面、整理摘要如果限定太短容易出现中途失败。如果你发现自己的机器配置比较差可以放宽到 600 秒然后在计划任务里把“如果任务仍正在运行则不要启动新实例”这个选项打开避免重叠加塞。3.3 推送代码企业微信机器人的 Markdown 消息文件生成之后接下来就是推送。企业微信机器人的 webhook 调用非常简单用requests发一个 JSON 即可。我额外做了两件事一是判断返回码二是内容长度保护。企业微信机器人的 Markdown 消息正文有长度限制超过之后会被直接拒绝所以我会先把内容截断到安全范围避免推送失败。import requests import json WEBHOOK_URL https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的key def send_to_wechat(content: str): # 企业微信 markdown 消息有长度限制保留前 4000 字符 content content.strip()[:4000] payload { msgtype: markdown, markdown: { content: content } } resp requests.post(WEBHOOK_URL, jsonpayload, timeout15) data resp.json() if data.get(errcode) ! 0: # 常见频控错误会返回 45009这里只简单抛出 raise RuntimeError(f企业微信推送失败: {data})如果你连requests都不想装用 curl 也能实现同样的效果适合先在命令行里验证 webhook 是否可用curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的key \ -H Content-Type: application/json \ -d {msgtype:text,text:{content:hello from WorkBuddy}}第一次测试通过之后再把这段 curl 替换成 Python 版本放进完整的调度脚本里。完整的调度脚本其实就是把 3.2 和 3.3 拼起来先调 WorkBuddy 生成日报文件再读文件内容最后推送微信。我在把这两段代码合并的时候额外加了一行日志记录把每次执行的时间、生成文件路径、推送结果写进run.log方便日后排错。3.4 注册到系统计划任务Windows / Linux / macOS生成和推送的脚本搞定之后剩下就是让系统每天上午十点半自动执行它。在 Windows 上我推荐直接用计划任务。打开“任务计划程序”创建一个新任务触发器设置为每天 10:30操作里把程序指向你的 Python 解释器和脚本路径。也可以用命令行一步到位schtasks /Create /TN WorkBuddyDailyAI /TR D:\Python312\python.exe D:\scripts\generate_daily_report.py /SC DAILY /ST 10:30Linux 或 macOS 就简单多了直接上 crontab30 10 * * * cd /opt/workbuddy-report /usr/bin/python3 /opt/workbuddy-report/generate_daily_report.py /var/log/workbuddy-daily.log 21这里有两个坑必须交代清楚。第一Windows 计划任务不会加载你终端 shell 里的 PATH所以/TR里的 Python 一定要写绝对路径否则会出现“脚本运行不了但手动执行没问题”的诡异情况。第二如果你的电脑在十点半正好处于关机或睡眠状态任务就不会按时触发。Windows 可以在任务设置的“条件”页里勾选“如果错过计划开始时间尽快启动任务”Linux 下就得靠anacron或者让电脑保持开机这一点要在部署之前想清楚。3.5 首次试跑与效果验收我在正式部署后连续观察了三天。第一天的 output 有点偏长一个焦点写了三段第二天的 output 又过短只有干巴巴的四条列表。后来发现是我 skill 里的摘要字数约束写得不够死补上一句“焦点部分单条不得超过 80 字”之后内容就稳定下来了。验收日报是否合格我给自己定了三条标准第一是否包含至少 3 条我完全不知道的新信息第二是否能在 3 分钟内读完第三所有数字和版本号是否能追溯到原始链接。三天跑下来前两个标准都达标了第三个偶尔有偏差AI 还是会在摘要里加入自己的推测这是它的天然毛病后面我会专门讲如何约束。4. 跑起来之后的避坑实录从失败到稳定4.1 最常见问题速查表如果你也照这套方案搭了一个大概率会遇到下面这些情况。我先给一张速查表再挑几个详细展开。症状可能原因解决思路没有收到推送webhook 地址错误 / 群被解散 / 脚本没跑先手动执行脚本看返回值收到了但内容乱码文件编码问题 / 终端编码影响脚本内统一encodingutf-8日报内容太短skill 没有正确生效全局规则里加“必须输出至少 500 字”每天固定时间没触发电脑休眠 / cron 时区不对检查系统时区开启错过补跑连续几天内容重复信息源更新慢 / AI 偷懒强制要求标注日期删除过期源推送偶尔失败企业微信频控 / 网络波动增加退避重试但控制次数4.2 “规则不生效”的真正原因临时指令和全局规则的区分这个坑我印象最深必须单独拿出来说。刚开始我把所有约束都写在 prompt 里例如“请生成今天日报、要标注来源、要用简体中文、要按 1.2.3 格式”。当时 WorkBuddy 执行得非常好我还以为自己已经大功告成。结果第二天重新执行它完全放飞了标题变成营销号风格来源标注也丢了。排查到最后发现问题出在规则生效范围。prompt 里的约束是“一次性”的只会注入到当前任务上下文。只要换一个 session、换一个任务进程之前的约定就全部消失。真正想让“每条日报都执行同一套标准”必须把这些约束写进全局规则让它对所有任务默认生效。这也是我在 2.1 里反复强调配置管理的原因。对这类智能体平台来说规则不是写出来提醒自己的而是写进配置中心让每次执行都能读到的。4.3 路径、环境变量和定时器上下文不一致的坑第二个高频坑是“手动执行一切正常定时执行必挂”。我一开始在 Windows 上遇到这个问题任务计划程序里明明填了脚本路径但是每次执行都一闪而过日志里也没有任何输出。后来我把 Python 解释器路径、脚本路径、工作目录全部改成绝对路径并且把日志重定向到固定文件才看到真实报错脚本里用了一个相对路径的配置文件手动运行时的当前目录是项目目录定时运行时的当前目录却是C:\Windows\System32自然找不到配置。解决方式是在脚本开头用pathlib.Path(__file__).parent把项目根目录算出来再把所有路径拼在绝对根目录之上从此再也没犯过这个错。4.4 推送频率限制和超长内容的处理企业微信机器人的频控策略比较严格单个机器人每分钟最多发送 20 条消息。对于一天一份日报来说完全够用但如果你把多份报告、告警消息都堆到同一个群里就要小心了。我后来把周报也接进了同一个 webhook周五下午恰好和几条系统告警撞在一起结果有一条被限流丢掉。应对办法是给推送函数加一个简单的退避重试机制失败后等待 60 秒再试但最多只重试两次。为什么不能无限重试因为日报不是实时告警错过一条不会造成事故但无限重试反而可能触发连环限流把后面的消息全部堵死。至于超长内容企业微信会直接拒绝发送所以我的做法是截断到 4000 字符以内并把完整版留在本地文件里需要的时候再去翻归档。4.5 确保 AI 不胡编来源标注是我最后的底线做日报最怕的不是漏掉新闻而是 AI 把不存在的“新闻”一本正经地写出来。市场上有太多大模型为了凑字数编造版本号和发布会放到日报里就是事故。为了把这个风险压到最低我做了三件事在全局规则里强制每条内容附原始链接让 WorkBuddy 只从我在 skill 里指定的信息源抓取不给它自由发挥的空间每天人工花十几秒扫一遍标题看到可疑的内容直接点进来源核对。我知道这一步对自动化来说显得有点“倒退”但它非常必要。AI 自动化最大的价值是节省信息收集和整理的时间而不是替代最终的判断责任。5. 从日报到自动化面板这套机制还能扩展成什么5.1 把同一套 skill 升级成周报和月度复盘日报跑顺之后你会自然想把它扩展到更大的周期。我的做法是复制了一个ai_weekly_reportskill把 prompt 改成“整理本周重要 AI 动态”并且让它读取本地日报归档目录里最近七天的文件做一次聚合。这一步价值很大。周报不是日报的简单拼接它需要提炼趋势比如“这周模型推理成本下降是不是一个共性现象”或者“这周哪个开源项目 star 增长异常”。WorkBuddy 只需要把日报中的零散信息当作素材重新归纳一遍就能输出更高质量的分析。我的周报就设置在每周五下午三点推送忙了一周之后正好作为总结。5.2 接入多群推送、 特定人和关键字提醒企业微信机器人的 webhook 是按群生成的。如果你想让不同群接收不同内容只需要多申请几个 webhook然后按群分发脚本的结果即可。比如我的日报推给“个人助手”群周报推给团队项目群告警消息推给“值班”群每个群的 webhook 都是独立的互不影响。如果你的团队用企业微信办公还可以在机器人消息里带上 成员格式是userid。这样当日报里出现某个成员负责的模块时可以提醒他重点关注。不过这块我没有深入做因为我更倾向于把日报当作“不打扰”的参考材料一旦开始 人就失去了低干扰的优势。5.3 我对这类自动化的真实态度定期生成但保留人工确认环节跑了两个多月我的总体感受是这套系统帮我省下的不是“每天四十分钟”的时间而是每天决策“该看什么”的精力。以前面对几百条推送会焦虑现在固定时间、固定格式、固定触达渠道反而让阅读变得更专注。但我没有把系统设置为“完全无人值守”。每周我会抽出十分钟人工核对日报来源是否可靠、信息源有没有失效、模板有没有因为版本升级而变形。这个动作听起来不酷却是所有自动化系统长期稳定运行的真正保险。建议大家也从日报这种低风险、低权限的任务开始做自动化先磨合规则再逐步扩大范围。等 WorkBuddy 完全摸清了你的阅读习惯和信息标准说不定下一步它就能帮你直接整理工作周报了。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

门店SaaS资金安全设计:权限最小化、操作留痕与对账闭环 2026/10/1 14:37:13

门店SaaS资金安全设计:权限最小化、操作留痕与对账闭环

一、权限模块:最小化 数据模型 权限设计采用经典的 RBAC(Role-Based Access Control) 细粒度权限点: 岗位即角色:收银员、技师、部长、店长、老板五套标准模板,可复制可微调权限点下沉到按钮:开…

阅读更多 →
大型集团人才画像怎么在HR系统里落地?从五维度数据模型到标签引擎,提升人岗匹配效率 2026/10/1 14:37:13

大型集团人才画像怎么在HR系统里落地?从五维度数据模型到标签引擎,提升人岗匹配效率

面向 HRIS 实施与 HR 数智化团队:结论先说——人才画像不是一份 Word 模板,而是一套「数据集成 标签引擎 能力建模 匹配推荐」的可计算链路。本文给出从五维度数据模型到工程落地的完整拆解,读完可照着在自有系统跑通。 人才画像的本质&am…

阅读更多 →
干货!这 8 款 AI 编程工具,帮你少走弯路!TaoToken 统一 Key 接入实测 2026/10/1 14:37:13

干货!这 8 款 AI 编程工具,帮你少走弯路!TaoToken 统一 Key 接入实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
钉钉机器人对接 OpenClaw 2.7.9 本地部署实操(附安装包与 TaoToken 配置) 2026/10/1 14:37:13

钉钉机器人对接 OpenClaw 2.7.9 本地部署实操(附安装包与 TaoToken 配置)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
轻松入门SpringAI:用TaoToken统一Key接入Spring AI其他模型 2026/10/1 14:37:13

轻松入门SpringAI:用TaoToken统一Key接入Spring AI其他模型

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
VSCode+EIDE开发STM32:把编译烧录链路改到TaoToken统一通道 2026/10/1 14:37:06

VSCode+EIDE开发STM32:把编译烧录链路改到TaoToken统一通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉