← Back to blog

Как подключить 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:

  1. Сгенерируйте ключ API в настройках SereneReader.
  2. Определите API SereneReader как инструмент в конфигурации вашего агента OpenClaw. Документация по эндпоинтам на странице настроек покажет агенту, что именно вызывать.
  3. Поставьте агенту задачу. Например: «Проверяй мои 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 в месяц — он не скрыт за корпоративным уровнем или максимальным тарифом, как у большинства конкурирующих ридеров.

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

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