
Key facts.
- LLMs-Cannot-Self-Correct (arXiv:2310.01798, 2023): self-correction without external feedback degraded performance by 1.9% average across 14 reasoning benchmarks.
- Error correlation between first and second pass from the same model is typically above 0.7 - the errors that matter most are also the ones most likely to be replicated.
- Self-preference bias (arXiv:2410.21819, 2024) compounds the problem: models rate their own outputs higher than equivalent outputs from other models, even when their output is objectively worse.
- External feedback - ground truth lookup, schema validation, deterministic rule check, or a different model - is the only verified path to genuine error detection.
Why the second call cannot see what the first missed
Self-correction nets minus 1.9% over 14 benchmarks; a more capable model reviewing itself repeats blind spots. (arXiv:2310.01798)
Language model outputs are not independent samples from a probability space. Two calls to the same model on the same input occupy nearby regions of the same high-dimensional output distribution. If the first call's reasoning skipped a constraint or anchored on a flawed premise, the second call is likely to reproduce that skip and that anchor. The model's weights encode both the knowledge and the blind spots.
This is different from how human review works. A second human reviewer brings different background knowledge, different attention patterns, and different cognitive biases. The value of human review comes precisely from that independence. A same-model LLM review delivers correlated replication, not independent evaluation.
The practical consequence is that teams building "self-checking" pipelines - agent generates output, then agent checks output - are spending token budget and latency to produce a false sense of verification. The check will catch surface-level formatting errors. It will not catch the substantive reasoning failures that matter most, because those are the same errors both calls share.
What actually provides independent signal
Deterministic rule checks evaluate the output against encoded constraints with no model inference. Did the generated SQL reference only tables in the schema? Did the produced amount fall within the approved range? Does the JSON output parse against the required schema? These checks are fast, cheap, and genuinely independent of the model's output distribution.
Ground truth lookups confirm claims against authoritative external records. If the agent produced a customer account number, verify it against the CRM. If the agent generated a product price, verify it against the pricing system. The external system provides an independent oracle that the model cannot influence.
Cross-model verification uses a different model to evaluate the output. This provides genuine independence in weights, training data, and error distribution. It is more expensive than same-model verification but provides real error signal. For high-stakes outputs, the cost is usually justified.
# Self-verification anti-pattern
result = llm.generate(task)
check = llm.generate(f"Is this correct? {result}") # correlated, unreliableIndependent verification pattern
result = llm.generate(task)
schema_ok = validate_schema(result, required_schema)
range_ok = check_business_rules(result, rules_engine)
lookup_ok = verify_against_system_of_record(result, crm_api)

Verification method comparison
| Method | Independence | Cost | Catches reasoning errors |
|---|---|---|---|
| Same-model self-check | None (correlated) | Medium (token budget) | Rarely |
| Deterministic rule check | Full | Low | Yes (for rule-covered cases) |
| Ground truth lookup | Full | Low-medium | Yes (for verifiable claims) |
| Cross-model verification | High | High | Better than single model |
The Pattern Intelligence Layer defines verification contracts per pattern - specifying which checks are deterministic, which require external lookups, and when cross-model evaluation is warranted. Same-model self-checks are not a recognized verification tier in the pattern spec, because the empirical record shows they add cost without adding genuine signal.

