An agent pipeline that only says what its sources support
Short tech-news videos made by a producer agent and its role agents, with every spoken sentence tied to a source and a person approving the hook, the script, the scenes and the final cut.
Delivered08/2026
- Client
- Van Data Team
- Role
- Designed and built the agent pipeline
- Period
- 08/2026
- Proof
- 4 claims
- With
- Tran Tien Van
- Stack
- Python · TypeScript · Remotion · Speech recognition · FFmpeg · pytest
- 1ProblemGenerated news videos drifted from their sources and nobody could say where a sentence came from.
- 2BuildA producer agent over role agents, a claim registry, word-timing and clarity gates, and human approval at four stages.
- 3ResultRuns stop instead of guessing, and every sentence on screen traces back to a source.
Problem
Van Data Team wanted short videos about AI news without a person writing each script. The first generated versions read well but drifted: a number would change between the article and the voice-over, and nobody could point to where a sentence had come from.
Build
I split the work into roles. A producer agent runs role agents for research, the hook, the script, the scenes, the assets, the edit, the composition and publishing P1. Each role has its own instructions and must leave a checkpoint before the next one starts.
Research writes a claim registry: every usable fact with its source and date. The script agent may only use facts from that registry, and each sentence carries the ID of the claim it states.
Some stages wait for a person P2. The run also has a budget, a limit on revisions per stage and a time limit, so a loop ends instead of spending.
Route
A research agent collects primary sources and writes a claim registry: every usable fact with its source and date.
- Normal run01DoneA research agent collects primary sources and writes a claim registry: every usable fact with its source and date.
- 02DoneThe hook and the script are drafted by their own agents. Each sentence carries the ID of the claim it states, and a person approves both.
- 03DoneA scene agent gives each sentence one visual; voice and visuals are produced with their rights recorded. No synthetic evidence.
- 04DoneWord timings come from forced alignment against the script, not from estimates.
- 05DoneScenes render in code, and a person signs off before anything is published.
- Something breaks06FailedIf a spoken word cannot be matched to the script, the gate fails closed and the stage is sent back instead of guessing.
- Recovery07DoneThe stage is revised and checked again. Limits on revisions, budget and time stop a run that would otherwise loop.
Result
A run either finishes with every sentence traceable to a source, or it stops and says which gate failed. The pipeline work came with its tests P3.
Limits
The pipeline started from a third-party video framework; the orchestration pattern it ships with is theirs. The pipeline definition, the role instructions, the gates and the renderers listed here are mine. The repository is private to Van Data Team, so the files are shown on request.
My part
I designed the roles and the gates and wrote the pipeline, the instructions and the tests P4. Tran Tien Van later moved generation to a local GPU and folded it into the team's production pipeline.
My commits in the repository113 / 129 · 88%
Proof of delivery · NLV-26-AGT
| # | Claim | Evidence | As of | Confidence |
|---|---|---|---|---|
| P1 | One producer agent runs 8 role agents, from research to publishing, each with its own instructions and checkpoint. |
| 22 Oct 2026 | I hold the artifact |
| P2 | 4 stages stop until a person approves them, including the hook, the script and publishing. |
| 22 Oct 2026 | I hold the artifact |
| P3 | The pipeline work came with 302 test cases. |
| 22 Oct 2026 | I hold the artifact |
| P4 | 113 of the repository's 129 commits are mine; the base framework it started from is third-party and not counted as my work. |
| 22 Oct 2026 | I hold the artifact |