Agent A — Author
Receives the original user problem and writes a complete answer. After a rejection, it receives Agent B's criteria, feedback, and required changes, then writes a complete revised answer.
All versions repeat the same basic idea: Agent A writes, Agent B reviews, and Agent A revises when needed. The difference is when criteria are created and how Agent B reviews the answer.
Agent A → Agent B → revise or finish
This is the simplest and cheapest version. There is no moderator. Agent B creates the criteria only after Agent A has written the first answer.
Receives the original user problem and writes a complete answer. After a rejection, it receives Agent B's criteria, feedback, and required changes, then writes a complete revised answer.
Creates three to six checkable criteria from the original problem and reviews the answer in the same call. It gives a score, explains problems, requests changes, and decides whether to approve.
If Agent B approves, the workflow ends. Otherwise Agent A tries again until approval, the round limit, or the stall limit is reached.
Moderator → Agent A → Agent B → Moderator
This version creates the criteria before the first answer. The criteria stay fixed, so the reviewer cannot change the goal after seeing the proposal.
First, it rewrites the user's problem clearly and creates three to six fixed acceptance criteria. At the end, it prepares the final result and clearly reports any criteria that are still not satisfied.
Receives the clearer problem and fixed criteria before writing. On later rounds, it also receives the previous review and must return a full revised answer.
Checks the answer only against the fixed criteria. It gives a score, explains what is wrong, lists required changes, and approves when the answer is ready.
A deterministic routing rule—not another LLM—chooses whether to return to Agent A or continue to the moderator's final step.
Moderator → Agent A → Adversarial Agent B → Moderator
V3 keeps the same moderator and fixed criteria as V2. The difference is Agent B: its main goal is to prove that the answer is not ready.
Creates the clear problem and fixed criteria before Agent A starts. At the end, it presents the best result and any remaining blockers.
Writes against the fixed criteria. When Agent B finds a blocker, Agent A receives the evidence and requested correction, then writes the complete answer again.
Looks for missing requirements, violated criteria, edge cases, ambiguities, and risks. It must provide evidence for real blockers. It does not give a numeric score and approves only when no blocking defect remains.
The routing rule repeats the author/reviewer loop while blocking findings remain, unless the round or stall limit ends the process.
The optional experiment evaluator is separate from the moderator and reviewers above. It receives one anonymized final answer at a time and checks it against the evaluation criteria supplied by the user.