How we built Citeable in 8 weeks — the multi-agent loop
Writer · editor · fact-checker. Three agents, one draft. Here’s why the loop matters more than the model.
Why three agents instead of one
We tried single-prompt generation first. It worked — for one in five briefs. The other four read like AI. Generic open, padded middle, hedging close.
Three-agent loops are different. The writer doesn’t self-edit. The editor doesn’t write. The fact-checker doesn’t care about voice. Each one does its job and only its job.
The architecture
Writer — Sonnet 4.6, gets the brand voice profile + the brief + the tracked-citation context. Job: draft the post in the platform-native voice.
Editor — Sonnet 4.6, gets the draft + the brand’s banned-phrases list. Job: strip hedge words, strip hype, tighten sentences, return same length or shorter.
Fact-checker — Sonnet 4.6 with tool-use, gets the draft + access to the brand’s sources. Job: every claim either grounds in a source or gets softened to opinion.
The whole loop streams via SSE to the editor UI. You watch each agent run live.
What we learned
- The editor pass is non-negotiable. Skipping it kills the per-platform voice instantly.
- The fact-checker catches more than facts. It catches over-claims — “the leading X” when we don’t have data — and softens them. That alone is worth the inference cost.
- Prompt caching matters. With cache-aware system prompts, the per-draft cost is ~30% of naive multi-pass. That changes the unit economics.
What’s next
Per-brand learning: every approved draft becomes a positive example in the brand’s voice profile. The writer agent gets better at your brand, not just brands in general.