Skip to main content
Anthale works by turning policy into a runtime decision. Your application sends content and metadata, Anthale evaluates that request against a policy, and your code enforces the returned action.

The request lifecycle

The lifecycle is short, but each stage matters. First, your application sends content to Anthale with a policy identifier and optional metadata. Next, Anthale runs the guardrails configured in that policy for the request path you are evaluating. Each configured guardrail evaluates the content against the policy settings. Anthale then resolves the outcome into one returned action, and your application applies it.

Why policies matter in that flow

Guardrails do not run in isolation. Policies decide which guardrails run, where they run, how aggressively they should trigger, and which lists or rule settings apply. That is why Anthale feels stable in production when it is configured well and noisy when it is not. The behavior you see at runtime is policy behavior made visible.

What the actions mean

allow means the request can continue unchanged. detect means the request can continue, but you should treat the result as operational signal. redact means the request can continue only after you replace the original content with the masked version Anthale returned. block means the request or response should stop at that boundary.

Why the application still matters

Anthale evaluates the policy, but your application still owns the product behavior that follows. That includes whether to stop the request, whether to log a detection, how to substitute redacted content, and how to present the result to users or operators.

Where Anthale fits best

Anthale is most useful at trust boundaries: before model invocation, before retrieved or tool-generated context enters the model on the input path, and before model output reaches a user or triggers an automated action. The same pattern repeats at each boundary even if the content source changes.

Next steps

Read Policies for the contract Anthale evaluates, or go to the Python Direct SDK Path to see the runtime flow in code.
Last modified on March 19, 2026