Skip to content

Direct Anthropic

Some users go straight to Anthropic. They can still receive releases, rings and pinned versions; traffic-axis experiments need a gateway in the path.

Case Config delivery Traffic experiments
Direct, no gateway Files, MDM or dev container (same as the Bedrock path) Not possible (nothing to rewrite the route)
Direct upstream behind halo-proxy or Kong Same, with upstreams.anthropic Yes
apiVersion: halos.dev/v1
kind: Gateway
name: acme-direct
baseURL: https://ai.acme.example
protocols: {claude-code: anthropic-messages}
auth: {helperCommand: acme-sso-token --audience halos-gateway, ttlSeconds: 900}
models:
sonnet: {upstream: anthropic, model: claude-sonnet-5-5}
upstreams:
anthropic: {url: https://api.anthropic.com, kind: anthropic}

The provider key is injected by halo-proxy, not distributed to developers:

halo-proxy.yaml
upstreamHeaders:
anthropic: {x-api-key: "${ANTHROPIC_API_KEY}", anthropic-version: "2023-06-01"}

Model ids are examples. Mixing upstreams is fine: alias sonnet can go to orchestrator (Bedrock) for one ring and anthropic for another via an experiment’s routes. The Anthropic upstream is the path the deploy/compose mock (anthropic-mock) stands in for; a live Anthropic API account was not used.

With no gateway you still get version pins (requiredMinimumVersion/requiredMaximumVersion), model allowlists, MCP and hook locks, and permissions. You lose verified cohort stamping, traffic experiments and shadow.