Skip to content

Secret Redaction

The secret_redaction guardrail detects API keys, passwords, and other secrets that may have leaked into LLM responses.

from pydantic_ai_guardrails.guardrails.output import secret_redaction
from pydantic_ai_guardrails import GuardedAgent
from pydantic_ai_guardrails.guardrails.output import secret_redaction
guarded_agent = GuardedAgent(
agent,
output_guardrails=[
secret_redaction(),
],
)
ParameterTypeDefaultDescription
patternslist[str] | NoneDefault patternsCustom regex patterns

The guardrail detects these secret patterns by default:

TypePatternExample
OpenAI API keysk-[a-zA-Z0-9]{32,}sk-abc123...
AWS Access KeyAKIA[A-Z0-9]{16}AKIAIOSFODNN7EXAMPLE
GitHub Tokenghp_[a-zA-Z0-9]{36}ghp_abc123...
Generic API Keyapi[_-]?key[=:]\s*\S+api_key=xyz123
Passwordpassword[=:]\s*\S+password=secret
Bearer TokenBearer\s+[a-zA-Z0-9._-]+Bearer eyJ...
guardrail = secret_redaction()
guardrail = secret_redaction(
patterns=[
r'sk-[a-zA-Z0-9]{32,}', # OpenAI
r'AKIA[A-Z0-9]{16}', # AWS
r'my-company-key-[a-z0-9]{20}', # Custom company format
],
)

When triggered, returns:

{
'tripwire_triggered': True,
'message': 'Potential secrets detected in output',
'severity': 'critical',
'metadata': {
'patterns_matched': ['openai_api_key', 'aws_access_key'],
},
'suggestion': 'Remove or redact all API keys and secrets from the response',
}
  • Data protection: Prevent accidental exposure of credentials
  • Compliance: Meet security requirements
  • Training safety: Catch model leaking training data
  • API security: Protect keys from logs and responses