如何将你的 RSS 订阅源连接到 AI 智能体
为什么 RSS 与 AI 智能体的结合行之有效
大多数需要读取网页的 AI 智能体,通常从抓取页面开始。这意味着要应对 HTML 解析、JavaScript 渲染、速率限制、验证码,以及网站每次改版后随之变化的页面结构。
SereneReader 已经完成了这些繁琐的工作:它负责抓取 RSS 订阅源、解析 XML,并将所有内容以整洁、结构化的数据形式存储。API 会将这些数据以 JSON 格式提供给你的智能体,无需抓取,无需解析,也不依赖脆弱的页面选择器。
整洁的 JSON,而非原始订阅源。 你的智能体完全不接触 RSS 或 XML。SereneReader 已处理好所有订阅源内容——解码 HTML 实体、修复双重编码问题,并规范化各种使原始订阅数据变得混乱的编码问题。智能体只需查询 API,即可获得干净、结构化的 JSON 数据。
经过人工筛选的内容来源。 你自己选择订阅源,决定智能体能够访问哪些内容。这不是泛泛的网络爬取,而是你所掌控的、有针对性的信息流。
无需抓取,不会被封锁。 你的智能体与 SereneReader API 通信,而非直接访问源网站。不存在 robots.txt 问题,没有反爬虫机制,也不涉及法律灰色地带。
按时间排序,自动去重。 文章按顺序出现且不会重复。如果按发布日期筛选,智能体无需自行追踪已读内容。
与 OpenClaw 的配合方式
OpenClaw 是一个 AI 智能体平台,允许智能体将外部 API 作为工具调用。将其与 SereneReader 连接的步骤如下:
- 在 SereneReader 设置中生成 API 密钥。
- 在你的 OpenClaw 智能体配置中,将 SereneReader API 定义为一个工具。设置页面中的端点文档会告诉智能体具体调用什么。
- 为智能体分配任务。 例如:"每天早上检查我的 RSS 订阅源,汇总所有与基础设施安全相关的内容,并将摘要保存到我的 Obsidian 库中。"
智能体负责调度、筛选和摘要生成,SereneReader 负责订阅源抓取和文章存储。
智能体提示词示例
以下大致展示了智能体指令的内容:
你可以访问 SereneReader API。每天早上 8 点,获取过去 24 小时内发布的文章。对每篇文章判断其是否与网络安全、基础设施或 DevOps 相关。如果相关,将其加入当日摘要。将摘要作为新笔记保存到我 Obsidian 库中"Daily Digests"文件夹下。
智能体调用 API、处理结果并执行操作,无需自定义代码,无需 cron 任务,也不需要任何胶水脚本。
典型使用场景
新闻监控智能体
在 SereneReader 中订阅 20 至 30 个行业资讯源,接入一个智能体扫描其中涉及你的公司、竞争对手或特定话题的内容,每天收到一份简报,无需手动逐一查看订阅源。
研究摘要
关注学术预印本订阅源(arXiv、bioRxiv)和技术博客,让智能体按主题对新论文分类,标记与当前项目相关的内容,并整理成每周阅读清单。
内容生产流水线
订阅你所在领域的相关源,让智能体识别热门话题、提取要点并起草内容简报。你依然亲自撰写内容,但调研环节已自动完成。
竞争情报
追踪竞争对手的博客、更新日志订阅源和新闻稿。智能体可以发现产品发布、定价变动和功能公告,并将其以结构化格式记录下来。
兼容任何 LLM 工具
SereneReader API 通过 HTTP 返回标准 JSON,任何能够发起经过身份验证的 API 请求的工具都可以使用它:
- OpenClaw:用于自主智能体工作流
- LangChain / LlamaIndex:用于检索增强生成
- 自定义脚本:通过 OpenRouter 接入任意 LLM API(参见下方示例)
- Zapier / Make:用于包含 AI 步骤的无代码自动化
- n8n:用于自托管的工作流自动化
模式始终如一:从 SereneReader 获取文章,传递给 LLM 进行处理,再将输出路由到目标位置。
示例:使用 OpenRouter 的每日摘要脚本
这是一个 Node.js 脚本,用于从 SereneReader 获取昨天的文章,通过 OpenRouter 使用任意 LLM 进行摘要,并将结果写入本地文件。使用 node digest.mjs 运行,或通过 cron 设置定时执行。
// digest.mjs
// Requires: SERENE_API_KEY, SERENE_API_URL, and OPENROUTER_API_KEY env vars.
// Your API settings page in SereneReader has the base URL and endpoint paths.
const SERENE_API_KEY = process.env.SERENE_API_KEY;
const SERENE_API_URL = process.env.SERENE_API_URL; // from your API settings page
const OPENROUTER_API_KEY = process.env.OPENROUTER_API_KEY;
import { writeFileSync } from "node:fs";
// 1. Fetch yesterday's articles from SereneReader
const yesterday = new Date(Date.now() - 86400000).toISOString();
const res = await fetch(`${SERENE_API_URL}?since=${yesterday}`, {
headers: { Authorization: `Bearer ${SERENE_API_KEY}` },
});
if (!res.ok) {
console.error(`SereneReader API error: ${res.status}`);
process.exit(1);
}
const { articles } = await res.json();
if (articles.length === 0) {
console.log("No new articles since yesterday.");
process.exit(0);
}
// 2. Build a prompt from article titles and snippets
const articleList = articles
.map((a) => `- ${a.title} (${a.feedName})\n ${a.snippet}`)
.join("\n\n");
const prompt = [
`Here are ${articles.length} articles from my RSS feeds`,
`published in the last 24 hours:\n\n${articleList}\n\n`,
`Write a concise daily digest. Group related articles`,
`by topic. For each topic, summarize the key points in`,
`2-3 sentences. Include the article titles so I know`,
`which ones to read in full.`,
].join(" ");
// 3. Send to any model via OpenRouter
const llmRes = await fetch("https://openrouter.ai/api/v1/chat/completions", {
method: "POST",
headers: {
Authorization: `Bearer ${OPENROUTER_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "anthropic/claude-sonnet-4",
messages: [{ role: "user", content: prompt }],
}),
});
if (!llmRes.ok) {
console.error(`OpenRouter API error: ${llmRes.status}`);
process.exit(1);
}
const { choices } = await llmRes.json();
const summary = choices[0].message.content;
// 4. Write the digest to a local markdown file
const date = new Date().toISOString().split("T")[0];
const output = `# Daily Digest - ${date}\n\n${summary}\n`;
writeFileSync(`digest-${date}.md`, output);
console.log(`Digest written to digest-${date}.md (${articles.length} articles)`);无需依赖项,无需构建步骤。两个 API 密钥,一个文件,即可获得每日研究摘要。你可以替换模型、修改提示词,或将输出导向 Obsidian、Notion 或 Slack。
开始使用
API 访问权限包含在每月 5 美元的 Pro 套餐中——不像大多数竞品阅读器那样锁定在企业版或最高档套餐之后。
- 如果还没有账号,请先注册 SereneReader。
- 订阅你希望智能体访问的订阅源。
- 在设置中生成 API 密钥。
- 配置你的智能体以调用 SereneReader API。
完整的端点文档位于你的账号设置中。如需进一步了解 API 本身,请阅读使用 SereneReader API 构建自动化流程。