← Back to blog

Как подключить RSS-ленты к ИИ-агентам

Почему RSS и ИИ-агенты хорошо работают вместе

ИИ-агенты, читающие веб, нередко начинают с парсинга страниц. Это означает разбор HTML, выполнение JavaScript, обработку ограничений частоты запросов и CAPTCHA, а также исправление селекторов при каждом изменении разметки сайта.

SereneReader загружает ваши RSS-ленты, разбирает их и сохраняет статьи как структурированные данные. API возвращает эти данные в формате JSON, поэтому ваш агент работает с заголовками, ссылками, авторами, датами и краткими описаниями — а не с веб-страницами.

Структурированный JSON. Агенту не нужно разбирать RSS или XML. SereneReader уже обработал ленты, декодировал HTML-сущности, исправил двойное кодирование и нормализовал особенности кодировок — агент просто запрашивает API и получает готовый JSON.

Источники на ваш выбор. Вы сами выбираете ленты, поэтому агент видит только те источники, которые вы указали.

Никакого скрапинга. Агент обращается к API SereneReader и никогда не контактирует с исходными сайтами, поэтому правила robots.txt и защита от ботов не имеют значения.

Фильтрация по дате. Результаты возвращаются от новых к старым, и можно запросить статьи, опубликованные позже указанного момента. Ленты иногда публикуют материалы с задержкой или с устаревшими датами, поэтому если агент не должен пропускать или повторять статьи, лучше хранить список уже обработанных идентификаторов.

Как это работает с OpenClaw

По состоянию на октябрь 2026 года, OpenClaw — это ИИ-ассистент с открытым исходным кодом, который работает на вашем компьютере и с которым можно общаться через мессенджеры: WhatsApp, Telegram или Discord. Его возможности расширяются с помощью навыков, которые могут обращаться к внешним API. Чтобы подключить его к SereneReader:

  1. Создайте ключ API в SereneReader в разделе Настройки > API (доступно на тарифах Pro и Team).
  2. Добавьте навык для API SereneReader. Вкладка API в Настройках содержит список эндпоинтов, параметров и примеры запросов, необходимые для навыка.
  3. Дайте ассистенту задачу. Например: «Каждое утро проверяй мои RSS-ленты, делай краткие описания всего, что связано с безопасностью инфраструктуры, и сохраняй сводку в мой Obsidian vault.»

Ассистент берёт на себя планирование, фильтрацию и составление кратких описаний. SereneReader — загрузку лент и хранение статей.

Пример инструкции для агента

Примерно так могут выглядеть инструкции для агента:

У тебя есть доступ к API SereneReader. Каждый день в 8:00 загружай статьи, опубликованные за последние 24 часа. Для каждой статьи определи, относится ли она к кибербезопасности, инфраструктуре или DevOps. Если да — добавь её в ежедневную сводку. Сохрани сводку как новую заметку в моём Obsidian vault в папке Daily Digests.

Агент вызывает API, обрабатывает результаты и сохраняет заметку. Если ваша платформа для агентов поддерживает выполнение задач по расписанию, писать код для этого не нужно. Если нет — скрипт, приведённый ниже, делает то же самое с помощью cron.

Примеры сценариев использования

Агент для мониторинга новостей

Подпишитесь в SereneReader на 20–30 отраслевых лент. Подключите агента, который будет отслеживать упоминания вашей компании, конкурентов или отдельных тем. Получайте ежедневную сводку вместо того, чтобы самостоятельно проверять каждую ленту.

Исследовательский дайджест

Следите за лентами препринтов (arXiv, bioRxiv) и техническими блогами. Пусть агент категоризирует новые работы по темам, выделяет всё релевантное вашим текущим проектам и составляет еженедельный список для чтения.

Контентный конвейер

Подпишитесь на ленты в вашей нише. Позвольте агенту выявлять актуальные темы, выделять ключевые мысли и составлять брифы для контента. Вы по-прежнему пишете сами, но агент берёт на себя первичный анализ.

Конкурентная разведка

Отслеживайте блоги конкурентов, ленты журналов изменений и пресс-релизы. Агент может замечать запуски продуктов, изменения цен и анонсы функций, а затем фиксировать их в структурированном формате.

Совместимость с другими LLM-инструментами

API SereneReader возвращает стандартный JSON через HTTP, поэтому любой инструмент, умеющий делать аутентифицированные API-запросы, может его использовать:

  • OpenClaw — для ассистента, который выполняет задачи за вас
  • LangChain / LlamaIndex — для retrieval-augmented generation
  • Собственные скрипты с любым LLM API через OpenRouter (см. пример ниже)
  • Zapier / Make — для автоматизации без кода с шагами на базе ИИ
  • n8n — для self-hosted автоматизации рабочих процессов

Схема обычно одна и та же: загрузить статьи из SereneReader, передать их в LLM и отправить результат туда, куда нужно.

Пример: скрипт ежедневного дайджеста с OpenRouter

Скрипт на Node.js, который загружает статьи за последние 24 часа из SereneReader, обрабатывает их с помощью выбранной вами модели через OpenRouter и записывает результат в локальный файл. Задайте в SERENE_API_URL полный адрес эндпоинта статей (базовый URL со вкладки API в Настройках, к которому добавляется /api/v1/articles), а в OPENROUTER_MODEL — идентификатор нужной вам модели на OpenRouter (например, модель Claude из списка моделей OpenRouter). Запустите командой node digest.mjs или настройте выполнение по расписанию через cron.

В текущем виде скрипт читает одну страницу результатов, а API по умолчанию возвращает 50 статей на страницу. Если ваши ленты публикуют больше за день, добавьте параметр limit (до 200) или постранично просматривайте результаты с помощью offset.

// 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: process.env.OPENROUTER_MODEL, // set to the model ID you want from openrouter.ai/models
    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)`);

У скрипта нет зависимостей и шага сборки. Вы можете сменить модель, изменить промпт или отправлять результат в Obsidian, Notion или Slack вместо файла.

Начало работы

Доступ к API включён в тарифы Pro ($5/месяц на сайте) и Team.

  1. Зарегистрируйтесь в SereneReader, если ещё не сделали этого.
  2. Подпишитесь на ленты, которые должен читать ваш агент.
  3. Создайте ключ API в разделе Настройки > API.
  4. Настройте агента для вызова API SereneReader.

На вкладке API в Настройках находится полная справка по эндпоинтам. Подробнее об API читайте в статье Создание автоматизаций с помощью API SereneReader.