Как подключить RSS-ленты к ИИ-агентам
Почему RSS и ИИ-агенты хорошо сочетаются
Большинство ИИ-агентов, которым нужно читать веб-страницы, начинают с их парсинга. Это означает работу с разбором HTML, рендерингом JavaScript, ограничениями частоты запросов, CAPTCHA и разметкой, которая меняется каждый раз при редизайне сайта.
SereneReader уже выполняет всю сложную работу: получает RSS-ленты, разбирает XML и хранит всё в виде чистых структурированных данных. API передаёт эти данные вашему агенту в формате JSON. Никакого парсинга, никакой хрупкой логики выбора элементов страниц.
Чистый JSON, а не сырые ленты. Ваш агент никогда не работает напрямую с RSS или XML. SereneReader уже обработал ленты, декодировал HTML-сущности, исправил двойное кодирование и нормализовал все особенности кодировок, которые делают сырые данные лент неудобными для работы. Агент просто обращается к API и получает в ответ чистый структурированный JSON.
Источники, отобранные вручную. Вы сами выбираете ленты. Вы сами решаете, к чему у агента будет доступ. Это не общий обход веба, а сфокусированный информационный поток под вашим контролем.
Никакого парсинга, никаких блокировок. Ваш агент работает с API SereneReader, а не с исходными сайтами. Никаких проблем с robots.txt, никакой защиты от ботов, никаких правовых серых зон.
Хронологический порядок и дедупликация. Статьи поступают один раз, в нужном порядке. Агенту не нужно отслеживать уже просмотренные материалы, если вы фильтруете по дате публикации.
Как это работает с OpenClaw
OpenClaw — это платформа ИИ-агентов, позволяющая агентам вызывать внешние API как инструменты. Чтобы подключить её к SereneReader:
- Сгенерируйте ключ API в настройках SereneReader.
- Определите API SereneReader как инструмент в конфигурации вашего агента OpenClaw. Документация по эндпоинтам на странице настроек покажет агенту, что именно вызывать.
- Поставьте агенту задачу. Например: «Проверяй мои RSS-ленты каждое утро, делай выжимку всего, что связано с безопасностью инфраструктуры, и сохраняй её в моём хранилище Obsidian».
Агент берёт на себя планирование, фильтрацию и формирование выжимок. SereneReader отвечает за получение лент и хранение статей.
Пример инструкции для агента
Вот примерно так могут выглядеть инструкции для агента:
У вас есть доступ к API SereneReader. Каждый день в 8:00 получайте статьи, опубликованные за последние 24 часа. Для каждой статьи определяйте, относится ли она к кибербезопасности, инфраструктуре или DevOps. Если да — добавляйте её в ежедневную выжимку. Сохраняйте выжимку как новую заметку в моём хранилище Obsidian в папке Daily Digests.
Агент обращается к API, обрабатывает результаты и выполняет действия. Никакого собственного кода, никаких cron-заданий, никаких связующих скриптов.
Примеры использования
Агент мониторинга новостей
Подпишитесь на 20–30 отраслевых лент в SereneReader. Подключите агента, который будет отслеживать упоминания вашей компании, конкурентов или конкретных тем. Получайте ежедневную сводку вместо того, чтобы вручную проверять каждую ленту.
Исследовательский дайджест
Следите за лентами препринтов (arXiv, bioRxiv) и техническими блогами. Пусть агент распределяет новые работы по темам, отмечает всё, что имеет отношение к вашим текущим проектам, и составляет еженедельный список для чтения.
Контентный конвейер
Подпишитесь на ленты в своей нише. Позвольте агенту выявлять популярные темы, выделять ключевые мысли и составлять брифы для контента. Вы по-прежнему пишете сами, но этап исследования берёт на себя агент.
Конкурентная разведка
Следите за блогами конкурентов, лентами журналов изменений и пресс-релизами. Агент может замечать запуски продуктов, изменения цен и анонсы функций, а затем записывать их в структурированном формате.
Работает с любым LLM-инструментом
API SereneReader возвращает стандартный JSON по HTTP. Любой инструмент, способный выполнять аутентифицированные API-запросы, может его использовать:
- OpenClaw для автономных рабочих процессов с агентами
- LangChain / LlamaIndex для генерации с поиском по контексту
- Собственные скрипты с любым LLM API через OpenRouter (см. пример ниже)
- Zapier / Make для автоматизации без кода с шагами на основе ИИ
- n8n для самостоятельно развёрнутой автоматизации рабочих процессов
Схема всегда одна и та же: получить статьи из SereneReader, передать их в LLM для обработки, направить результат туда, куда нужно.
Пример: скрипт ежедневного дайджеста с OpenRouter
Скрипт на Node.js, который получает вчерашние статьи из SereneReader, формирует их выжимку с помощью любого LLM через OpenRouter и записывает результат в локальный файл. Запустите его командой 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 включён в тариф Pro за $5 в месяц — он не скрыт за корпоративным уровнем или максимальным тарифом, как у большинства конкурирующих ридеров.
- Зарегистрируйтесь в SereneReader, если вы ещё не сделали этого.
- Подпишитесь на ленты, к которым должен иметь доступ ваш агент.
- Сгенерируйте ключ API в настройках.
- Настройте агент для обращения к API SereneReader.
Полная документация по эндпоинтам находится в настройках вашего аккаунта. Подробнее о самом API читайте в статье Создание автоматизаций с помощью API SereneReader.