Bring your own provider
SPM does not meter inference. Models run on your provider accounts; SPM operates the surrounding memory plane.
Supported providers
The gateway natively proxies three dialects:
| Dialect | Endpoint | Typical providers |
|---|---|---|
| OpenAI Chat Completions | POST /v1/chat/completions |
OpenAI, DeepSeek, Azure OpenAI, most compatible APIs |
| OpenAI Responses | POST /v1/responses |
OpenAI Responses-API models |
| Anthropic Messages | POST /v1/messages |
Anthropic Claude |
There is no translation loss between dialects. An Anthropic-format request is projected for memory work, then forwarded to an Anthropic-compatible upstream in its native format without being rewritten through OpenAI's dialect.
Adding a provider
In the console under Providers:
- Choose the provider type and paste the endpoint (for Azure, the full deployment URL).
- Enter the provider API key. It is written to the credential vault and is never returned to the browser, written to memory, or logged.
- Pick the default model and optional request/context policies.
The credential is bound to your tenant: tenant A cannot access tenant B's provider, and vice versa.
What happens per request
your key -> tenant + provider resolution -> memory recall
-> deterministic compression -> provider forwarding (native dialect)
-> streaming response -> async ingest -> signed receipt
Recall and forwarding are separate stages. The provider does not control what SPM remembers, ranks, admits, or compresses.
Provider failures
An upstream error maps to a standard provider-shaped error with the upstream status, allowing existing retry logic to continue. A provider outage affects only requests through that provider; the memory plane and other providers remain available.
Cost model
- You pay your provider for inference as before, reduced by any compression savings.
- You pay SPM for the memory plane (subscription/usage per your plan).
- SPM's extraction, recall ranking, and compression use deterministic code and do not add to an inference bill.