Why Several Agents Instead of One Big Prompt
Asking one model to read a chapter, pick the topics, write the questions, draw the pictures and check its own work produces something that looks right and falls apart at the edges. Splitting the job into steps that each produce something inspectable works better, and here is why.

The short version
- A single prompt that does everything produces one blob of output, and when something is wrong you cannot tell which decision caused it.
- Splitting the job into steps means every step produces an artefact a person can read, so a fault has an address.
- The most valuable step is the one that argues against the previous step. A model asked to find problems finds problems it would never have avoided creating.
- A step that produces structured data, validated on the way in, cannot silently corrupt what comes after it.
The first version of our content pipeline was one long prompt. Read this chapter, work out what it covers, write twenty questions at the right level for this class, vary the question types, add pictures where they help, and check your answers. It worked, in the sense that output came back and much of it was usable.
It also failed in a way that took us a while to name. When a question was wrong, there was no way to tell why. Had it misread the chapter? Misjudged the class? Picked the wrong sub-topic and written a perfectly good question about the wrong thing? One prompt gives you one blob of output and no evidence about how it got there.
What splitting it up actually buys
Breaking the work into steps, each with its own input, its own output and its own validation, changes the economics of being wrong. Every step leaves an artefact behind. When something is wrong downstream, you read the artefacts backwards until you find the first one that is wrong, and that is your fault, located.
Here are the steps that matter, and what each one leaves behind.
Extract
Input: a PDF. Output: plain text, or an explicit failure. This step has no judgement in it at all, and that is a feature. It either produced readable text or it did not, and you can read the text yourself.
Locate
Input: the text, the class, the subject. Output: which topic from the catalogue this chapter corresponds to. Small output, enormous consequences. Getting this wrong means everything downstream is well-made content about the wrong thing, and it is visible in one line rather than discovered in twenty questions.
Draft
Input: text, topic, class, level, count, and a schema. Output: structured questions. The schema does the heavy lifting here. The response is parsed against it and anything that does not fit is dropped rather than coerced, so a malformed question never reaches a database field.
Shape
Input: drafted questions. Output: questions with types and pictures assigned. A Class 2 quiz that is twenty multiple-choice questions is a worse quiz than the same content with ordering, sorting and picture questions mixed in, and this step is where that mix is enforced. Picture tokens are validated here too: a token for a picture kind that does not exist is removed rather than shipped as literal text in a question.
Challenge
Input: the drafted quiz. Output: a list of objections. This step is given one job, which is to argue that the previous step got something wrong. Which answer keys look suspicious. Which questions have two defensible answers. Which wording a child of this age will misread. Which two questions are the same question twice.
This is the step that pays for all the others. A model asked to write good questions writes questions it believes are good. The same model asked what is wrong with these questions finds problems it would never have avoided creating in the first place. The objections do not auto-apply; they go to the person reviewing, as a list of things to look at first.
Park
Input: a finished draft. Output: a row in the database with the status pending_review. No step in this pipeline publishes anything.

The principle underneath
Each step takes structured input and produces structured output that is validated before it moves on. That sounds like ordinary engineering, and it is, which is the point. The interesting thing about building with language models is how much of the work is ordinary engineering around an unreliable component.
An unvalidated step quietly corrupts everything after it. A validated step either produces something well-formed or stops. Stopping is a good outcome. A pipeline that cannot stop is a pipeline that ships whatever it has.
What we would do differently
Three things, learned the slow way.
Make the locate step explicit and early. We originally let the drafting step infer the topic as it went, and misattributed content is almost impossible to spot later because every individual question looks fine.
Keep the challenge step separate from the draft step. Asking a model to write questions and then check them in the same breath produces a check that agrees with itself. Fresh context, single instruction, better results.
Give the reviewer the objections as well as the output. A reviewer handed twenty questions reads them evenly. A reviewer handed twenty questions and a note saying numbers four, eleven and seventeen have contested answer keys reads those three properly and the rest normally. Same half-hour, better use of it.
Questions parents ask
Is this what people mean by agentic AI?
Roughly. The useful part is not autonomy for its own sake, it is that a task is broken into steps with tools and checks, and each step leaves something behind you can inspect.
Doesn't running several steps cost more?
Yes, in API calls. It costs considerably less in the thing that is actually expensive, which is a teacher's time spent untangling bad output, or a wrong answer key reaching a class.
What happens when a step fails?
It fails at that step with a reason, rather than passing something broken to the next step. A chapter with no readable text stops at extraction and says so.
Could one model do all of this eventually?
Possibly. The architecture would still be worth keeping, because the value is in the inspectable intermediate results, not in the number of models.
Responses
Sign in to join the conversation. Responses are open to people with a QuizByt account, which is how we keep this a place you would let your child read.
Loading responsesโฆ
Lessons that talk, quizzes that mark themselves, games that make kids think
QuizByt is matched to your child's class. Classes 1โ10 and Cambridge O Level. Every subject opens with a free lesson, quiz and worksheet, no account needed.
What the AI Is Not Allowed to DecideA list of decisions a language model never makes on QuizByt, and the mechanism that stops it in each case. Not policies and promises, but constraints in the code.Read the article โ
Upload a PDF, Get a Lesson, a Quiz and a WorksheetA school uploads the chapter it is actually teaching. Out comes a scrolling lesson, a self-marking quiz and a printable worksheet, all drafts, all waiting for a teacher. What happens in between, and what makes it fail.Read the article โ
Set It Once, and Then Just Read the ReportMost parents will not log in to a dashboard every week, and a product that assumes they will is designing for a parent who does not exist. Set the rules once; get told what happened.Read the article โ