SPM SPM Docs

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:

  1. Choose the provider type and paste the endpoint (for Azure, the full deployment URL).
  2. Enter the provider API key. It is written to the credential vault and is never returned to the browser, written to memory, or logged.
  3. 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