Safety filters block harmful content from entering or leaving the conversation in real time.
They run on user input and on agent output, scoring each turn against four content categories and blocking it before it affects the conversation. Filters can be configured at the project level and overridden per channel (voice and chat). Each category is enabled independently and tuned to a sensitivity level.Location
Safety filters are defined in up to three optional files:What safety filters control
Project-level filters
Defaults applied to every channel when no channel-specific override is set.
Channel-level overrides
Per-channel tuning for voice or chat, including a global enable toggle.
Categories
Violence, hate, sexual, and self-harm content.
Sensitivity levels
Choose how aggressively each category filters:
lenient, medium, or strict.Categories
All four categories must be configured. Each category has its ownenabled flag and level.
| Category | Description |
|---|---|
violence | Filters violent or graphic content |
hate | Filters hateful or discriminatory content |
sexual | Filters sexually explicit content |
self_harm | Filters self-harm related content |
Fields
| Field | Where | Description |
|---|---|---|
enabled | Channel files only | true or false — global toggle for the channel. Omit at project level; the project filter is active whenever any category is enabled. |
categories | All files | Map of the four categories. Required. |
categories.<name>.enabled | All files | true or false — whether this category is active. |
categories.<name>.level | All files | Sensitivity level. One of lenient, medium, strict. |
Sensitivity levels
| Level | Behavior |
|---|---|
lenient | Blocks only the most severe content. |
medium | Balanced filtering. |
strict | Blocks borderline content. |
Project-level example
Project-level filters omit the globalenabled key — the filter is active whenever at least one category is enabled.
Channel-level example
Channel files include a top-levelenabled flag that turns filtering on or off for the entire channel.
Validation rules
poly push rejects safety filter files that don’t satisfy these rules:
- All four categories (
violence,hate,sexual,self_harm) must be present. - Each category must set both
enabled(boolean) andlevel. levelmust be one oflenient,medium, orstrict.- Channel files must include the top-level
enabledflag as a boolean. - Unrecognized category keys cause a validation error rather than being silently ignored.
Best practices
- Keep settings consistent across channels unless a channel has a distinct risk profile (for example, a voice line that handles vulnerable callers may warrant
strictonself_harm). - Start at
mediumand adjust based on observed false positives and missed content. - Review filter outcomes periodically — the right level depends on caller demographics and use case, not just the deployment.
- Treat the channel files as overrides, not duplicates: only commit a channel file when it actually differs from the project default.
On the Agent Studio platform
The same settings can be configured in the Agent Studio UI. The platform docs cover the UI workflow and category descriptions in more depth:Project-level (General)
Defaults applied across every channel.
Voice channel
Per-channel overrides for voice.
Chat channel
Per-channel overrides for chat.
Related references
Agent settings
Configure personality, role, and rules alongside project-level safety filters.
Voice settings
Configure voice-channel greetings, disclaimers, and safety filter overrides.
Chat settings
Configure chat-channel greetings, style, and safety filter overrides.

