首页 / 资讯中心 / 文章详情

WorkBuddy+DeepSeek+微信机器人:打造每日自动AI日报推送系统

WorkBuddy+DeepSeek+微信机器人:打造每日自动AI日报推送系统 ★ FEATURED ARTICLE
1. 为什么我要给 WorkBuddy 设一个“十点半闹钟”每天早上到工位第一件事是打开各种后台看数据、翻群聊记录、扫一眼行业动态等把这些信息拼成一份能看的日报半小时已经没了。更麻烦的是这种重复劳动一旦形成习惯人就容易陷入“看起来很忙、实际没产出”的状态。我想要的其实很简单每天上午十点半一份整理好的 AI 日报自动出现在微信里我只需要花两分钟扫一眼就能知道昨天夜里到今天早上发生了什么值得关注的事。这个需求落到具体工具上就是WorkBuddy AI 模型 微信推送的组合。WorkBuddy 负责定时触发和任务编排AI 模型负责把零散信息压缩成可读的日报微信负责把结果送到我手边。整套流程不需要我写复杂的后端服务也不需要租服务器核心逻辑就是“定时器 数据源 模型调用 消息推送”这四件事。适合谁来参考如果你每天需要处理固定信息流比如运营日报、竞品监控、社群摘要、项目进度汇总又不想手动复制粘贴这套思路可以直接抄。哪怕你之前没接触过 WorkBuddy只要理解“定时任务”和“API 调用”这两个概念跟着步骤走也能跑通。下面我会把整个设计思路、关键参数、踩过的坑和排查方法全部拆开讲尽量让不同基础的人都能复现。2. 整体方案设计与核心思路拆解2.1 为什么选 WorkBuddy 做定时调度而不是自己写 cron很多人第一反应是写个 cron 脚本定时跑 Python 脚本再调微信接口。这个方案不是不行但有几个现实问题第一cron 跑在本地机器上电脑一关就断第二微信个人号推送接口不稳定维护成本高第三脚本里的错误处理、重试、日志都得自己写时间一长就成了“祖传代码”。WorkBuddy 这类工具的价值在于它把定时触发、任务编排、外部 API 调用、结果输出做成了可视化配置。你不需要关心底层调度器怎么实现只需要定义“什么时候跑、跑什么、结果发到哪里”。对于每天只跑一次、逻辑不复杂的场景这种轻量方案比自建服务更划算。我实际对比过三种方案方案开发成本稳定性维护难度适合场景本地 cron 脚本中低依赖本机高临时任务、调试云函数定时触发高高中有开发能力、需要弹性WorkBuddy 定时任务低中高低固定频率、轻量推送最终选 WorkBuddy核心原因是它把“十点半”这个时间点配置化不需要我写调度表达式也不需要考虑时区问题。对于非专业开发来说这是最省心的路径。2.2 日报内容从哪来数据源的选择逻辑日报要“有东西可写”前提是输入信息足够。我的数据源分三类固定信息源比如几个行业资讯页面的更新、公开数据接口的返回值。这类信息结构稳定适合用抓取或 API 获取。半结构化信息比如群聊记录、邮件摘要、文档更新。这类信息需要先做清洗再交给模型总结。模型生成内容比如让 AI 根据前两类信息生成趋势判断、风险提示、待办建议。这里有个关键取舍不要试图让 AI 从零“编”日报。AI 擅长压缩和重组不擅长无中生有。所以我的做法是先把原始信息收集好再让模型做摘要和归类。这样出来的日报既有事实依据又有可读性。2.3 微信推送的两种路径服务号模板消息 vs 群机器人微信推送是整套流程的“最后一公里”。常见做法有两种第一种是服务号模板消息。需要有一个认证服务号用户关注后可以收到模板消息。优点是到达率高、格式规范缺点是申请门槛高个人开发者不容易搞定。第二种是群机器人 Webhook。很多团队协作工具都支持机器人推送微信生态里也有类似机制。优点是配置简单几分钟就能跑通缺点是依赖具体平台换环境需要重新配置。我最终选的是群机器人方案因为我的日报主要是自己看不需要发给大量用户。配置流程后面会详细讲核心就是拿到一个 Webhook 地址往上面 POST 一段 JSON。2.4 模型选型为什么用 DeepSeek 做摘要模型这块我试过几个方向。通用大模型效果都不差但日报场景对成本、速度、稳定性更敏感。DeepSeek 的优势在于 API 调用便宜、响应快、中文摘要质量稳定。对于每天一次、每次几千 token 的任务成本几乎可以忽略。调用方式也很直接把收集到的原始文本拼成 prompt要求模型输出固定格式的日报比如“今日要点 / 趋势判断 / 待办事项”三段式。这里的关键是prompt 要约束输出结构否则模型每次返回的格式都不一样后续解析和推送都会出问题。3. 核心细节解析与实操要点3.1 定时触发的时间设置为什么是十点半十点半这个时间点不是随便定的。太早很多夜间数据还没更新完太晚上午的工作节奏已经被打乱。十点半刚好是“晨会结束、进入深度工作前”的窗口这时候收到日报可以快速调整当天优先级。在 WorkBuddy 里设置定时任务时需要注意几个参数执行频率每天一次工作日执行。周末如果也有信息更新可以单独开一个任务。时区确认工具使用的是本地时区避免出现“设了十点半、实际十一点才跑”的情况。超时时间建议设置 5 到 10 分钟。如果数据源响应慢超时后任务会失败需要重试机制。重试策略失败后重试 2 次间隔 3 分钟。避免因为某个数据源临时不可用导致整天没有日报。注意定时任务的时间设置一定要和实际业务时区对齐。我见过有人设了“每天 10:30”结果工具默认 UTC实际推送时间是下午六点半完全错过使用场景。3.2 数据收集环节的清洗规则原始信息往往很脏HTML 标签、重复内容、广告、无关评论。如果直接丢给模型摘要质量会大打折扣。我的清洗规则分三步去标签把 HTML 转成纯文本去掉 script、style、nav 等无关块。去重相似度超过 0.9 的段落只保留一条。可以用简单的文本相似度算法不需要上重型模型。截断单条信息超过 2000 字的部分截掉避免 prompt 过长导致模型截断或费用飙升。这里有个经验清洗规则要写成可配置的不要硬编码在脚本里。因为不同数据源的脏数据模式不一样今天去掉广告明天可能要去掉页脚。配置化之后改规则不用动主流程。3.3 Prompt 设计的三个约束Prompt 是决定日报质量的核心。我总结了三个必须约束的点角色约束明确告诉模型“你是一个日报编辑负责把原始信息压缩成三段式摘要”。格式约束要求输出 JSON 或固定 Markdown 结构方便后续解析。比如{highlights: [], trends: [], todos: []}。长度约束每段不超过 200 字总长度不超过 800 字。太长没人看太短没信息量。一个实际可用的 prompt 模板如下你是一个 AI 行业日报编辑。请根据以下原始信息生成一份中文日报。 要求 1. 分为三个部分今日要点、趋势判断、待办建议。 2. 今日要点不超过 5 条每条不超过 50 字。 3. 趋势判断不超过 3 条每条不超过 80 字。 4. 待办建议不超过 3 条每条不超过 50 字。 5. 只输出 Markdown不要额外解释。 原始信息 {{raw_content}}3.4 微信推送的消息格式与频率控制微信推送最怕两件事一是消息太长被折叠二是频率太高被忽略。我的做法是消息长度控制在 800 字以内超过就拆成两条或者只推摘要详细内容放链接。每天只推一次不搞“早报晚报”避免打扰。标题固定格式[AI日报] 2025-XX-XX 今日要点方便在聊天列表里快速识别。推送内容用 Markdown 格式微信对 Markdown 支持有限所以实际发送时转成纯文本加简单符号。比如用-表示列表用【】表示分段标题。4. 实操过程与核心环节实现4.1 第一步在 WorkBuddy 里创建定时任务打开 WorkBuddy 后新建一个任务类型选“定时触发”。配置项如下任务名称daily-ai-report触发时间每天 10:30执行动作调用工作流超时时间600 秒失败重试2 次间隔 180 秒保存后先手动触发一次确认任务能正常跑起来。这一步不要急着接微信先把数据收集和模型调用跑通。4.2 第二步配置数据源和清洗逻辑数据源我用的是 HTTP 请求节点配置几个固定的信息页面。每个请求设置 10 秒超时失败不阻塞主流程只记录日志。清洗逻辑用一个简单的脚本节点实现import re from difflib import SequenceMatcher def clean_text(raw): # 去 HTML 标签 text re.sub(r[^], , raw) # 去多余空白 text re.sub(r\s, , text).strip() # 截断 return text[:2000] def deduplicate(items): result [] for item in items: if not any(SequenceMatcher(None, item, r).ratio() 0.9 for r in result): result.append(item) return result这段代码不复杂但能解决 80% 的脏数据问题。实际跑的时候把每个数据源的返回结果先清洗、再去重最后拼成一个大的raw_content。4.3 第三步调用 DeepSeek API 生成日报DeepSeek 的 API 调用格式和主流大模型类似核心参数model:deepseek-chattemperature:0.3日报需要稳定不要太高max_tokens:1500messages: 包含 system prompt 和 user prompt调用示例import requests def generate_report(raw_content): prompt f你是一个 AI 行业日报编辑...省略约束... 原始信息 {raw_content} resp requests.post( https://api.deepseek.com/chat/completions, headers{Authorization: Bearer YOUR_API_KEY}, json{ model: deepseek-chat, temperature: 0.3, max_tokens: 1500, messages: [{role: user, content: prompt}] }, timeout60 ) return resp.json()[choices][0][message][content]这里有个细节API Key 不要硬编码在脚本里放在 WorkBuddy 的环境变量或密钥管理里。一旦泄露别人可以刷你的额度。4.4 第四步推送到微信微信推送我用的是群机器人 Webhook。配置流程在目标群里添加机器人拿到 Webhook 地址。构造 JSON 消息体把日报内容放进去。POST 到 Webhook 地址。消息体示例{ msgtype: markdown, markdown: { content: ## AI日报 2025-XX-XX\n\n### 今日要点\n- ...\n\n### 趋势判断\n- ...\n\n### 待办建议\n- ... } }发送时注意微信机器人对消息长度有限制超过 4096 字节会被截断。所以日报内容要控制在 800 字以内或者拆成多条发送。4.5 第五步串联全流程并测试把上面四步串起来形成完整工作流定时触发10:30并行请求多个数据源清洗、去重、拼接调用 DeepSeek 生成日报推送到微信机器人记录日志失败重试测试时先手动触发观察每一步的输出。重点检查数据源是否都能正常返回清洗后内容是否干净模型输出是否符合格式微信是否收到消息全部通过后开启定时任务第二天十点半验收。5. 常见问题与排查技巧实录5.1 定时任务没触发怎么排查最常见的原因是时区配置错误。先检查 WorkBuddy 的时区设置确认是Asia/Shanghai还是 UTC。如果是 UTC十点半要写成02:30。第二个原因是任务被禁用或额度用完。检查任务状态和账户余额。第三个原因是前一次任务还在运行新任务被跳过。这种情况需要设置“允许并发”或缩短超时时间。5.2 模型输出格式不稳定怎么办模型偶尔会返回多余的解释文字导致解析失败。解决办法有两个在 prompt 里加一句“只输出 Markdown不要任何额外说明”。在代码里做容错解析比如用正则提取##开头的部分忽略前面的废话。如果还是不稳定可以把temperature降到 0.1牺牲一点创造性换稳定性。5.3 微信推送失败或消息被截断推送失败先看 HTTP 状态码。如果是 400通常是 JSON 格式不对如果是 403可能是 Webhook 失效或机器人被移出群。消息被截断是因为长度超限。解决办法是压缩日报内容或者拆成两条发送。我一般会在推送前先计算字节数超过 3500 就自动拆分。5.4 数据源反爬导致内容为空有些页面会检测请求头返回空内容或验证码。解决办法设置合理的User-Agent模拟正常浏览器。控制请求频率不要每秒都请求。如果某个源长期不稳定直接换掉不要死磕。5.5 常见问题速查表问题现象可能原因解决方法任务没触发时区错误、任务禁用检查时区和任务状态模型输出乱prompt 约束不够加格式约束、降 temperature微信没收到Webhook 失效、长度超限检查 Webhook、拆分消息数据为空反爬、请求头不对换 User-Agent、降频率任务超时数据源太慢设超时、并行请求API 报错Key 失效、额度用完检查 Key 和余额5.6 几个我踩过的坑第一个坑不要把所有数据源串行请求。串行的话一个源慢整个任务就卡住。改成并行后总耗时从 3 分钟降到 40 秒。第二个坑模型输出不要直接拼进 JSON。模型可能返回引号、换行符导致 JSON 解析失败。正确做法是先转义或者用 Markdown 格式发送。第三个坑日志要记全。每次任务的输入、输出、耗时、错误信息都记下来。出问题的时候没有日志就只能靠猜。第四个坑不要频繁改 prompt。每次改完都要重新测试确认输出稳定后再上线。我见过有人一天改五次 prompt结果日报质量忽高忽低。6. 后续可以扩展的方向这套流程跑通之后扩展空间很大。比如把日报改成“实时告警”当某个数据源出现异常关键词时立即推送提醒。或者把单一日报改成“多角色日报”给不同同事推送不同侧重点的内容。另一个方向是增加反馈闭环。在微信里回复“有用”或“没用”把反馈记录下来用来调整 prompt 和数据源权重。时间一长日报会越来越贴合实际需求。我个人在实际操作中的体会是自动化工具的价值不在于“炫技”而在于把重复劳动压缩到零。十点半收到日报这件事看起来很小但每天省下半小时一年就是一百多个小时。这些时间拿来做真正需要思考的事才是这套流程最大的回报。
阅读完成 · 觉得有帮助?
咨询建站