Dashboard
Masking settings
Choose per AI system whether personal information and secrets are blocked, masked with placeholders, or passed through, and whether users get the originals back.
Masking is configured in Guardrails → AI Firewall / Security Shield → Core Guardrails. Personal information and secrets have separate switches.
Block or mask
| Setting | What the AI provider receives | What the user experiences |
|---|---|---|
| Both off | The original text | Nothing changes |
| Mask on | The text with typed placeholders, for example <PERSON_NAME_1> | The request goes through; with restoration on, the user sees the originals in the answer |
| Block on | Nothing | The request is stopped with reason pii_blocked or secret_blocked |
Block takes precedence: when a block switch is on, its mask switch has no effect. Turning on Block Personal Information may also disable response streaming in some integrations, so that the full response can be checked.
What counts as personal information or a secret
- Personal information: names, contact details, addresses, dates of birth, national and government IDs, bank and card numbers, customer and employee identifiers and similar.
- Secrets: passwords, PIN codes, security-question answers, API keys and tokens, private keys, connection strings and similar.
The full list with placeholder types is in PII detection.
Restore masked values for the end user (Beta)
This switch appears when at least one mask switch is on and the system is in Active Guard. When enabled:
- Placeholders stay stable across the conversation.
- The integration restores the originals only on the user's device or in your application's response.
- The AI provider and AgentID's logs keep the placeholders.
When disabled, the user sees the placeholders in the answer. Leave it off for data-minimisation deployments where even your own application must not receive the originals back. See Restoration.
Shadow Mode
In Shadow Mode nothing is masked or blocked; the activity log records what would have been masked (simulated_decision: masked). Use it to review detections before you switch to Active Guard.
Content policies
To mask, block or alert on your own terms (project names, client names, internal codes), use Content policies.
SDK behaviour
The official SDK wrappers follow these switches automatically. You only need piiMasking: true (Node.js) or pii_masking=True (Python) to force local masking when the dashboard switch is off. See Node.js SDK.