Skip to content

JSON Validator

The json_validator guardrail ensures LLM output is valid JSON, optionally matching a schema.

from pydantic_ai_guardrails.guardrails.output import json_validator
from pydantic_ai_guardrails import GuardedAgent
from pydantic_ai_guardrails.guardrails.output import json_validator
guarded_agent = GuardedAgent(
agent,
output_guardrails=[
json_validator(),
],
)
ParameterTypeDefaultDescription
schemadict | NoneNoneJSON Schema to validate against
# Just check it's valid JSON
guardrail = json_validator()
guardrail = json_validator(
schema={
'type': 'object',
'properties': {
'name': {'type': 'string'},
'age': {'type': 'integer', 'minimum': 0},
'email': {'type': 'string', 'format': 'email'},
},
'required': ['name', 'age'],
}
)
guardrail = json_validator(
schema={
'type': 'array',
'items': {
'type': 'object',
'properties': {
'id': {'type': 'integer'},
'title': {'type': 'string'},
},
},
}
)

When triggered, returns:

{
'tripwire_triggered': True,
'message': 'Invalid JSON: Expecting property name',
'severity': 'high',
'metadata': {
'error': 'JSONDecodeError',
'position': 42,
},
'suggestion': 'Ensure output is valid JSON format',
}
  • API responses: Ensure structured output
  • Data extraction: Validate extracted entities
  • Configuration: Generate valid config files
  • Integration: Prepare data for downstream systems