Generator-Critic Separation
Strict role separation between a Generator agent that produces drafts and a Critic agent that judges them against pre-defined criteria; the Critic never generates.
Problem
When the critic can generate, it tends to rewrite rather than name issues, depriving the team of clean error signals. When the same model swaps roles, biases bleed across the swap. The team cannot tell whether the critic caught a real issue or invented an opinion. Differs from inner-critic (same model), llm-as-judge (judge-only with no revision loop), and reflection (which subsumes both roles).
Solution
Generator and Critic are separate components (different model calls; ideally different model instances). Critic's interface returns structured findings: list of {section, issue_class, severity, citation}. Critic cannot produce free-form text or rewrites. On non-empty findings, findings are passed back to Generator which produces a revision. Pair with cross-reflection, frozen-rubric-reflection, llm-as-judge.
When to use
- Critique benefits from structured outputs over free-form review.
- Two model calls per cycle is acceptable.
- Rubric can be expressed as finding-type schema.
Open the full interactive page →
Diagram, neighbourhood map, code examples, related patterns and full provenance.