How this system turns news into judgment
RSS Agent is not a generic news site. It is an LLM-driven editorial pipeline that starts from a Folo-led source stack plus multi-category RSS feeds, then moves through gate-keeping, scoring, and interpretation before it becomes a daily issue, weekly digest, podcast script, or platform summary.
The value of the project is not that it shows you more information. The value is that it compresses noise into judgment, organizes fragmented signals into continuous observation, and leaves behind an archive you can revisit, compare, and act on.
This is not a frontend shell that simply renders whatever it grabs. The system first de-duplicates, applies editorial judgment, scores signal quality, and structures the output. What you see on the homepage is the editorial result; what you open in a detail page is the generated Markdown artifact itself.
The goal is not to imitate a newsroom. The goal is to replace the repetitive manual work of sorting news by fixing a stable path from noisy inputs to a research-grade daily issue.
Every input source is explicitly configured in configs/feeds.json. The pipeline does not discover random sources at runtime. It continuously tracks a known source stack so the archive stays auditable.
Folo List
The old Follow AI 列表 alias still exists in configuration for backward compatibility, but the product-facing explanation now treats the source consistently as the Folo list. It is the single most important discovery entry point in the entire system.
This is not a single RSS feed. It is a curated, continuously maintained list inside Folo that prioritizes high-value signals across AI, developer tools, macro, investment, and cross-domain trend changes.
- It sits at the front of the discovery chain and plays the role of find first, verify next.
- The list can mix media outlets, blogs, community feeds, hot lists, and research sources in one place, which gives it broader coverage than any single RSS feed.
- When a single source updates too slowly or sees too little, the Folo list usually surfaces the move earlier and pushes it into the main intake pool faster.
- Independent RSS feeds and coverage-repair logic still run afterward, so the system does not turn one hot list directly into editorial truth.
The weight is not a score for one article. It tells the fetch layer that the Folo list is the highest-priority discovery entrance. If a high-value movement appears there, it should enter the main intake pool earlier than ordinary single-feed updates and then pass through the later de-duplication, filtering, and scoring stages.
High-priority and higher-trust inputs that are suitable for direct entry into the main pool.
Used to broaden coverage and import external signals so the issue is not dominated by one source type.
Primarily for trend watching and hot-list monitoring, not guaranteed entry into the main daily pool.
AI
High-priority signals around model capability, product form factors, research progress, and industry direction.
Technology
External shifts from major platforms, infrastructure, consumer tech, and large-company strategy.
Software Engineering
Developer tools, open source, frameworks, and changes in engineering productivity.
Business
Company strategy, earnings, market structure, and industry-chain changes worth tracking.
Policy
Regulation, geopolitics, export controls, and structural policy variables.
Social
Trending topics and public discussion used as a watch layer, not as the main editorial driver.
The first goal is not to fetch more. It is to remove duplicates, thin signals, and non-judgmental noise before filling the coverage gaps that still matter.
Fetch the main intake pool
The pipeline pulls raw items from the last 24 hours according to source priority and per-feed caps, including RSS feeds, the Folo list, and watch-layer sources.
Pre-filter and event compression
Similar headlines and repeat coverage are compressed into event candidates first, so duplicate reporting does not distort later scoring.
Coverage repair
If a category looks thin on a given day, the pipeline fetches targeted backup coverage so the report is not captured by a single track.
Editorial agenda plus gate-keep
The system decides the daily editorial agenda first, then produces PASS, DROP, or MERGE decisions to keep only the items that deserve real space in the issue.
After gate-keeping, the system does not simply sort by heat. It scores each candidate across six dimensions and then combines that result with category strategy.
Whether the item actually changes your view of where an industry, market, or platform is moving.
Whether it is likely to matter over the next few days or weeks, instead of being only today's noise.
How directly it connects to the core tracking surface: AI, products, engineering, and investment.
Whether it helps the next action: follow-up tracking, hypothesis building, or judgment revision.
The quality, completeness, and verifiability of the source material behind the item.
Its urgency within the last 24 hours and whether it deserves space in the current daily issue.
Extract the most valuable information from the last 24 hours and prioritize the signals that best help judge what may matter next.
Themes that must stay under watch
- Changes in AI model capability and product form factors
- Risk appetite and capital-flow direction in financial markets
- Key policy and regulatory shifts
- Structural moves in platforms, infrastructure, and chips
- Developer tooling and engineering productivity leaps
Selection principles
- Allow major policy, macro, financial, or geopolitical events to outrank AI on the days when they clearly matter more.
- Prefer signals that help judge the next few days or weeks instead of items that are only locally hot.
- Do not chase exhaustive article-by-article coverage; use the opening and closing sections to hold the trend judgment together.
- Avoid traffic-heavy stories that generate attention but add little decision value.
Once high-scoring items are confirmed, the system can finally turn them from raw news into a readable daily structure.
1. Fetch and pre-compress
The day starts with configured feeds only, then similar stories are compressed so the candidate pool reflects events rather than headline volume.
- `fetchPrimary` collects raw entries from the last 24 hours.
- `preFilter` collapses duplicated or closely related coverage into observed events.
- `tier`, `weight`, and `dailyCap` keep feed priority and flooding under control.
2. Repair coverage and set the agenda
When a category is under-covered, the pipeline adds targeted sources, then decides what the day is actually about before final ranking.
- `fetchCoverage` fills deficit categories to preserve range across topics.
- `editorialAgenda` defines the daily framing, must-cover themes, watch signals, and category boosts.
- This is the point where the issue becomes an editorial product instead of a heat-ranked feed.
3. Gate-keep and score
Candidates are first filtered and merged, then scored across multiple dimensions so only meaningful items reach the issue.
- `gateKeep` returns PASS, DROP, or MERGE decisions in batch, with heuristic fallback when needed.
- `score` applies six weighted dimensions plus category weights, daily boosts, and must-cover bonuses.
- Minimum category coverage is preserved so one track cannot consume the full page.
4. Generate and distribute
High-scoring items are turned into structured interpretations, then rendered into the daily report and downstream distribution outputs.
- `insight` converts items into one-liners, event frames, interpretations, and deep-dive candidates.
- `generateDaily` writes the Markdown issue and preserves the candidate pool for continuity.
- `podcastGen`, `platformsGen`, `publish`, and `notify` handle scripts, platform copy, publishing, and alerts.
Daily detail pages render the generated Markdown directly. Weekly issues extend the same structure, while the homepage is responsible for browsing and historical recall. The frontend does not reinterpret the content itself. It organizes generated artifacts into a readable interface.
Compress noisy inputs into actionable judgment, then keep high-value signals under continuous watch.