← Back to blog

Hoe je RSS-feeds verbindt met AI-agents

Waarom RSS gecombineerd met AI-agents werkt

De meeste AI-agents die het web moeten lezen, beginnen met het scrapen van pagina's. Dat betekent omgaan met HTML-parsing, JavaScript-rendering, rate limiting, CAPTCHA's en lay-outs die veranderen telkens als een site een redesign krijgt.

SereneReader doet het zware werk al: het haalt RSS-feeds op, parseert de XML en slaat alles op als schone, gestructureerde data. De API geeft je agent die data als JSON. Geen scraping, geen parsing, geen fragiele paginaselectors.

Schone JSON, geen ruwe feeds. Je agent raakt RSS of XML nooit aan. SereneReader heeft de feeds al verwerkt, HTML-entiteiten gedecodeerd, dubbel gecodeerde inhoud gecorrigeerd en alle coderingsquirks genormaliseerd die ruwe feeddata rommelig maken. De agent bevraagt simpelweg de API en krijgt schone, gestructureerde JSON terug.

Handmatig gecureerde bronnen. Jij kiest de feeds. Jij bepaalt waartoe de agent toegang heeft. Het is geen algemene webcrawl; het is een gerichte informatiestroom die jij beheert.

Geen scraping, geen blokkering. Je agent communiceert met de SereneReader API, niet met de bronwebsites. Geen problemen met robots.txt, geen anti-botmaatregelen, geen juridische grijze gebieden.

Chronologisch en ontdubbeld. Artikelen komen één keer binnen, op volgorde. De agent hoeft niet bij te houden wat hij al heeft gezien als je filtert op publicatiedatum.

Hoe het werkt met OpenClaw

OpenClaw is een AI-agentplatform waarmee agents externe API's als tools kunnen aanroepen. Om het te verbinden met SereneReader:

  1. Genereer een API-sleutel in je SereneReader-instellingen.
  2. Definieer de SereneReader API als een tool in de configuratie van je OpenClaw-agent. De endpointdocumentatie op je instellingenpagina laat de agent precies zien wat hij moet aanroepen.
  3. Geef de agent een taak. Bijvoorbeeld: "Controleer mijn RSS-feeds elke ochtend, vat alles samen wat betrekking heeft op infrastructuurbeveiliging, en sla een samenvatting op in mijn Obsidian-kluis."

De agent regelt planning, filtering en samenvatting. SereneReader regelt het ophalen van feeds en het opslaan van artikelen.

Voorbeeldprompt voor een agent

Dit is ongeveer hoe de instructies voor de agent eruit kunnen zien:

Je hebt toegang tot de SereneReader API. Haal elke dag om 8 uur artikelen op die in de afgelopen 24 uur zijn gepubliceerd. Bepaal voor elk artikel of het betrekking heeft op cyberbeveiliging, infrastructuur of DevOps. Als dat zo is, voeg het dan toe aan een dagelijkse samenvatting. Sla de samenvatting op als een nieuwe notitie in mijn Obsidian-kluis, in de map Daily Digests.

De agent roept de API aan, verwerkt de resultaten en onderneemt actie. Geen aangepaste code, geen cron-jobs, geen lijmscripts.

Voorbeeldtoepassingen

Nieuwsmonitoringagent

Abonneer je op 20 tot 30 branchefeeds in SereneReader. Verbind een agent die scant op vermeldingen van je bedrijf, concurrenten of specifieke onderwerpen. Ontvang een dagelijkse briefing in plaats van elke feed handmatig te controleren.

Onderzoeksdigest

Volg feeds met academische preprints (arXiv, bioRxiv) en technische blogs. Laat een agent nieuwe artikelen per onderwerp categoriseren, alles markeren wat relevant is voor je huidige projecten, en een wekelijkse leeslijst samenstellen.

Contentpipeline

Abonneer je op feeds in jouw niche. Laat een agent trending onderwerpen identificeren, kernpunten extraheren en contentbriefs opstellen. Jij schrijft de inhoud zelf nog steeds, maar de onderzoeksstap wordt afgehandeld.

Competitieve intelligence

Volg blogs van concurrenten, changelog-feeds en persberichten. Een agent kan productlanceringen, prijswijzigingen en aankondigingen van nieuwe functies opsporen en deze in een gestructureerd formaat vastleggen.

Werkt met elke LLM-tool

De SereneReader API geeft standaard JSON terug via HTTP. Elke tool die geverifieerde API-verzoeken kan doen, kan er gebruik van maken:

  • OpenClaw voor autonome agentworkflows
  • LangChain / LlamaIndex voor retrieval-augmented generation
  • Aangepaste scripts met elke LLM API via OpenRouter (zie onderstaand voorbeeld)
  • Zapier / Make voor no-codeautomatisering met AI-stappen
  • n8n voor zelf gehoste workflowautomatisering

Het patroon is altijd hetzelfde: haal artikelen op uit SereneReader, geef ze door aan een LLM voor verwerking, en stuur de uitvoer naar waar die naartoe moet.

Voorbeeld: dagelijks digestscript met OpenRouter

Een Node.js-script dat de artikelen van gisteren ophaalt uit SereneReader, ze samenvat met een willekeurige LLM via OpenRouter, en het resultaat naar een lokaal bestand schrijft. Voer het uit met node digest.mjs of plan het in met 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)`);

Geen afhankelijkheden, geen buildstap. Twee API-sleutels, één bestand, en je hebt een dagelijkse onderzoeksdigest. Wissel het model, pas de prompt aan, of stuur de uitvoer naar Obsidian, Notion of Slack in plaats daarvan.

Aan de slag

API-toegang is inbegrepen in het Pro-abonnement voor $5 per maand — niet weggestopt achter een enterprise-laag of een topplan zoals bij de meeste concurrerende readers.

  1. Maak een SereneReader-account aan als je dat nog niet hebt gedaan.
  2. Abonneer je op de feeds waartoe je agent toegang moet krijgen.
  3. Genereer een API-sleutel in de instellingen.
  4. Configureer je agent om de SereneReader API aan te roepen.

Volledige endpointdocumentatie staat in je accountinstellingen. Lees voor meer informatie over de API zelf Automatiseringen bouwen met de SereneReader API.