Jak połączyć kanały RSS z agentami AI
Dlaczego RSS i agenci AI dobrze współpracują
Agenci AI odczytujący sieć często zaczynają od scrapowania stron. Oznacza to parsowanie HTML, renderowanie JavaScript, obsługę limitów żądań i CAPTCHA oraz poprawianie selektorów strony za każdym razem, gdy witryna zmienia swój układ.
SereneReader pobiera Twoje kanały RSS, parsuje je i przechowuje artykuły jako dane strukturalne. API zwraca te dane w formacie JSON, więc agent pracuje z tytułami, linkami, autorami, datami i streszczeniami zamiast ze stronami internetowymi.
Strukturalny JSON. Agent nie musi obsługiwać RSS ani XML. SereneReader już sparsował kanały, zdekodował encje HTML, naprawił podwójnie zakodowane treści i znormalizował problemy z kodowaniem, więc agent odpytuje API i otrzymuje z powrotem uporządkowany JSON.
Źródła, które wybierasz. To Ty decydujesz, jakie kanały subskrybujesz, więc agent widzi tylko wybrane przez Ciebie źródła.
Bez scrapowania. Agent wywołuje API SereneReader i nigdy nie kontaktuje się bezpośrednio z witrynami źródłowymi, więc zasady robots.txt i zabezpieczenia anty-botowe nie mają tu zastosowania.
Filtrowanie po dacie. Wyniki są zwracane od najnowszych, a można zapytać o artykuły opublikowane od określonego czasu. Kanały czasem publikują wpisy z opóźnieniem lub ze starszymi datami, więc jeśli agent nie może pominąć ani powtórzyć żadnego elementu, warto prowadzić rejestr identyfikatorów już przetworzonych artykułów.
Jak to działa z OpenClaw
Od października 2026 roku OpenClaw to asystent AI o otwartym kodzie źródłowym, który działa na Twoim komputerze i z którym rozmawiasz przez aplikacje takie jak WhatsApp, Telegram czy Discord. Rozszerzasz go o umiejętności, które mogą wywoływać zewnętrzne API. Aby połączyć go z SereneReader:
- Utwórz klucz API w SereneReader w sekcji Ustawienia > API (dostępne w planach Pro i Team).
- Dodaj umiejętność dla API SereneReader. Karta API w Ustawieniach zawiera listę punktów końcowych, parametrów i przykładowych żądań potrzebnych Twojej umiejętności.
- Wyznacz asystentowi zadanie. Na przykład: „Sprawdzaj moje kanały RSS każdego ranka, podsumuj wszystko związane z bezpieczeństwem infrastruktury i zapisz podsumowanie do mojego magazynu Obsidian."
Asystent zajmuje się harmonogramowaniem, filtrowaniem i tworzeniem streszczeń. SereneReader obsługuje pobieranie kanałów i przechowywanie artykułów.
Przykładowy prompt dla agenta
Oto mniej więcej jak mogą wyglądać instrukcje dla agenta:
Masz dostęp do API SereneReader. Każdego dnia o 8:00 pobieraj artykuły opublikowane w ciągu ostatnich 24 godzin. Dla każdego artykułu sprawdź, czy dotyczy cyberbezpieczeństwa, infrastruktury lub DevOps. Jeśli tak, dodaj go do dziennego podsumowania. Zapisz podsumowanie jako nową notatkę w moim magazynie Obsidian w folderze Daily Digests.
Agent wywołuje API, przetwarza wyniki i zapisuje notatkę. Jeśli platforma agenta może uruchamiać zadania zgodnie z harmonogramem, nie musisz pisać żadnego kodu. Jeśli nie może, poniższy skrypt wykonuje to samo zadanie za pomocą crona.
Przykładowe zastosowania
Agent monitorujący wiadomości
Zasubskrybuj 20–30 branżowych kanałów w SereneReader. Podłącz agenta, który skanuje wzmianki o Twojej firmie, konkurencji lub konkretnych tematach. Otrzymuj codzienne zestawienie zamiast samodzielnie sprawdzać każdy kanał.
Digest badawczy
Obserwuj kanały preprintów akademickich (arXiv, bioRxiv) i blogi techniczne. Niech agent kategoryzuje nowe prace według tematów, oznacza wszystko istotne dla Twoich bieżących projektów i zestawia tygodniową listę lektur.
Potok treści
Subskrybuj kanały ze swojej niszy. Pozwól agentowi identyfikować popularne tematy, wyodrębniać kluczowe punkty i tworzyć szkice briefów treściowych. Treść piszesz nadal Ty, ale agent wykonuje pierwszy etap researchu.
Wywiad konkurencyjny
Śledź blogi konkurentów, kanały changelogów i komunikaty prasowe. Agent może wykrywać premiery produktów, zmiany cen i ogłoszenia nowych funkcji, a następnie rejestrować je w ustrukturyzowanym formacie.
Współpraca z innymi narzędziami LLM
API SereneReader zwraca standardowy JSON przez HTTP, więc każde narzędzie obsługujące uwierzytelnione żądania API może z niego korzystać:
- OpenClaw – asystent wykonujący zadania za Ciebie
- LangChain / LlamaIndex – do generowania wspomaganego wyszukiwaniem
- Własne skrypty z dowolnym API LLM przez OpenRouter (zobacz przykład poniżej)
- Zapier / Make – do automatyzacji bez kodowania z krokami AI
- n8n – do automatyzacji przepływów pracy we własnej infrastrukturze
Schemat jest zazwyczaj taki sam: pobierz artykuły z SereneReader, przekaż je do LLM i wyślij wynik tam, gdzie jest potrzebny.
Przykład: skrypt dziennego digestu z OpenRouter
Skrypt Node.js, który pobiera artykuły z SereneReader z ostatnich 24 godzin, podsumowuje je za pomocą wybranego modelu przez OpenRouter i zapisuje wynik do lokalnego pliku. Ustaw SERENE_API_URL na pełny adres punktu końcowego artykułów (bazowy adres URL z karty API w Ustawieniach, a następnie /api/v1/articles), a OPENROUTER_MODEL na identyfikator modelu OpenRouter, którego chcesz użyć (na przykład model Claude z listy modeli OpenRouter). Uruchom go poleceniem node digest.mjs lub zaplanuj za pomocą crona.
W obecnej postaci skrypt odczytuje jedną stronę wyników, a API domyślnie zwraca 50 artykułów na stronę. Jeśli Twoje kanały publikują więcej niż tyle dziennie, dodaj parametr limit (maksymalnie 200) lub stronicuj wyniki za pomocą 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)`);Skrypt nie ma żadnych zależności ani kroku kompilacji. Możesz zmienić model, zmodyfikować prompt lub wysyłać wyniki do Obsidian, Notion lub Slack zamiast do pliku.
Pierwsze kroki
Dostęp do API jest wliczony w plany Pro (5 USD/miesiąc w wersji web) i Team.
- Zarejestruj się w SereneReader, jeśli jeszcze tego nie zrobiłeś.
- Zasubskrybuj kanały, które ma odczytywać Twój agent.
- Utwórz klucz API w sekcji Ustawienia > API.
- Skonfiguruj agenta, aby wywoływał API SereneReader.
Karta API w Ustawieniach zawiera pełną dokumentację punktów końcowych. Aby dowiedzieć się więcej o samym API, przeczytaj Budowanie automatyzacji z API SereneReader.