Guardrail policy that enforces token budgets scoped to conversations, users, or time windows.
This is a stateful policy that reads accumulated token counts from
the store adapter. The adapter must implement the
PhoenixAI.Store.Adapter.TokenUsage sub-behaviour.
Options
:max(required) — maximum allowed token count:scope—:conversation(default),:user, or:time_window:mode—:accumulated(default) or:estimated:token_counter— module implementingPhoenixAI.Store.Memory.TokenCounter(default:PhoenixAI.Store.Memory.TokenCounter.Default):window_ms— for:time_windowscope, the window duration in ms:key_prefix— for:time_windowscope, Hammer key prefix:rate_limiter— for:time_windowscope, the Hammer-compatible module to use (default:PhoenixAI.Store.Guardrails.TokenBudget.RateLimiter)
Assigns
The policy expects request.assigns to contain:
:adapter— the adapter module:adapter_opts— keyword options for the adapter
These are injected by PhoenixAI.Store.check_guardrails/3.