The --guardrail flag enables LLM-based output validation to ensure agent responses meet specific criteria.
Quick Start
praisonai "Write code" --guardrail "Ensure code is secure and follows best practices"
Basic Guardrail
praisonai "Generate SQL query" --guardrail "No DROP or DELETE statements allowed"
Expected Output:
๐ก๏ธ Guardrail enabled: No DROP or DELETE statements allowed
โญโ Agent Info โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐ค Agent: DirectAgent โ
โ Role: Assistant โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ Response โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ SELECT * FROM users WHERE status = 'active'; โ
โฐโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
Guardrail passed: Output meets criteria
Combine with Other Flags
# Guardrail with save
praisonai "Write API documentation" --guardrail "Include all endpoints" --save
# Guardrail with metrics
praisonai "Generate report" --guardrail "Must include sources" --metrics
# Guardrail with planning
praisonai "Create security audit" --guardrail "Follow OWASP guidelines" --planning
Common Guardrail Criteria
Security
--guardrail "No sensitive data exposure"
--guardrail "Follow security best practices"
--guardrail "Sanitize all inputs"
Quality
--guardrail "Include error handling"
--guardrail "Add type hints"
--guardrail "Follow PEP 8 style"
Content
--guardrail "Professional tone only"
--guardrail "Include citations"
--guardrail "No speculation"
Format
--guardrail "Output as JSON"
--guardrail "Include headers"
--guardrail "Maximum 500 words"
How It Works
- Agent Execution: The agent processes your prompt normally
- Validation: The guardrail LLM evaluates the output against your criteria
- Result: Pass/fail status is displayed with feedback
Examples
Code Quality Guardrail
praisonai "Write a Python function to parse JSON" \
--guardrail "Must include docstring, type hints, and error handling"
Expected Output:
def parse_json(json_string: str) -> dict:
"""
Parse a JSON string into a Python dictionary.
Args:
json_string: A valid JSON formatted string
Returns:
Parsed dictionary from the JSON string
Raises:
json.JSONDecodeError: If the string is not valid JSON
"""
import json
try:
return json.loads(json_string)
except json.JSONDecodeError as e:
raise json.JSONDecodeError(f"Invalid JSON: {e.msg}", e.doc, e.pos)
Content Guardrail
praisonai "Write a product description" \
--guardrail "No exaggerated claims, include specifications"
SQL Safety Guardrail
praisonai "Generate database queries for user management" \
--guardrail "Read-only queries, no modifications allowed"
Best Practices
Be specific with your guardrail criteria. Vague criteria may lead to inconsistent validation.
Guardrails add an additional LLM call, which increases latency and token usage. Use --metrics to monitor costs.
| Do | Donโt |
|---|
| โInclude error handling for all edge cases" | "Make it good" |
| "No SQL injection vulnerabilities" | "Be secure" |
| "Output must be valid JSON" | "Format nicely" |
| "Maximum 3 paragraphs" | "Keep it shortโ |