Thinking
Building a Cloudflare-native news intelligence agent
Most AI news products are a black box: text goes in, a summary comes out. newsharness was built on the opposite premise — the pipeline itself should be the deliverable.
The shape of the system
The agent runs scheduled collection across multiple news providers, normalizes and deduplicates stories, clusters similar stories, extracts article content and enriches metadata, then creates publication-ready drafts with publishing workflows. Analytics land in D1, artifacts in R2.
The architecture reads as a straight line:
Sources → Provider normalization → Story clustering → Extraction + enrichment → Drafts + publishing → D1 analytics + R2 artifacts
Why Cloudflare primitives
Each stage maps to a native primitive: Durable Objects hold per-provider state and scheduling, D1 stores traceable analytics, R2 keeps raw artifacts. Because every hop is a first-class Cloudflare resource, the whole run is inspectable — you can see which provider contributed what, when, and how it flowed downstream.
What this proves
The lesson that generalizes: AI-assisted workflows should be observable and traceable, not magic. Separation of concerns between collection, clustering, extraction, and publishing makes the system reliable and maintainable — and it makes failures diagnosable instead of mysterious.