Skip to content
All work

Prensa News

An AI‑powered newsroom built around specialized agents.

It reads news feeds, picks what’s worth covering, researches it on the web, writes and audits the story, and publishes only under rules a person sets.

Role
Personal project · design & development
Year
2026
Type
Multi‑agent AI system · News
  • Claude
  • Anthropic SDK
  • Multi-agent pipelines
  • BullMQ
  • Redis
  • Next.js
  • Prisma
  • PostgreSQL
Prensa News command center with the day's figures: two stories published, one waiting for approval, US$ 2.62 of AI today against a US$ 10 daily budget, Draft mode on, the AI running, the six queues and the latest agent calls
Fig. 01 — The Prensa News command center.

The challenge

Writing is easy. Reliable journalism is not.

  • Research

    Facts have to be found, not filled in.

  • Context

    A fact means little without what came before and what’s at stake.

  • Verification

    Every claim has to be checked against its source before it goes out.

How it works

From a feed item to the front page, in seven steps.

The STF story, 12 Nov 2026

  1. Ingest

    Reads the RSS feeds and drops duplicates by URL.

    Each feed every 1 to 30 min, at its own pace

    19:10:16 · Agência Brasil

Fig. 02 — Editorial flow of a story.

Three stories, published on 12 November 2026.

Each took 4 min 8 s to 4 min 36 s of agent time and cost US$ 0.82 to US$ 0.96 at API prices. A person approved all three.

Quinta-feira, 12 de novembro de 2026
Prensa News
  1. Política

    STF enterra blindagem de 1940 contra violência patrimonial a mulheres

    Por unanimidade, a Corte afastou imunidade herdada das Ordenações Portuguesas; efeitos no tempo ficaram para depois.

    Por Marina Costa · Repórter e colunista de política

    In English: Supreme Court ends a 1940 immunity for property crimes against women

  2. Economia

    Ajuste fiscal de 2027: a indústria pergunta quem paga a conta

    CNI, Firjan e Fiemg dizem que mais da metade dos até R$ 56 bi do pacote sai do caixa das empresas — e cobram corte de gasto no lugar.

    Por Otávio Lins · Colunista de economia

    In English: 2027 fiscal adjustment: industry asks who pays the bill

  3. Tecnologia

    Nvidia perde Jensen Huang e descobre que não tinha plano B

    A CFO Colette Kress assume interinamente uma empresa de quase US$ 4 trilhões que, nos próprios documentos, admitia ser “altamente dependente” de um só homem.

    Por Leda Nakamura · Repórter de tecnologia e ciência

    In English: Nvidia loses Jensen Huang and finds it had no plan B

Fig. 03 — Three stories produced by the system.

Architecture

Specialized agents. One orchestration.

Each agent does one job. The orchestrator controls the flow, the state and the next step.

In

RSS feeds

A person

Admin panel

Sets the rules, approves drafts

Out

News portal

Orchestrator

A worker in code, not a model. One queue per stage, and each story’s status in PostgreSQL decides its next step.

Decides what’s worth covering.

Receives
a feed item
Returns
score · category · format

claude-haiku-4-5

Fig. 04 — Agent orchestration architecture.

What the agents hand over

The STF story's dossier: a summary with confidence 8.5/10, then the verified facts

Fig. 05 — Editorial dossier built during research.

Reliability

Making AI systems reliable.

  • Controlled execution

    Every agent call passes one gate. The handbrake and the day’s budget come first, and every call is logged.

    Before every call

    1. Handbrake

      must be off

    2. Daily budget

      US$ 2.62 of US$ 10 on 12 Nov

    3. Call

      through the agent's provider

    4. Audit log

      model · prompt version · tokens · cost · time

    Paused: the job returns in 10 min

  • Configurable behavior

    The rules are typed settings read on every run. Change one and the next story follows it, without a deploy.

    Defaults

    In the admin

    Autonomy
    Draft mode
    Daily budget
    US$ 10
    Feed cadence
    adaptive
    Guidelines
    written by a person

    In the database

    Triage cut-offs
    7 · 4
    Debate rounds
    3 (1–5)
    Models
    Haiku 4.5 · Opus 4.8
  • Output validation

    Every answer must match its agent’s schema. Then the Critic scores the draft and a rule decides: a score under its minimum sends it back, a veto blocks it.

    The Critic on the STF story

    Approve
    • Factuality8 (minimum 8)
    • Bias9 (minimum 8)
    • Logic8 (minimum 8)
    • Safety10 (minimum 9)
    • Quality9 (minimum 7)

    minimum

Engineering

Designed and built end to end.

A personal project. I designed the architecture, wrote the five agents and their prompts, and built the worker pipeline, the governance and audit layer, the public portal and the admin.

  • Code is the hub

    There is no supervising agent. A BullMQ worker moves each story through six queues and reads its status to choose the next step.

  • Hand‑offs go through state

    A job carries only the story’s id. Each answer is validated, stored in PostgreSQL and read by the next stage.

  • One contract, three layers

    Each agent’s schema lives in a shared package. The same contract shapes the prompt, the stored output and the admin’s screens.

  • Retries without duplicates

    Each stage checks the story’s status before acting, and feed items are deduplicated by URL hash.

  • Testing without spending

    A deterministic fake provider runs every path without an API key, with triggers in a title to force a veto, a revision or a discard.

  • One door to the models

    Every agent calls one provider interface: the Anthropic API in production, Claude Code on a subscription for local runs, a fake for tests.

  • A subscription, isolated

    Claude Code runs each call as a throwaway headless session, with the agent’s own prompt and no user settings, hooks or MCP servers.

Built with

  • TypeScript
  • Claude
  • Anthropic SDK
  • Multi-agent pipelines
  • BullMQ
  • Redis
  • PostgreSQL
  • Prisma
  • Next.js
  • Tailwind CSS
  • Docker
  • Vitest
  • zod
  • better-auth
  • rss-parser
  • pino
  • pnpm
  • Turborepo

About the figures. The run of 12 November 2026 is real: three stories produced end to end and approved by a person in Draft mode. Times and costs come from the system’s audit log, scores and counts from the agents’ stored outputs. The run used Claude Code on a subscription, so costs are shown at Anthropic API prices.