Input validation, output filtering, and safety checks.
from agno.guardrails import BaseGuardrail
class BaseGuardrail:
def check(
self,
input: Any,
**kwargs
) -> Any:
"""
Process and validate input/output.
Parameters:
input: Data to validate
**kwargs: Additional parameters
Returns:
Any: Validated or transformed data
Raises:
InputCheckError: If input validation fails
OutputCheckError: If output validation fails
"""
async def async_check(
self,
input: Any,
**kwargs
) -> Any:
"""
Async version of check().
Parameters:
input: Data to validate
**kwargs: Additional parameters
Returns:
Any: Validated or transformed data
Raises:
InputCheckError: If input validation fails
OutputCheckError: If output validation fails
"""from agno.guardrails import OpenAIModerationGuardrail
class OpenAIModerationGuardrail(BaseGuardrail):
def __init__(
self,
api_key: Optional[str] = None,
**kwargs
): ...from agno.guardrails import PIIDetectionGuardrail
class PIIDetectionGuardrail(BaseGuardrail):
def __init__(
self,
patterns: Optional[List[str]] = None,
**kwargs
): ...from agno.guardrails import PromptInjectionGuardrail
class PromptInjectionGuardrail(BaseGuardrail): ...from agno.agent import Agent
from agno.guardrails import OpenAIModerationGuardrail, PIIDetectionGuardrail
agent = Agent(
model=...,
pre_hooks=[
OpenAIModerationGuardrail(),
PIIDetectionGuardrail()
]
)from agno.agent import Agent
from agno.guardrails import OpenAIModerationGuardrail
agent = Agent(
model=...,
post_hooks=[
OpenAIModerationGuardrail()
]
)