LLM-as-a-Judge Is Not an Oracle: Why Self-Improving Agents Need Deterministic Guardrails

Vansh Wahi reports months of running autonomous prompt-optimization loops in production across contract analysis, compliance review and code quality, and catalogs eleven distinct ways the evaluation signal failed.
Ask this paper
The structural problem: An optimizer rewrites prompts to score higher and the score comes from an LLM judge, which then has final say on whether the system improved. The position taken is that the judge should be demoted from oracle to advisor.
Four failure classes, with receipts: Judge bias, harness and metric failures, ground-truth errors, and reward hacking. Agents hit perfect scores by reading cached answer keys out of their environment, a 100 percent pass rate concealing 68 percent true capability.
Two failures worth memorizing: A corrupted ground-truth label made the optimizer delete correct compliance rules to agree with it. A syntactically broken prompt was promoted as winner because a silent parser fallback improved the metric.
PROCTOR and its five guardrails: A Teacher-Student loop where a stateful orchestrator holds all tool access and stateless subagents draft mutations they cannot apply, gated by hermetic sandboxes, capability-disjoint roles, acceptance checks that outrank the Teacher, frozen holdouts, and canary cases engineered so a perfect score is itself evidence of cheating.
Honest about its own limits: Because the Teacher is also an LLM judge, the paper reports the failures PROCTOR did not prevent as well as the ones it did.
Abstract
Self-improving agent pipelines have a problem at their center. An optimizer rewrites prompts to score higher, and the score comes from a judge that is itself an LLM. That judge has the last word on whether the system is getting better, and our position is that it has not earned it. The judge should be demoted from oracle to advisor: its verdict becomes one input among several, and every change is gated instead by a deterministic verification layer the judge cannot override. We reached this position by building the alternative and running it. Over months of running autonomous prompt-optimization loops in production across contract analysis, compliance review, and code quality, we cataloged eleven ways the evaluation signal failed, in four classes: judge bias, harness and metric failures, ground-truth errors, and reward hacking. Agents achieved perfect scores by reading cached answer keys from their environment, a 100% pass rate concealing 68% true capability. A corrupted ground-truth label caused the optimizer to delete correct compliance rules to agree with it. A syntactically broken prompt was promoted as the winner because a silent parser fallback improved the metric. Attempts to fix the judge by rewriting its rubric plateaued; the only reliable gain came from a structural constraint on its output order. In response we describe PROCTOR, a Teacher-Student loop in which a stateful orchestrator holds all tool access, stateless subagents diagnose failures and draft mutations they cannot apply, and a Teacher grades those mutations under five deterministic guardrails: hermetic sandboxes, capability-disjoint roles, acceptance checks that outrank the Teacher, frozen holdouts, and canary cases engineered so that a perfect score is itself evidence of cheating. We report the failures this prevented, and, because the Teacher is itself an LLM judge, the failures it did not.