OpenAI
GPT over the OpenAI Responses API — reasoning effort, verbosity, and service tiers mapped natively, with gpt-5.5 as the default model.
OpenAI's gpt-5.5 pairs top-tier reasoning with a 400k context window at a mid-tier
price — which makes it both a strong worker and the catalog's best cross-family judge over
a Claude or GLM worker. Stella speaks the OpenAI Responses dialect (not the legacy
chat-completions shape) against https://api.openai.com/v1.
Setup
export OPENAI_API_KEY="sk-..."OpenAI sits third in auto-detection, so the key
alone is enough. Prefer a file? Store the key in
~/.config/stella/credentials.toml, or rename the
env var Stella reads with providers.openai.api_key_env — see
overriding the key source.
Selecting models
The provider id is openai; the default model is gpt-5.5.
stella --model openai/gpt-5.5 run "add integration tests for the exporter"
export STELLA_MODEL=openai/gpt-5.5Custom base URL
Route the built-in provider through an Azure OpenAI endpoint or an OpenAI-compatible proxy by overriding the base URL:
{
"providers": {
"openai": {
"base_url": "https://my-resource.openai.azure.com/openai/v1"
}
}
}One constraint: the built-in openai provider's dialect is fixed to OpenAI
Responses, so the endpoint must speak it (Azure's /openai/v1 surface does). For a
gateway that only speaks legacy chat completions, define a
custom provider id
with the default openai-compatible dialect instead. --base-url (env form
STELLA_BASE_URL) does the same for one run and outranks the settings value; in a
project's .stella/settings.json, base_url is ignored unless
STELLA_TRUST_PROJECT=1.
Reasoning-model parameter rules
The Responses API has a hard rule for reasoning models, and Stella honors it: for the
gpt-5 and o-series families, temperature and top_p are omitted from the request —
the API rejects them outright, and Stella drops them rather than letting your run die on a
400. What you control instead:
| Stella setting | Wire field |
|---|---|
effort (low → max) | reasoning.effort |
verbosity (low / medium / high) | text.verbosity |
service_tier | service_tier — auto, default, flex, or priority |
service_tier: "flex" trades latency for a cheaper rate on tolerant workloads;
"priority" does the reverse. Set any of these per agent in
agent_engine_config.
In the pipeline
gpt-5.5 is the judge of choice when your worker is a Claude or GLM model — a different
family judging at high effort resists same-model bias. It appears as the judge in the
max-quality profile and as an alternate judge in the
balanced profile; its 400k window and mid price also make it a
first-rate worker in its own right. Wire it per agent with
agent_engine_config.
Catalog pricing
| Model | Context | In $/Mtok | Out $/Mtok | Cached-in $/Mtok |
|---|---|---|---|---|
gpt-5.5 | 400k | 1.25 | 10.00 | 0.125 |
List prices from Stella's seed catalog — verify with OpenAI; your local catalog re-syncs
from models.dev via stella models refresh. The cached-input rate
is what most worker input costs mid-run (see the
Model guide).
Anthropic
Claude over the native Anthropic Messages API — extended thinking mapped from Stella's effort tiers, first-class prompt caching, and claude-fable-5 as the default model.
Google Gemini
Gemini over the native generateContent API — the 1M-token context window, thinkingLevel mapped from Stella's effort setting, and gemini-3-pro as the default model.