Skip to content
Subako Docs
Esc
navigateopen⌘Jpreview
On this page

Model providers

The upstream a published agent version runs against — Subako's own models, or your account with an upstream of your own.

A model provider is the upstream an agent version is published against. A workspace sees two kinds, and model-provider list tells them apart in its type column:

type Whose account the call runs on Who registers it
platform Subako’s, drawn from your credit balance The deployment’s operator
workspace Yours, billed by your upstream You
subako model-provider list

Both are published against the same way, by passing the provider’s id to --model-provider.

Platform providers

Subako Cloud ships one, Subako, and every workspace can publish against it without registering anything or holding an upstream key. It speaks openai_responses and serves three models:

Model Best for
sparrow Simple, high-volume agent tasks — the lightweight one
crow Everyday tasks, balancing capability against cost
hawk Complex reasoning and coding — the largest one

Name one of them in the version config’s model, and the provider’s id in --model-provider:

{
  "system_prompt": "You are a helpful assistant.",
  "model": {
    "format": "openai_responses",
    "model": "hawk",
    "max_tokens": 8192,
    "context_window": 128000
  }
}

These calls draw on the organization’s credit balance, per token and at a rate that differs by model — Plans and billing carries the rates. A platform provider belongs to the deployment rather than to your workspace, so updating or deleting one is refused with a 403, and it does not count against the plan’s model-provider limit.

Bringing your own

Register an upstream account of your own to run against it directly. Subako does not bill these calls — you pay your upstream.

subako model-provider create \
  --format anthropic \
  --display-name "Anthropic production" \
  --base-url https://api.anthropic.com < key.txt

The API key is read from stdin, never a flag. --description takes a longer note; it is empty when absent.

Formats

A format is the protocol the upstream speaks, not a brand. subako model-provider formats lists what this server accepts:

Format Base URL it expects
anthropic The Anthropic Messages API, e.g. https://api.anthropic.com
openai_responses An OpenAI Responses-compatible endpoint

Any upstream speaking one of these protocols works — the hosted service, a gateway you run, a compatible provider — because the base URL is yours to choose.

Format has to match

An agent version may only publish against a provider whose format matches the one its model configuration speaks. Publishing an anthropic config against an openai_responses provider is refused at publish time.

{
  "system_prompt": "You are a helpful assistant.",
  "model": {
    "format": "openai_responses",
    "model": "your-model-id",
    "max_tokens": 8192,
    "context_window": 128000
  }
}

The key never leaves the proxy

When a run is claimed, the engine is handed a model proxy binding: a URL and a run token minted fresh for that claim. Model calls go through the proxy, which holds your provider key and attaches it.

The engine never has the key. A stale attempt’s token stops working the moment the run is re-claimed, so a run that was retried cannot keep spending against your account from its old attempt.

Deleting

subako model-provider delete <model-provider-id>

This permanently deletes the provider, taking its stored API key with it. Sessions already running remain, but further calls made through it are refused. Rotate by creating a new provider and publishing a new agent version against it.

Only a provider your workspace registered can be deleted; a platform one is refused with a 403.

Was this page helpful?