How enforcement works
What Intent Gateway does with each tool call, and what happens when ArmorIQ can't decide.
Enforcement applies when the base URL names an agent (/v1/t/<gateway-key>/a/<agent-id>). Without an agent, the gateway records the traffic and changes nothing.
Each model turn
- Your agent sends a request. The gateway forwards it to the provider with your provider key untouched.
- The model replies. If the reply contains tool calls, the gateway registers them with ArmorIQ as a plan and receives a signed intent token for it.
- Each tool call is checked against the agent's active policy, using that token.
- The gateway relays the reply. Allowed tool calls are unchanged. Blocked tool calls are removed, and a note naming the rule is added to the reply's text.
Streaming replies follow the same steps. Text streams to your agent as it arrives, and each tool call is released or withheld once its check returns.
Verdicts
| Verdict | What your agent receives |
|---|---|
| Allow | The tool call, exactly as the model wrote it. |
| Block | No tool call. The reply's text ends with a note such as Tool call "record_payment" was blocked by policy: block:record_payment#0. |
| Hold | Treated as a block today. The gateway creates an approval request in the dashboard, but approving it does not release the agent's next attempt yet. |
An agent with no active policy has its tool calls allowed, and each one is recorded.
When ArmorIQ can't decide
If the check can't complete because ArmorIQ is unreachable, slow or rate limited, or the plan is refused, the gateway withholds the named agent's tool call and gives the reason in the note. Calls are never released just because a check failed.
| Situation | Result |
|---|---|
| The agent in the URL doesn't exist in your organization | Every tool call is withheld with agent_unresolved |
| The agent is disabled or still a draft | Every tool call is withheld |
| ArmorIQ is unreachable, times out or rate limits the key | The tool call is withheld |
What is recorded
- A trace per request in Observability: the model, token use, each tool call and its verdict, under the service
armoriq-llm-gateway. - The plan for each turn that asked for tools, with its signed intent token.
- The agent's tools. When a named agent's requests declare tools, the gateway sends that list to ArmorIQ, so Policy Studio can show them when you write rules.
Your provider key is forwarded to the provider unchanged. The gateway never stores or logs it.