这事儿得从我的实际痛点说起。我平时的工作流里有个习惯,每天早上一睁眼就要扫一遍市面上新出的 AI 产品、新开源的模型、新的 Agent 框架,用来判断哪些值得跟进、哪些是纯炒作。但坚持了半个月我就受不了了——光搜索、浏览、整理链接、写摘要,平均每天要耗掉一个多小时,而且第二天早上拿到的东西又过时了。后来我实在忍不了,决定把这摊子交给 Hermes 去干。Hermes 是我自己搭的一套 AI 助手系统,具备联网搜索、内容整理和主动推送的能力。简单说,我给 Hermes 安排了一个每天自动执行的任务:从搜索 AI 产品到推送结果,全程不用我手动点一下。这篇文章就把整个方案的思路、实现细节、踩过的坑完整写出来,想搭类似自动化信息流的同学可以直接照搬。
1. 这个任务到底要怎么拆:从“搜索 AI 产品”到“推送结果”
1.1 先搞清楚 Hermes 在整个链路里扮演什么角色
很多人在搭自动化任务时容易犯一个错,就是想把所有事情塞给同一个系统干。搜索、筛选、总结、推送看着是一句话,实际上是完全不同性质的工作。搜索需要联网检索能力和关键词策略,筛选需要判断标准和排序逻辑,总结需要语言生成质量,推送需要对接消息渠道。Hermes 的优势在于它本身就是个能调用工具的 Agent,它不仅能理解我下达的任务意图,还能在执行中自行决定先搜索、再整理、最后调 API 推送。
我给 Hermes 设定的角色是一个“AI 产品情报助手”,不是普通的搜索机器人。它要做的不是把搜索结果原样罗列出来,而是输出一份有观点、有筛选、有推荐理由的简报。这个角色的定义非常关键,因为它决定了 Hermes 在执行任务时的所有行为偏好。我见过很多人把自己搭的自动任务写成了“搜索关键词然后粘贴结果”,那其实只是用自动化代替了手指,没有真正用上 Agent 的理解能力。
1.2 任务拆成四段:采集、过滤、整理、触达
我最初把任务写成一整段自然语言,Hermes 也能执行,但效果不稳定。经过几轮调整后,我把它明确拆成了四个阶段:
- 采集阶段:按我预设的关键词清单,去搜索最新发布的 AI 工具、模型、框架、论文。
- 过滤阶段:把重复的、纯营销稿的、跟 AI 产品无关的结果丢掉。
- 整理阶段:对剩下的每条结果写一句话简介,并给出推荐理由和适用场景。
- 触达阶段:按固定模板生成推送内容,推送到我的即时通讯工具里。
这样拆的好处是出了问题能立刻定位。比如某天推送消息全是乱码,那大概率是整理阶段生成的文本结构出了问题;某天一天都没收到推送,那就要去查采集阶段是不是搜索接口返回了空结果。如果当初只是写一句“每天帮我搜一下 AI 产品然后推给我”,排查起来就非常痛苦,因为整个链路混成一团。
1.3 为什么我最终选定早上八点半作为推送时间
推送时间的选择看起来是个小细节,实际上直接影响这个任务能不能被坚持用下去。我一开始设的是早上 7 点整,想着一睁眼就能看。结果发现 7 点太早,很多时候我还在睡,推送被折叠到通知栏里,等我真正打开已经是十点以后,信息的新鲜感没了。后来换成了 8 点半,正好是我通勤路上刷手机的时间,推送会直接出现在对话列表顶部,我顺手就看完了。所以不要小看这个时间配置,它本质上决定了信息到达率和任务的实际利用率。如果你是晚上才有整块时间看资讯的人,完全可以改成 21 点整推送,没有标准答案,适合自己节奏才行。
2. 落地实现的核心环节:关键词策略、去重逻辑和推送模板
2.1 关键词不能只靠“AI 产品”这一个词
“搜索 AI 产品”这个标题听起来很简单,真正跑起来你就会发现,如果只搜 “AI product” 或 “AI 工具”,回来的结果全是泛泛的媒体盘点文。我需要的是垂直的、新发布的、有明确功能定位的产品。所以关键词必须拆分成长尾组合,并且要定期维护。我目前给 Hermes 配置的是一组多维度关键词,按类型分成几个簇:
- 按产品类型:AI Agent、AI 编程工具、AI 视频生成、AI 语音助手、AI 图像生成。
- 按发布动态:new AI tool、open source LLM、AI product launch。
- 按社区热点:GitHub Trending AI、Hacker News AI、Product Hunt AI。
每个簇下面再配两三个具体词,Hermes 执行搜索时会轮询这几个簇,而不是一次性把所有词都搜完。这样做的原因是,不同的 AI 产品类别更新频率差异很大,模型类可能一周才有新动态,而 Agent 框架几乎天天有新仓库冒出来。如果不分层,搜索结果里会出现大量同类内容挤在一起的情况,信息密度很低。
2.2 去重不能只看标题,要看链接和内容指纹
第一次跑通整条链路之后,我遇到的最典型问题是重复内容。同一款产品可能昨天被 Product Hunt 收录、今天被某个公众号写了一遍、后天在 GitHub 上被 Trending 推荐,标题写法完全不同,但实际指向同一个东西。如果只看标题去重,根本拦不住。
我后来让 Hermes 在过滤阶段检查两个维度。第一是原始链接去重,同一 URL 出现两次直接忽略。第二是内容指纹,我会让 Hermes 把每个结果的标题和简介压缩成一句语义摘要,然后跟当天已经收录的条目比较,如果语义相似度超过八成就视为重复。这里有个细节值得说一下:语义比较不是靠字符串匹配,而是让 Hermes 自己判断,因为 AI 产品领域同一个东西经常有英文名、中文名、缩写等多种叫法,硬匹配不现实。
做完这两层去重,我实测每天大约能滤掉四成左右的重复结果,剩下的才是真正值得看的。如果你搭的任务每天推送的都像是不同网站互相转载的同一篇文章,那基本就是去重没做好。
2.3 推送模板决定了你的阅读效率
推送内容的排版我迭代过三四版,最终沉淀出一个固定格式。每条推送包含四个部分:产品名称、一句话定位、推荐理由、来源链接。整体推送开头会加一段两句话的今日综述,告诉我有几个值得重点关注的动态。Hermes 在整理阶段就按这个模板组织语言,推送阶段只做格式转换,不再重新生成内容。
这里我想强调一个很多人会忽略的点:自动任务生成的推送必须方便扫读。如果推送内容是一大段没有结构的文字,我根本没耐心看完。所以我在提示词里明确要求:每条结果描述不超过 40 个字,理由不超过 30 个字,宁可直接说“适合用来做客服机器人的底模”这种话,也不要写一堆“该产品具有较高的创新性和广泛的应用前景”之类的废话。经过强制约束之后,整个推送的可读性提升非常明显。
3. 完整实操:从配置 Hermes 到获得第一条推送
3.1 第一步:定义 Hermes 的固定身份和工作目标
我给 Hermes 写了一段基础设定,让它在执行任务前固定好自己的角色。这段设定不需要每次都重复,但会被调度任务引用。核心文本大概是这样的:
你是我的 AI 产品情报助手。你的任务是每天定时搜索并筛选最新、最值得关注的 AI 产品和开源项目。你输出的每一段内容都必须有信息增量,少说空话。
这段设定的关键作用不是让 Hermes 记住自己是什么,而是让它在一个“长期重复执行”的任务里保持输出风格稳定。没有这个固定身份,我第一天收到的推送可能是犀利点评风格,第二天就变成了官方通稿风格,稳定性很差。自动任务最怕的不是效果平庸,而是效果忽好忽坏。
3.2 第二步:配置每日调度和执行参数
调度这块我采用的是“触发词 + 定时器”的组合。定时器负责每天 8 点把任务唤醒,触发词用来指定任务全流程。实际配置类似这样:
schedule: time: "08:30" timezone: "Asia/Shanghai" task: "ai_product_daily_search" target: "im_push"这个配置的含义非常直白:每天 8 点半,执行一次名为 ai_product_daily_search 的任务,结果推送到 IM 渠道。这里有个容易踩的坑是时区问题,如果你的调度服务跑了多个时区的服务器,一定要在配置里显式写明 timezone,否则很可能出现你以为八点半推送、实际凌晨就跑完的情况。
3.3 第三步:写一套带约束的搜索指令
给 Hermes 的搜索指令必须包含三块内容:搜索范围、数量目标、输出格式。我之前犯过的一个错误是只告诉它“去搜”,没有告诉它“搜多少”,结果它有时候给我回几十条,有时候只回一条,完全随缘。后来我明确规定:
- 每个关键词簇最多取前五条结果,全任务汇总不超过二十条。
- 过滤后至少要保留五条,如果低于五条,需要放宽关键词范围再搜一轮。
- 每条结果必须包含四个字段:名称、定位、理由、链接。
这个数量约束很重要。自动任务如果连最基本的输出量都保证不了,后面所有的质量优化都是空谈。我实测下来,把目标定在“十五到二十条”是一个比较舒服的区间,既能覆盖主流动态,又不会让我浏览时产生疲劳感。
3.4 第四步:测试推送链路能不能通
正式跑任务之前,我强烈建议先做一次全链路测试。我当时做的测试很简单,让 Hermes 立刻执行一次同样的任务,然后把结果推送到我预留的测试会话里。这一步能帮你一次性排查好几个问题:搜索工具是否连通、内容整理是否跑通、推送 API 是否报错、模板渲染是否正常。
我记得第一次测试时就翻车了,推送过来的内容里面链接全是空的。排查之后发现是整理阶段的输出格式里链接字段被写成了占位符,而不是真实搜索结果里的地址。如果我没有先测试而是直接等第二天推送,那我收到一条没有链接的任务结果,还得从头排查整个链路,浪费的时间就太多了。自动任务是拿来省时间的,不是拿来增加排查负担的。
4. 实际跑起来之后,我遇到过的几个典型问题
4.1 搜索质量漂移:方向越跑越偏
Hermes 运行几天后,我发现一个问题:搜索结果开始偏向一些我根本不关心的细分领域。比如我明明只是搜 AI 编程工具,它却经常会带回来一堆低代码平台的软文。后来我意识到,这不是 Hermes 智商不够,而是我给它初始化的关键词里“AI 工具”这种词太宽泛,导致拉取回来的候选集里混了大量营销内容。
解决办法是给每个关键词簇都加一条排除规则。比如在搜索指令里写明:排除关键词包含“免费试用”“限时优惠”“低价套餐”的营销页面;排除明显的 SEO 聚合站内容。这样做之后,结果清单的含金量回归了正常水平。自动任务里的搜索质量是会被候选集质量影响的,只靠 Agent 判断能拦一部分,但源头过滤永远是最省力的方式。
4.2 重复内容比例突然升高
还有一个让我印象很深的问题:有段时间推送列表里连续好几天都出现同一款产品。按理说,如果做了链接去重,同一个产品怎么会反复出现?排查之后才发现,这个产品的官网域名一直在调整,有时候被收录的是 landing page、有时候是文档站、有时候是 GitHub 仓库,链接各不相同,但都是同一款产品。我的链接去重根本拦不住,语义指纹判断因为不同页面提取出来的简介差异大,也没能识别成同一实体。
最后我加了一层补充规则:如果产品名称相同或高度相似,直接视为重复,不管链接是什么。这个规则非常粗暴,但解决实际问题。尤其是 AI 产品那种上线初期频繁改域名的阶段,这层兜底非常实用。
4.3 推送时间偶尔延迟甚至丢失
调度任务跑久了以后,我遇到过一次连续两天没收到推送的情况。查了下日志,发现第一天是搜索接口超时导致任务中断,第二天是推送渠道的鉴权 token 过期,任务执行到最后一步报了认证失败。这两种问题都不是 Hermes 本身坏了,而是依赖的外部服务和凭据状态发生了变化。
我是这样解决的:第一,在任务流程里增加失败重试机制,搜索阶段失败会隔五分钟继续重试,最多三次;第二,给推送接口做前置鉴权检查,token 快过期时自动刷新。如果你要搭类似的自动化任务,这一步千万别省,不然任何一个外部服务的波动都会让你的整个任务链看起来像“时好时坏”。
4.4 信息审美疲劳:推送变多不等于价值变多
跑了大概两周后,我开始觉得推送内容有点鸡肋。每天确实推了十五条左右,但真正让我觉得眼前一亮的不超过三条。原因也很直接:大部分新发布的 AI 产品实际上是对现有产品的小幅改进,我需要的不是每一条都看,而是那些“真正打破了某种惯性”的产品。
我调整的方式是在提示词里增加了一个“推荐权重”字段。Hermes 整理结果时,不仅要写理由,还要给每条结果打一个一星到五星的推荐分,五分代表“今天最值得关注”。推送时按推荐分从高到低排序,我只需要先看前几条就够了。这个小小的改动,让任务的实用价值提升了一个层次。
5. 一步步照做:适用于你自己的 Hermes 每日任务清单
5.1 任务配置自检表
- 是否给 Hermes 设定了明确的角色身份?
- 是否拆分了搜索关键词簇并配置了排除规则?
- 是否同时做了链接去重和语义去重?
- 是否限制了输出条数和字段格式?
- 是否设置了推送渠道的失败重试和鉴权检查?
- 是否验证过时区设定和推送时间?
这几条看着简单,但它们就是我整个方案能稳定跑起来的最小闭环。我建议新搭这类任务的人,不要一上来就追求各种花哨功能,先把这六件事做扎实,再考虑多余的扩展。
5.2 根据你的关注领域调整关键词权重
我的关键词配置以 AI 产品为主,但 Hermes 这套逻辑完全可以套用到别的领域。比如你关注的是前端开源库,关键词簇可以换成一类的框架发布动态;你关注的是行业资讯,可以换成某个赛道的新闻源。搜索策略不变,变的只是候选集。真正从这套方案中受益的人,一定不是照着我的关键词抄,而是理解“搜索范围决定信息上限”这个思路后,自己配置一套贴合自身需求的词表。
5.3 推送渠道选择的一些个人建议
我目前用的推送渠道是 IM 工具,因为它的通知能最快触达我。但我也试过用邮箱接收,效果差很多,邮件一天到晚积压几十封,自动任务的结果混在里面并不醒目。如果你是团队协作场景,也可以考虑把推送发到团队公共频道,让相关同事都能看到。选择渠道唯一的标准就是:你打开这个软件的频率,是否高于你希望看到资讯的频率。如果不是,再自动化也没用。
6. 关于 Hermes 这套流程,我最后想分享的一点体会
给 Hermes 配完这个每日任务之后,最大的变化不是我每天少看了几十分钟手机,而是我对 AI 产品动态的敏感度反而提高了。以前靠手动刷信息流,看到的永远是平台推荐给你的,而 Hermes 搜索回来的结果是基于我明确设定的关键词,信息密度更高,干扰更少。虽然偶尔还会有一些漏网之鱼,但整体上这套流程已经成了我每天早上的固定仪式。
最后再补充一个细节:任务并不是配置完就一劳永逸的。我基本每两周会去调整一次关键词列表和推排序规则,因为 AI 产品更新的速度太快,上周的重点领域可能这周就降温了。把这个维护动作写进日程里,比一开始追求完美配置重要得多。在我看来,能持续运行的自动任务,往往不是设计出来的,而是迭代出来的。