The exact install we ran
The test used Python 3.11.14, LiteLLM 1.93.0, Node 20 or newer, AgentGuard Spend 0.15.13, and OpenAI 6.49.0.
Start LiteLLM with litellm-config.yaml, bound to 127.0.0.1 on port 40124. Then point a guarded OpenAI client at that local endpoint:
Three real outcomes
We launched a real local LiteLLM proxy and routed its allowed request to a local OpenAI-compatible fixture. LiteLLM logged exactly one successful POST. Both blocked calls stopped in the Node client before reaching LiteLLM.
Offline verification
AgentGuard never received prompts, completions, provider keys, or signing keys. LiteLLM and the configured model provider still receive allowed requests. Blocked requests never reach either one.
The boundary that matters
This is a client-side bound, not a LiteLLM proxy plug-in. Anyone who can call the proxy URL directly can bypass it. Restrict proxy ingress to the guarded application, keep the raw client private, and do not publish the proxy endpoint. If you need centralized enforcement for many untrusted callers, this client-side pattern is not sufficient.
- spend cap
- hard client preflight
- capability ceiling
- hard client preflight
- blocked proxy calls
- zero
- offline chain
- valid, tamper rejected
The complete tested client and local fixture are at sdk-openai-compatible.mjs and mock-openai-server.mjs.