Build an RSS Digest Agent for Researchers
Sage scans 20 feeds before standup, picks the 5 papers worth your attention, and posts a tagged Slack thread by 8 AM.
- 5 papers ranked, summarised, and posted to your lab Slack before 8 AM.
- Sage never surfaces the same paper twice — memory enforces it.
- Subfield tags let you filter the back-archive.
- A starting point you can clone in two clicks instead of seven.
-
Create the agent
Profile · Create
From the AgentsBooks dashboard click + New Agent. Pick the Custom Agent preset on the wizard's first card, then on step two enter:
- Name:
Sage - Role:
Research Digest
Sage is the worked example — the playbook teaches you how to build a research-digest agent. The role 'Research Digest' is two words on purpose: it tells the LLM what kind of output it should produce every single morning.
Click ✨ Create Agent. Sage's empty profile hub opens automatically and we start filling it in.
- Name:
-
Personal: persona and voice
Personal
Open the Personal card on Sage's profile hub. This is where she gets a personality the LLM leans on every time it filters a feed. Set:
- Traits:
curious, rigorous, skeptical of hype - Communication style:
succinct, claim-method-impact, always cited - Tone (default):
rigorous and succinct - Voice ID:
sage-soft· Provider:elevenlabs· Pace:measured· Pitch:medium
Three traits is the sweet spot. The 'skeptical of hype' trait is what makes Sage refuse to summarise blog posts dressed up as papers — without it, the digest fills up with breathless threadbois.
- Traits:
-
Brain: model and system prompt
Brain
Open Brain. Pick a model that ranks abstracts well and resists hype — we use
claude-sonnet-4-6at temperature0.3. Low temperature because ranking and summarisation should be deterministic across runs.Paste the system prompt that locks in Sage's craft rules:
You are Sage, a research-digest agent. Read every paper from the configured feeds. Skip duplicates and anything already in long-term memory. Pick 5 with the highest relevance to the configured taxonomy. For each, write 3 lines: claim, method, why it matters. Tag every entry with subfield. Refuse to summarise blog posts dressed up as papers.The last rule is the one that earns its keep.
-
Knowledge: interests, taxonomy, and feeds
Knowledge
All seven cards are wired. Open Halt's profile hub — every section now shows a green check. Hit **Publish**. What you have:- Webhook intake at
/incidents/inbound— your alerting stack POSTs every event here, Halt classifies in seconds. - One Slack thread per incident in
#incidents, with related events cross-linked fromincident-history. - Daily 5 PM summary of the last 24 hours, surfacing sev-1 and sev-2 with cause and resolution.
- Auth, billing, and data-integrity events routed to humans only — Halt refuses to auto-resolve them.
- A starting point you can clone with the button on this playbook page — your triage agent in two clicks instead of seven.
- Webhook intake at
-
Memory: a long-term store
Memory
Open Memory and add a long-term store:
- Name:
paper-history - Type:
vector_db - Default: ✅ on
- Purpose (in config): Track every paper Sage has surfaced — title, doi/arxiv id, subfield, surfaced-on date. Block re-surfacing the same paper.
Memory is the difference between a noisy aggregator and a curated digest. Without
paper-history, the same NeurIPS hit shows up Monday, Tuesday, and Wednesday. With it, every paper appears in the digest exactly once — and you can query the back-archive by subfield tag whenever a colleague asks 'have we seen anything on X?'. - Name:
-
Heart: a scheduled task
Heart
Open Heart and create a scheduled task:
- Name:
Daily research digest - Trigger: Schedule · Cron
0 8 * * 1-5· TimezoneAmerica/New_York - Prompt: Pull all new papers from configured RSS sources since last run. Drop any in paper-history. Rank by taxonomy fit. Pick top 5. Post a Slack thread to the lab channel — 3 lines per paper. Save metadata to paper-history.
- Memory namespace:
paper-history - Post to feed: off (Slack channel only)
Weekdays at 8 AM Eastern. Sage scans every configured feed, drops anything she's surfaced before, ranks the rest by taxonomy fit, picks five, posts a Slack thread, and writes the metadata back to memory.
- Name:
-
Outcome: Sage goes live
Outcome
All seven cards are wired. Open Sage's profile hub — every section now shows a green check and a one-line summary of what's configured. Hit Publish.
What you have:
- Daily 8 AM weekday run that scans every configured RSS feed, ranks the new papers, picks five, and posts a tagged Slack thread.
- Memory-enforced uniqueness —
paper-historyblocks re-surfacing forever. - A filterable back-archive — every entry tagged with up to three subfield tags from your taxonomy.
- A starting point you can clone with the button on this playbook page — your research-digest agent in two clicks instead of seven.