{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}

Rss Feeds

读取 RSS、Atom、JSON 订阅源;发现页面背后的订阅源。

Skill 元数据

来源可选 — 通过 hermes skills install official/research/rss-feeds 安装
路径optional-skills/research/rss-feeds
版本1.0.0
作者Teknium (teknium1), Hermes Agent
许可证MIT
平台linux, macos, windows
标签RSS, Atom, Feeds, Monitoring, Research, Blogs, Releases
相关 skillreddit-reading, competitor-news-monitor, grounded-citations, youtube-content, blogwatcher

参考:完整 SKILL.md

INFO

以下是 Hermes 在触发此 skill 时加载的完整 skill 定义。这是 skill 激活时 agent 所看到的指令内容。

RSS 订阅源 Skill

将任意 RSS 2.0、RSS 1.0/RDF、Atom 或 JSON Feed 读取为按日期排序的整洁条目列表,并能从普通页面 URL 背后发现其订阅源(<link rel="alternate"> 或常见的 /feed、/rss.xml、/atom.xml 路径)。仅使用标准库,无需安装任何依赖。它不会抓取文章正文——如需正文,请把条目的链接传给 web_extract。

何时使用

  • “<博客/网站> 有什么新内容”、“<GitHub 仓库> 的最新发布”、“<subreddit> 最近的帖子”、“读取这个订阅源”、“这个网站有没有 RSS 订阅源”。
  • 用 cronjob_manage 构建周期性摘要(订阅源比每次都去抓取 HTML 首页更省、更稳定)。如需跨多个订阅源持久化的已读/未读数据库,请安装可选的 blogwatcher skill;本 skill 是零安装的读取方式。
  • 任何需要结构化 标题 / 链接 / 日期 / 作者 / 摘要 列表、而不是渲染后页面的场景:播客、更新日志、YouTube 频道、新闻编辑室、论坛板块。

前置要求

无。Python 3.10+,并能访问订阅源所在主机。

如何运行

通过 terminal 使用 skill 相对脚本路径运行:

python3 scripts/feed.py read https://hnrss.org/frontpage --limit 10
python3 scripts/feed.py read https://simonwillison.net/            # 页面 URL → 自动发现订阅源
python3 scripts/feed.py read URL --since 2026-09-01 --json          # 仅更新的条目,机器可读
python3 scripts/feed.py discover https://example.com/               # 列出候选订阅源 URL

快速参考

来源订阅源 URL 模式
GitHub releases / commits / tagshttps://github.com/OWNER/REPO/releases.atom, …/commits/BRANCH.atom, …/tags.atom
Subreddit / Reddit 搜索https://www.reddit.com/r/NAME/.rss, https://www.reddit.com/search.rss?q=…(匿名约 1 次请求/分钟;参见 reddit-reading)
YouTube 频道https://www.youtube.com/feeds/videos.xml?channel_id=UC…
Hacker Newshttps://hnrss.org/frontpage, https://hnrss.org/newest?q=TERM
arXiv 分类https://rss.arxiv.org/rss/cs.CL
Substack / Medium / WordPress / GhostSITE/feed, medium.com/feed/@user, SITE/rss/
播客节目托管页提供的 RSS URL(discover 可自动找到)

每个条目的输出字段:title、link、published(UTC ISO 8601)、author、summary(已去除 HTML,≤ 2000 字符)。条目按最新在前排序。

操作流程

① 如果你只有一个网站 URL,直接对它运行 read;脚本会自动发现订阅源并报告它实际使用了哪个 URL(discovered_from)。当你想在多个已声明的订阅源之间做选择时(评论源 vs 帖子源、各分类源),使用 discover。

② 限定请求范围:--limit 用于“最新 N 条”,--since YYYY-MM-DD 用于“自上次检查以来”。对于 cron 摘要,请持久化上次见到的 published 值,并在下次运行时作为 --since 传入。

③ 如需全文,把条目 link 交给 web_extract;订阅源摘要常常被截断或只有首段。

④ 当结果要汇入报告(grounded-citations)时,引用条目 link,而不是订阅源 URL。

常见陷阱

  • 返回 200 但内容是 HTML,说明该 URL 是一个页面而非订阅源;脚本会自动转入发现流程,但如果站点既没有 <link rel="alternate">、也没有任何常见路径,就会报告 no feed found——在断定没有订阅源之前,先检查站点页脚或 /sitemap.xml。
  • Reddit 订阅源共享 Reddit 的匿名限流(每个 IP 约每分钟一次请求)。当你需要多次调用 Reddit 时,请通过 reddit-reading 串联,它会等待限流窗口结束。
  • 日期:RSS pubDate 为 RFC 822 格式,Atom 使用 ISO 8601;脚本会把两者都归一化为 UTC。省略日期的订阅源会排到最后,并被 --since 过滤掉。
  • 部分订阅源前面有 Cloudflare,会对非浏览器客户端返回 403;blocked-page-recovery 负责处理这类情况。

验证

python3 scripts/feed.py read https://github.com/NousResearch/hermes-agent/releases.atom --limit 1 会打印一条带 releases/tag/ 链接和 [atom] 格式标记的条目;discover https://simonwillison.net/ 会打印一个 /atom/ URL。