Amazon Bedrock
Claude under AWS governance — SigV4-signed Bedrock Converse, cross-region inference profiles, and why this provider is deliberately last in auto-detection.
Bedrock is Claude for organizations that must keep inference inside their AWS account — billed to AWS, governed by IAM, logged in CloudTrail, contained by your VPC story. Stella speaks the Bedrock Converse dialect with standard SigV4 request signing; there is no separate API key, just AWS credentials.
Setup
export AWS_ACCESS_KEY_ID="AKIA..."
export AWS_SECRET_ACCESS_KEY="..."
export AWS_SESSION_TOKEN="..." # optional — for STS / SSO sessions
export AWS_REGION="us-east-1" # or AWS_DEFAULT_REGION; us-east-1 is the defaultAWS_REGION wins over AWS_DEFAULT_REGION when both are set; with neither, Stella uses
us-east-1. Short-lived STS or SSO credentials work as long as AWS_SESSION_TOKEN
accompanies them. Your IAM principal needs Bedrock invoke permissions for the models you
call, and the models must be enabled in your account's Bedrock console.
Stella reads only these explicit env vars — it does not consult the AWS credential
chain. AWS_PROFILE, ~/.aws/credentials, the SSO token cache, and IMDS/instance
roles are never read. If your setup is profile- or SSO-based, materialize static keys
into the environment first — e.g. eval "$(aws configure export-credentials --format env)" after aws sso login — or a run fails with missing credentials even though
aws CLI calls succeed in the same shell.
Selecting models
The provider id is bedrock; the default model is the cross-region inference profile
us.anthropic.claude-sonnet-4-5-20250929-v1:0.
stella --model bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0 run "harden the S3 policy module"The us. prefix is not decoration — it names an inference profile. Bedrock rejects
on-demand invocation of newer Anthropic models without a profile, so the bare
anthropic.claude-… model id fails where the profile succeeds. Stella defaults to the
profile for exactly this reason; use the profile form for any newer Claude model you
pin.
Last in auto-detection — on purpose
Bedrock sits last in auto-detection (alongside
Vertex), deliberately: AWS_ACCESS_KEY_ID is present in effectively every AWS
practitioner's shell, almost always for reasons unrelated to LLM inference. A generic
cloud credential must never hijack provider selection — if you want Bedrock, pin it with
--model bedrock/… or set it as a default in
settings.json:
{
"agent_engine_config": {
"default_model": "bedrock/us.anthropic.claude-sonnet-4-5-20250929-v1:0"
}
}The pin sits between the --model flag and auto-detection — an explicit flag still
wins, but with the pin in place Bedrock no longer loses to whichever direct-vendor key
happens to be in the shell.
In the pipeline
Bedrock's Claude is a strong worker or judge wherever a compliance boundary rules the
direct Anthropic API out — same family strengths, AWS wrapping. It slots into any of the
example profiles as the worker or judge seat; route it per agent with
agent_engine_config.
Catalog pricing
| Model | Context | In $/Mtok | Out $/Mtok | Cached-in $/Mtok |
|---|---|---|---|---|
us.anthropic.claude-sonnet-4-5-20250929-v1:0 | 200k | 3.00 | 15.00 | 0.30 |
List prices from Stella's seed catalog — actual Bedrock billing is set by AWS and your
agreements; verify in the AWS console. Your local catalog re-syncs from
models.dev via stella models refresh. See the
Model guide for the full cross-provider table.
Google Vertex AI
Gemini models under Google Cloud governance — project-scoped credentials via gcloud access tokens, the same generateContent wire dialect, deliberately last in auto-detection.
xAI
Grok over an OpenAI-compatible API — a distinct model family with strong reasoning, useful as an alternate judge, with grok-4 as the default model.