cd /news/ai-agents/an-autonomous-agent-that-researches-… · home topics ai-agents article
[ARTICLE · art-76876] src=distillation.technology ↗ pub= topic=ai-agents verified=true sentiment=· neutral

An autonomous agent that researches, writes and publishes a news site

An autonomous agent named ALEMBIC researches, writes, and publishes news articles for a site without human review, running weekly on Mondays via GitHub Actions. The system uses the kimi-k3 model through the Moonshot API and is designed to publish nothing when no significant news occurs, with each run producing a single commit for fast correction.

read4 min views1 publishedJul 28, 2026
An autonomous agent that researches, writes and publishes a news site
Image: source

New analysis articles in this site's newsroom are researched, written, sourced and published by ALEMBIC without a human reading them beforehand. It runs once a week, reports back on what it did, and is allowed to conclude that nothing worth writing about happened. An alembic is the vessel distillation actually happens in. Given what this site covers, the name was not a hard decision.

Pipeline

Seven stages, unattended. #

Scan

Queries seven separate news beats and decodes the real article URLs out of the aggregator redirects. Filters to an eight day window so nothing is covered twice and nothing recent is missed.

Deduplicate

Parses every source URL already cited anywhere on the site and discards matches. The agent cannot rediscover a story it has already filed, which is the failure mode that makes most news bots repetitive.

Judge

Sends the surviving candidates and the full list of existing headlines to the model, and asks a deliberately hostile question: did anything actually happen. Opinion columns, stock commentary and rewrites of covered stories are rejected here.

Research

For a selected story, fetches each underlying article and extracts the readable text, so the writing pass works from primary coverage rather than from a headline and its own recollection.

Write

Produces the article against an explicit style contract: allegations labelled as allegations, established fact stated separately from claims, no relative dates on permanent pages, and a closing section that separates what is proven from what is merely asserted.

Verify

Every cited URL is fetched to confirm it resolves. The draft is checked for slug collisions, disallowed markup, minimum length, and sources already used elsewhere. Anything that fails is discarded rather than repaired.

Publish

Rebuilds all sixty pages, validates every structured data block and every internal link, then deploys and confirms each live URL returns 200. A failure at any point aborts before anything reaches the site.

Design

The hardest behaviour was teaching it to publish nothing. #

Most autonomous content systems fail the same way. Given a schedule and an obligation to fill it, they inflate trivia into events. A quiet week produces a confident article about nothing, and quality collapses on exactly the weeks when restraint mattered.

Silence is an explicit, expected output. The selection prompt states that choosing nothing is a valid and common answer, and that most weeks contain no real development. In practice this is the single most important line in the entire system.

The second design decision follows from having no approval gate. Prevention is replaced with fast correction: each run is exactly one commit, so a bad article is undone with a revert and a redeploy in seconds rather than edited under pressure.

Stack

What it is actually made of. #

Model

kimi-k3, via the Moonshot API. The model at the centre of the distillation accusations this newsroom covers is the model writing the coverage. That is deliberate.

Runtime

Plain Node with no dependencies. Scheduled by GitHub Actions, Mondays at 09:00 Eastern. Manually triggerable with adjustable lookback window, article cap, and a dry run mode.

Discovery

Syndicated news feeds across seven beats, with the genuine article URL recovered from the aggregator's redirect parameters so every citation points at the original publisher.

Storage

The site is a static build from a content module. The agent inserts a structured object into that module, which means its output is diffable, reviewable after the fact, and revertible like any other code change.

Delivery

Deploys over SSH with the key held as an encrypted secret. The deploy script verifies every URL on the site returns 200 before it reports success.

Field notes

Three things only running it could have found. #

Worth recording, because none of these are visible in code review and all three would have killed a Monday run silently.

The model rejects the temperature you assume

kimi-k3 refuses any temperature other than 1. A parameter copied from habit returned a 400 on the very first call.

Line endings broke the insertion

The routine that splices a new article into the content module matched on a newline. The authoring machine writes CRLF and the CI runner writes LF, so it failed on one and would have failed differently on the other. Now agnostic to both.

Reasoning tokens are spent before you see output

Reasoning models consume the token budget thinking, then write. A budget sized for the visible answer was exhausted during deliberation and returned an empty string, which surfaced as an unhelpful JSON parse error. Failures now report the finish reason and token usage instead.

Built by

Brian Galvan. #

ALEMBIC was built as working practice in autonomous agent design, not as a demonstration. It runs on a live domain with real search exposure, which is the only environment where this kind of system tells you the truth about itself.

── more in #ai-agents 4 stories · sorted by recency
── more on @alembic 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/an-autonomous-agent-…] indexed:0 read:4min 2026-07-28 ·