
1. 从手动刷信息到十点半自动投递这个闹钟到底解决了什么每天早上打开微信几十个群聊里翻找行业动态公众号列表里挨个点开看有没有值得读的文章再切到几个资讯站点扫一遍标题——这套动作我重复了大概两年直到某天早上我突然意识到光是找信息这件事每天就要吃掉我将近四十分钟。更麻烦的是这些信息看完就散了没有沉淀第二天又得从头来一遍。后来我给自己搭了一套自动化流程每天上午十点半一份由 AI 整理好的日报自动推送到微信上。我管它叫给 WorkBuddy 设了个闹钟。这里的 WorkBuddy 不是某个特定产品而是我对帮我干活的 AI 助手的一个统称——它可以是任何具备定时触发、内容抓取、AI 摘要和消息推送能力的工具组合。核心思路很简单把定时和智能这两件事拼在一起让机器在固定时间点自动完成信息采集、筛选、摘要、排版、推送这一整条链路。这套东西适合谁如果你每天需要跟踪某个垂直领域的信息又不想被信息流牵着鼻子走如果你已经在用 DeepSeek 这类大模型做内容处理但还停留在手动复制粘贴的阶段如果你对自动化有兴趣但没写过复杂的代码——那这套方案的门槛刚好合适。它不需要你懂运维不需要你买服务器甚至不需要你写超过五十行的核心逻辑。我先把整体链路说清楚后面再逐段拆。整条流水线大致是这样的定时触发器 → 信息源采集 → 内容清洗去重 → AI 摘要与分类 → 格式化排版 → 微信推送。六个环节每个环节都有坑也都有偷懒的办法。下面我会按我实际搭建的顺序把每一步的选择理由、踩过的坑和最终跑通的配置都摊开讲。提示这套流程的核心不是技术多牛而是稳定跑下去。我见过太多人第一版搭得很漂亮跑三天就挂了原因往往是某个环节没有做异常处理。后面我会专门讲容错设计。2. 定时触发这一环为什么我最终选了轻量定时而不是重型调度2.1 定时方案的三种选择与取舍逻辑说到每天上午十点半自动执行大部分人第一反应是 crontab。没错crontab 确实是最直接的方案一行30 10 * * *就搞定了。但问题是crontab 要求你有一台一直开着的机器。如果你用的是自己的笔记本电脑合盖休眠之后任务就不会触发如果你用云服务器那又是一笔额外开销和运维负担。我实际对比过三种方案方案优点缺点适合场景本地 crontab零成本、配置简单机器必须常开、休眠即失效有常开台式机或 NAS云函数定时触发无需运维、按量计费冷启动延迟、调试不便追求省心、任务轻量工作流平台定时节点可视化、生态集成好免费额度有限、复杂逻辑受限快速验证、非技术背景我最后选的是工作流平台的定时节点作为触发器。原因很实际我不需要为了一个日报任务去维护一台服务器而且工作流平台天然把触发和后续动作串在一起省掉了我自己写调度逻辑的功夫。十点半这个时间点也不是随便定的——太早我还没进入工作状态太晚上午的节奏已经被打乱十点半刚好是我喝完第一杯咖啡、准备规划当天工作的时间窗口。2.2 时区与触发漂移两个容易被忽略的细节第一个坑是时区。很多云服务的默认时区是 UTC你设了10:30结果推送时间是北京时间下午六点半。我第一次跑通的时候就是这个问题排查了半天以为是推送环节出了 bug最后发现是触发器时区没改。解决办法很简单在定时配置里显式指定Asia/Shanghai或者用 UTC 时间减八小时来设置。第二个坑是触发漂移。如果你用的是云函数类的定时触发实际执行时间可能比你设定的晚几秒到几十秒这是正常的调度抖动。但如果你的任务依赖当天的数据比如抓取当天新闻就要注意如果触发时间设在整点附近而数据源刚好在整点更新可能出现抓到的是前一天数据的情况。我的做法是把触发时间设在十点半这种非整点、非数据更新高峰的时间避开竞争。注意定时任务一定要加执行日志。哪怕只是往一个表格里写一行任务已触发时间戳 XXX也比什么都没有强。我有一周任务静默失败就是因为没有日志直到我发现三天没收到日报才察觉。2.3 失败重试与幂等设计定时任务最怕的不是失败而是失败之后你不知道它失败了或者重试之后重复推送。我的处理方式是在触发环节加一个简单的状态标记。每次任务开始执行时先检查今天是否已经成功推送过如果已经推送过就直接跳过。这个检查可以用一个简单的键值存储来实现也可以用表格里的一行记录来判断。重试策略我设的是失败后间隔十分钟重试最多重试两次。为什么是两次因为如果连续三次都失败大概率不是偶发问题而是某个依赖服务挂了或者配置错了这时候再重试也是浪费不如直接发一条告警消息给我让我人工介入。3. 信息源采集抓什么、怎么抓、抓多少3.1 信息源的分类与优先级日报的质量七成取决于你喂给 AI 的原料质量。我一开始犯的错是什么都抓结果 AI 摘要出来一堆无关内容日报变成了信息垃圾场。后来我把信息源分成三类核心源与我工作直接相关的两三个垂直站点或公众号每天必抓优先级最高。扩展源行业相关的综合资讯作为补充抓取后由 AI 判断是否值得纳入。灵感源一些偏观点、偏趋势的内容不一定每天都有价值但偶尔能提供新视角。每类源的抓取量我做了限制核心源每源最多取 10 条扩展源每源最多取 5 条灵感源每源最多取 3 条。为什么要限量因为 AI 的上下文窗口是有限的你塞进去一百条内容它摘要出来的质量反而会下降——它会开始平均化把重要的和不重要的混在一起说。少而精永远比多而杂好。3.2 抓取方式的选择RSS、API 还是页面解析抓取方式直接决定了后续维护成本。我按稳定性从高到低排了个序官方 API最稳定但很多内容平台不提供。RSS如果站点支持这是最省心的方式格式统一解析简单。页面解析最灵活但也最脆弱站点改版就失效。我实际的做法是混合使用能走 RSS 的走 RSS有 API 的优先 API剩下的一小部分用页面解析兜底。这里有个经验页面解析一定要做结构校验。什么意思就是每次抓取后检查一下解析出来的条目数量是否在合理范围内。如果平时能抓到 10 条今天只抓到 1 条那大概率是页面结构变了这时候应该触发告警而不是默默推送一份残缺的日报。# 页面解析后的结构校验示例伪代码思路 items parse_page(html) if len(items) EXPECTED_MIN: alert(解析结果异常可能页面结构已变更) # 降级使用上一次的缓存数据或跳过该源 else: proceed(items)3.3 去重别让同一篇文章出现三次去重这件事说简单也简单说麻烦也麻烦。最简单的去重是按 URL 去重但问题是同一篇文章可能在不同平台有不同的 URL。我的做法是标题归一化 内容指纹双重去重先把标题去掉标点和空格转成小写比较标题相似度如果标题不够区分再对正文前 200 字做一个简单的哈希指纹。这样能过滤掉绝大部分重复内容。提示去重一定要在 AI 摘要之前做。我一开始顺序搞反了先摘要再去重结果 AI 把同一篇文章摘要了三遍浪费了 token 不说日报里还出现了三条几乎一样的内容。4. AI 摘要与分类怎么让 DeepSeek 输出能看的日报4.1 提示词设计的核心给结构不给自由用 DeepSeek 做摘要最大的误区是让它自由发挥。你给它一堆文章说帮我总结一下它大概率会给你一段泛泛而谈的文字。正确的做法是在提示词里把输出结构定死。我的提示词大致是这样的你是一个行业日报编辑。请根据以下文章列表生成一份日报。 要求 1. 按重要动态值得关注一句话速览三个板块分类。 2. 每个板块最多 5 条每条不超过 80 字。 3. 每条格式为[标题] - [一句话摘要] - [来源] 4. 如果某篇文章信息量不足直接舍弃不要凑数。 5. 不要添加任何你自己的评论或展望。这个提示词的关键在于约束输出格式和数量。你会发现当你告诉 AI最多 5 条不超过 80 字的时候它反而会帮你做筛选——它会优先保留它认为最重要的内容。这比你自己写筛选规则要聪明得多。4.2 分类逻辑让 AI 做判断但给它判断标准重要动态和值得关注的边界在哪里如果你不定义清楚AI 每次的分类标准都会漂移。我的做法是在提示词里给几个例子重要动态涉及重大发布、版本更新、行业政策变化。值得关注技术方案分享、经验总结、趋势分析。一句话速览其他有价值但不需要展开的内容。给了例子之后分类的稳定性明显提升。这里有个小技巧把分类标准写进系统提示词而不是用户提示词。系统提示词在每个请求里都会生效相当于给 AI 设定了一个固定的人设比每次在用户消息里重复要可靠。4.3 Token 控制与成本估算用 DeepSeek 这类 API 是要花钱的虽然单价不高但日积月累也得算账。我实测下来一份包含 30 篇文章的日报输入大概在 8000 到 12000 token输出在 800 到 1500 token。按目前的定价一天的成本大概在几分钱到一毛钱之间一个月下来也就几块钱。这个成本完全可以接受。但如果你抓取的文章特别长token 消耗会飙升。我的处理方式是在送入 AI 之前先做一次截断每篇文章只取前 500 字。为什么是 500 字因为大部分文章的核心信息都在开头后面的内容往往是展开论述对摘要来说边际价值不高。截断之后token 消耗能降低一半以上而摘要质量几乎不受影响。注意截断的时候要保留标题和来源这两个信息对 AI 判断重要性很关键。我试过只给正文不给标题结果 AI 把一篇标题很明确的某产品发布文章归类到了其他就是因为正文里没有明确说这是什么。5. 排版与微信推送让日报看起来像人做的5.1 排版原则克制比花哨重要AI 输出的原始内容通常是纯文本直接推到微信上会显得很乱。我做的排版处理包括加粗板块标题、用分隔线区分板块、每条内容之间空一行、来源用灰色小字标注。但这里有个度——不要过度排版。我见过有人把日报做成了花里胡哨的卡片每条内容配图标配颜色结果阅读体验反而下降因为视觉噪音太多。我的排版原则是让读者三秒内找到重点十秒内扫完一份。所以板块标题加粗就够了不需要额外的装饰。每条内容保持标题 摘要 来源的三段式简洁清晰。5.2 微信推送的几种路径推送到微信我试过几种方式企业微信机器人最稳定配置简单支持 Markdown 格式。如果你有企业微信这是首选。公众号模板消息需要认证公众号配置稍复杂但推送体验好。个人微信没有官方 API第三方方案稳定性参差不齐不太推荐作为主力方案。我最终用的是企业微信机器人。配置过程大概五分钟在企业微信群里添加一个机器人拿到 Webhook 地址然后往这个地址 POST 一条消息就行。它支持 Markdown所以我的排版处理可以直接用 Markdown 语法。# 企业微信机器人推送示例curl 方式 curl https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key你的KEY \ -H Content-Type: application/json \ -d { msgtype: markdown, markdown: { content: ## 今日AI日报\n 生成时间2025-01-01 10:30\n\n**重要动态**\n- 内容1\n- 内容2 } }5.3 消息长度限制与分片策略微信机器人的消息有长度限制Markdown 类型大概是 4096 字节。如果你的日报内容比较长可能会被截断。我的处理方式是在推送前检查长度超长就分片。分片的时候注意不要把一条内容拆到两个消息里要在条目的边界处切分。另外一个小细节推送时间要避开微信的消息高峰。我试过在整点推送有时候会延迟几十秒才收到。十点半这个时间点相对空闲推送到达速度明显更快。6. 跑通之后才发现的那些坑6.1 编码问题中文乱码的三种成因中文内容处理最容易遇到编码问题。我遇到过的乱码有三种情况一是抓取时没有指定编码导致 UTF-8 被当成 GBK 解析二是 AI 返回的内容里混入了特殊字符推送时被转义三是 Markdown 渲染时某些符号被错误处理。解决办法分别是抓取时显式指定encodingutf-8推送前对内容做一次清洗过滤以及避免在 Markdown 里使用容易被转义的符号。6.2 静默失败最危险的失败方式前面提过静默失败是最危险的。任务看起来在跑但实际没有产出或者产出了但没推送成功。我的应对策略是加一个心跳检测每天推送成功后往一个记录表里写一行成功如果连续两天没有成功记录就触发一个独立的告警任务通知我。这个告警任务和主任务是分开的避免主任务挂了告警也挂了。6.3 内容质量波动AI 不是每天都靠谱即使是同一个提示词AI 每天的输出质量也会有波动。有时候它摘要得特别好有时候就明显在糊弄。我的经验是不要追求每天都完美但要设一个质量底线。比如我要求每条摘要必须包含具体信息产品名、版本号、具体动作如果 AI 输出的摘要里全是某公司发布了新产品这种模糊表述我就会在第二天调整提示词加一个必须包含具体名称的约束。提示可以准备两套提示词一套详细版用于信息量大的日子一套精简版用于信息量少的日子。根据抓取到的文章数量自动切换效果比一套提示词打天下要好。7. 关于 WorkBuddy 这类工具的使用心得7.1 把它当实习生而不是专家我用 WorkBuddy 这类 AI 助手的最大体会是它的定位应该是执行力强的实习生而不是能替你做决策的专家。你给它明确的指令、清晰的格式、具体的例子它就能干得很好你指望它自己判断什么重要什么不重要它就会给你一堆模棱两可的结果。所以提示词里的每一条约束本质上都是在带实习生——告诉它边界在哪里、标准是什么。7.2 从能用到好用的关键迭代第一版跑通只花了大概两个小时但从能用到好用我迭代了差不多两周。主要的迭代方向是调整信息源配比、优化提示词约束、增加异常处理、改进排版格式。每一次迭代都是因为实际使用中发现了问题——比如某天日报里全是某一家公司的新闻我就去调整了信息源的权重比如某天推送失败了我却不知道我就加了心跳检测。这个过程没有捷径就是跑起来、用起来、发现问题、改掉。我建议你不要追求第一版就完美先让它跑起来哪怕每天只推三条内容也比不推强。跑起来之后你自然会发现哪里需要改。7.3 关于自动化的一个反直觉认知最后分享一个反直觉的认知自动化的价值不在于省时间而在于建立节奏。我搭这套日报系统省下来的时间其实有限——每天可能就省了二三十分钟。但它给我带来的真正价值是每天十点半我一定会看到一份整理好的行业信息这让我对行业的感知变得连续、有节奏。以前是想起来才看现在是每天固定摄入。这种节奏感比省下来的那点时间值钱得多。如果你也在考虑搭一套类似的系统我的建议是先想清楚你要的节奏是什么然后再去设计技术方案。技术只是手段节奏才是目的。十点半这个时间点就是我为自己的信息摄入设定的节奏锚点。你的锚点可能是早上八点也可能是晚上九点关键是找到一个你能长期坚持的时间然后让机器去执行。