Why a planner-coder-reviewer-tester agent setup produces inconsistent code

Splitting development across specialized agents sounds like a software team. The catch is that the reviewer agent is biased toward the coder agent's output, so the check is weaker than it looks.

B

Balagei G Nagarajan

3 MIN READ


A reviewer agent nodding at a coder agent's output they both find familiar, while a flaw passes between them
On top of the bias, the pipeline has the standard multi-agent failure surface: the handoffs.
— from “Why a planner-coder-reviewer-tester agent setup produces inconsistent code”

Key facts.

  • Self-Preference Bias finds LLM judges rate familiar, low-perplexity text higher than humans do, independent of quality.source
  • A reviewer agent from the same model family as the coder shares its blind spots, so it under-catches the coder's characteristic mistakes.source
  • Multi-agent pipelines also fail at the handoffs, where one agent's output becomes the next one's misread input.source

Why is an agent reviewing an agent weaker than it sounds?

The value of a reviewer is independence, and two agents from the same model family are not independent. The Self-Preference Bias result shows a judge model favors output that is familiar to it. A reviewer agent looking at a coder agent's code is biased toward approving it, precisely because it is the kind of code the reviewer would have written. The reviewer over-approves the coder's characteristic patterns, including its characteristic mistakes. The check you added to catch errors is tuned to miss the very errors that matter. A human reviewer catches the bug partly because they think differently from the author. Two instances of the same model think alike, so the disagreement that makes review valuable is largely absent.

On top of the bias, the pipeline has the standard multi-agent failure surface: the handoffs. The planner's spec, the coder's output, the reviewer's verdict and the tester's result each pass between agents, and each boundary is a place for misreading. Multi-agent failure analysis finds this inter-agent misalignment pervasive. Two compounding problems result: a review biased toward approval and handoffs that lose fidelity. The output is inconsistent code that looks like it went through a rigorous team.

A planner-coder-reviewer-tester pipeline with independent criteria injected at the review step and verified handoffs

What makes the pipeline actually work?

Independence and verified handoffs. Give the reviewer role objective, independent criteria: security scans, tests, static analysis. These don't share the coder's biases, rather than relying on an agent's judgment predisposed to approve. Where possible, use a different model or a rules-based check for the review. The disagreement that makes review valuable is real. Put contracts and verification at each handoff so the spec, code and test results pass between agents without silent misreading. The pipeline succeeds when the review is genuinely independent and the handoffs are checked, not when it merely has a box labeled reviewer.

Review designWhat it catches
Same-family agent reviewingMisses the coder's characteristic mistakes
Independent criteria and checksCatches what the coder is biased to miss

A peer reviewer agent over-rates the coder familiar output, Self-Preference Bias finds; the upgrade shares the blind spot, a costly miss. (arXiv:2410.21819)

Building that independence is part of what VibeModel does as the Pattern Intelligence Layer. We model the patterns a genuinely independent check must apply and verify the handoffs between dev agents. A multi-agent pipeline produces consistent code instead of a biased review that rubber-stamps the coder.

Frequently asked questions

Can one model both write and review well?
Weakly. Self-preference bias means it favors its own style. Independent criteria or a different model makes the review real.

Is multi-agent dev always worse?
No, but the review step needs genuine independence and the handoffs need verification or it underperforms a single careful agent with strong automated checks.

What gives independent review?
Objective checks the coder does not share: security scanners, tests, static analysis or a different model for the review role.


Share this post

Join the discussion

Have a take, a war story, or a question? Sign in with GitHub to comment and react. Comments are powered by GitHub Discussions, ad-free and yours to moderate.

Continue Reading

Find where your agent breaks, before you build it

Faultmap maps where your agent will fail from the goal and your data, then hands you the first test suite it has to pass.