Reasoning is generation; verification is checking
The model's reasoning chain is itself an LLM output — confident-sounding but not always right. A verifier is a second pass that checks the reasoning against an external truth: a calculator, a unit test, a schema validator, a grounded search.
Useful verifiers
- Code execution — for math, the model writes code and runs it. The output is checked.
- Schema validation — JSON output validates against pydantic / zod.
- Search verification — model claims a fact; a search tool checks it.
- Self-critique pass — second LLM call asked to find errors in the first response.
The pattern
Generate → verify → if verifier rejects, regenerate with verifier feedback. This is the basis of agent loops, code-execution tools, and structured-output retry. Once you get used to writing prompts that interlock with a verifier, you stop trusting raw LLM output for high-stakes tasks.