This is in development. Details may change before it is available.
- A key attached to an AI system is checked against that AI system’s live version. If the AI system has no live version, its requests are not checked, and the organization’s guardrails do not stand in for it.
- An organization key, a person’s key, and a request that carries the caller’s own provider key are checked against the organization’s live version, if it has one.
The order of checks
1
Before the model
Guardrails that apply to What people send check every message in the request, whatever its role, and the arguments of every tool call in it. A block stops the request: it never reaches the model provider. A mask replaces the sensitive text before it is sent. A request is checked once, even when Altrum then tries a fallback model.
2
After the model
Guardrails that apply to What the model answers check every answer the model returns, including a refusal and the arguments of a tool call. A block withholds the answer. A mask replaces the sensitive text before your application receives it.
A check that cannot be made stops the request
If Altrum cannot check a request, for any reason, the request is not sent to the model. If it cannot check an answer, the answer is withheld. A failed check never lets unchecked text through. A guardrail setup that Altrum cannot read is treated the same way: the request is refused, not let through. A key whose owner has no live guardrails is not checked, and the request is recorded as unguarded.Streaming
- When every guardrail on answers is set to Log only, the answer streams to your application as the model writes it. Altrum checks the whole answer once the stream ends and records what it found. The last event of the stream waits for that check.
- When any guardrail on answers can Block or Mask, Altrum holds the answer, checks it whole, and then streams it to your application. The first words arrive later, and no unchecked text ever reaches the caller. A stream that is cut off while it is held releases nothing.
- When an answer is blocked, the caller receives one error and no end marker.