想让 Agent 帮你盯几个博客,而不是每天逐个打开网页?Blogwatcher 可以把 RSS/Atom 新条目记入本机未读列表。这里的 steipete/blogwatcher 是 OpenClaw Skill,负责告诉 Agent 如何调用命令;真正获取订阅源和保存阅读状态的是 Hyaxia 的 blogwatcher Go CLI。先完成一次“订阅 → 扫描 → 查看链接 → 标记已读”,再考虑定时任务。
先检查,再安装
需要一个可执行终端命令的 OpenClaw Agent、可访问的 RSS/Atom 源,以及 Go。底层项目当前 go.mod 要求 Go 1.24;旧版 Go 在编译时可能需要先升级。OpenClaw 仓库也随附同名 Skill,因此先在 OpenClaw 环境里检查它是否已经存在:
openclaw skills check
openclaw skills info blogwatcher
如果 info 已显示 blogwatcher,就不必为同名能力再装一份 ClawHub Skill;如果显示缺少 blogwatcher 可执行文件,仍要单独装 CLI。只有 Skill 不在清单中时,才安装本文对应的 ClawHub v1.0.0:
openclaw skills install @steipete/blogwatcher --version 1.0.0
随后在运行 OpenClaw 的机器上安装底层 CLI,并确认命令可用:
go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest
blogwatcher --help
openclaw skills check
若安装完成却提示 blogwatcher: command not found,先检查 Go 的可执行文件目录是否在 OpenClaw 运行环境的 PATH 中,再重试 blogwatcher --help。@latest 取得的是 CLI 当前版本,和上面的 ClawHub Skill v1.0.0 不是同一个版本号;若后续 CLI 改了参数,以本机 blogwatcher <命令> --help 为准。
第一次订阅:用一个明确的 Atom 地址
下面以 Simon Willison 的公开 Atom 源为练习。把这四行输入运行 CLI 的终端;如果让 Agent 代做,可将紧随其后的任务描述发给 OpenClaw。显式给出 feed 地址,可以避开博客首页自动发现失败这一类问题。
blogwatcher add "Simon Willison" https://simonwillison.net --feed-url https://simonwillison.net/atom/everything/
blogwatcher blogs
blogwatcher scan "Simon Willison"
blogwatcher articles --blog "Simon Willison"
blogs 应列出刚添加的博客;scan 会报告找到和新入库的条目数;articles --blog 列出这个博客的未读标题、ID 和原文链接。打开感兴趣的链接阅读后,用列表中的真实 ID 执行 blogwatcher read 12(将 12 换成你的文章 ID)。再次运行 blogwatcher articles --blog "Simon Willison",该条应不再出现在未读列表;想核对已读和未读的全部记录,改用 blogwatcher articles --all --blog "Simon Willison"。
你也可以在 OpenClaw 对话里这样提出第一次任务,具体结果应以它实际返回的列表为准:
请用 blogwatcher 订阅 Simon Willison 的 Atom 源 https://simonwillison.net/atom/everything/。先确认博客已加入,再扫描,给我最多 5 条未读文章的标题和原文链接。不要替我标记已读;如果列表为空,先核对订阅和扫描状态。
首次扫描的 “New” 只表示本地数据库此前没有这条记录,不表示文章今天发布。先看文章日期和原文,再决定哪些值得跟进。CLI 默认把订阅与阅读状态存在本机 ~/.blogwatcher/blogwatcher.db;它不是跨设备同步服务,也不会替你读取付费全文。
把一次扫描变成日常巡检
先只加两三个高价值订阅源。每次运行 blogwatcher scan 后看 blogwatcher articles,挑选标题和链接去原站阅读,读完再按 ID 标记已读。按来源筛选时用 --blog "名称",避免不同主题的条目混在一起。不要把 read-all 当成去重:它会改变整批文章在本地的阅读状态;真正的重复 URL 防护由 CLI 的入库逻辑处理。
公开的 openclaw-newsroom 示例把 blogwatcher 作为 RSS 入口,再用另外编写的脚本过滤关键词、去重和做编辑挑选。若你要做晨报,可借鉴这个边界:先用 blogwatcher 取得候选链接,再由你自己的筛选流程决定保留什么。这个 Skill 自身不负责热度排序、全文总结、推送通知或定时扫描;这些需要额外的 Agent 任务或脚本。
遇到问题时
- Skill 在清单中,但 Agent 说不能用。 运行
openclaw skills check,看是缺少blogwatcher二进制、Agent 没有终端工具,还是 Skill 未对当前 Agent 可见。安装文字说明不会自动提供 Go CLI。 - 扫描没有文章。 用
blogwatcher blogs核对网址,再对指定博客运行blogwatcher scan "名称"。若首页没有可发现的 feed,像上例那样用真实--feed-url重加;HTML 回退需要你提供匹配文章链接的--scrape-selector,而且仍受站点访问限制。 articles空白,之前却见过文章。 默认列表只显示未读;用blogwatcher articles --all判断是已读状态还是根本没有入库。- 想清空错误订阅。
blogwatcher remove "名称"也会删除该博客的本地文章记录;先确认名字,不要把它当作只停止扫描的无损操作。