Behavior & Limits
Guarantees, limits, and platform-specific notes for Alien AI.
Guarantees
No Keys in Your Application. On AWS, GCP, and Azure your workload's injected credentials — IAM role, Workload Identity, Managed Identity — authorize every call. Nothing in the binding is a credential, so there is no key to leak, rotate, or scope, and inference bills to the customer's cloud account.
Private Endpoint. The AI endpoint is reachable only from inside the workload it is linked to. It is never exposed on the network, so there is no endpoint to secure and none to misconfigure.
Checked Model List. getAvailableModels() reports what this account and region can invoke: Alien's curated list for that cloud, narrowed by a live check. A model the customer has not enabled normally does not appear; the exception is one the cloud gave no clear answer for, which is kept rather than dropped.
Forwarded, Not Translated. Alien speaks each model's own protocol rather than converting between them, so a request reaches the provider in the shape you wrote it and the reply comes back as the provider wrote it. Streaming works everywhere, and a provider error arrives as that provider's own error rather than something Alien invented. Claude on AWS is the one exception, and it is described under Protocols.
Limits
| Limit | Value | Notes |
|---|---|---|
| Max request body | 32 MiB | Returns 413. Providers cap requests well below this, so their limit is the one you meet. |
| Model-list check | up to 10 s per model, run concurrently | Later calls are instant once every model got a definite answer; otherwise the next call checks again. Never affects inference. |
| Model id | Must be in Alien's list for that cloud | An id outside it returns 404 instead of reaching the provider. |
| Azure throughput per model | 1 GlobalStandard unit | A deliberately conservative default. Raise it per model in the Azure portal; a re-provision resets it. |
id | letters, digits, hyphens and underscores ([A-Za-z0-9-_]), up to 64 characters | Immutable after create. |
Beyond the body cap above, Alien adds no limits of its own to inference. There is no rate limit, no request timeout, no concurrency cap, and no token ceiling — the cloud provider's quotas and deadlines apply directly, and a 429 from the provider reaches you unchanged. A public workload needs its own limits in front of it.
Changing a live resource. The id is immutable. Nothing else is configurable, so there is no resize, no version pin, and no update that can disrupt a running workload. Model choice lives in your code, not the stack.
Protocols
Which wire format a model speaks is fixed by the model, and the client has to match it. Alien picks the upstream from the model in the body, not from the path, so the body format is what has to be right:
| Models | Protocol | Endpoint | Client |
|---|---|---|---|
| Claude, on every cloud | Anthropic Messages | /v1/messages | Anthropic SDK, or any Messages client |
| Everything else | OpenAI Chat Completions | /v1/chat/completions | OpenAI SDK, createOpenAICompatible, … |
| GPT-5 family (AWS) | OpenAI Responses | /v1/responses | OpenAI SDK Responses API |
Sending a Responses-only model to /v1/chat/completions returns a 400 naming the right endpoint, and no request reaches the cloud, so nothing is billed.
Claude on AWS is the exception. Bedrock serves Claude through an older Anthropic schema, so Alien adapts the request there: Anthropic's server-executed tools such as web search and code execution are dropped, along with a few recent fields, and mid-conversation system messages are folded into the turn before them. Those edits are AWS-only. One thing is not: Alien forwards only a known set of anthropic-beta families on every cloud, so a beta outside that set is dropped on GCP and Azure too.
Model Availability
The list is checked against the cloud on first use and then reused for the life of the workload. Model access changes only when someone enables a model in the cloud console, and a redeploy picks that up — there is no expiry to wait out.
A model the cloud gives no clear answer on stays in the list and is rechecked on the next call, so a transient cloud problem never shrinks your model menu and the check never fails a deploy. Such a model can still fail when you call it, so handle an error from a model you have not used before.
Claude is the one family gated behind a one-time step, on all three clouds — see Models & Prerequisites. Everything else works the moment the resource deploys, and the deploy succeeds either way.
Platform Notes
AWS — Amazon Bedrock
Nothing is provisioned — Bedrock is an account-level API, so deploying the resource grants access and nothing more. The widest model selection of the three clouds, including the GPT-5 family and the full Claude range.
GCP — Vertex AI
Alien enables the Vertex AI API and grants a custom role limited to prediction, rather than the broad roles/aiplatform.user. Gemini and Claude are available.
Azure — Azure AI Foundry
The only cloud where Alien creates something lasting: an AI Foundry account plus deployments for three OpenAI models, which you'll see in the customer's portal and on their bill. Deleting the resource deletes the account. Claude is the exception — a first Claude deployment requires accepting Marketplace terms in the portal, which no API can do on your behalf, so it stays a one-time manual step and Claude appears once that deployment exists.
Kubernetes / On-Prem
Alien does not provision AI here. Supply an external AI binding at deploy time with your own provider key, and the SDK calls that provider directly. Add the binding at the same time as the resource: without one the deployment fails, and it fails at deploy rather than at validation.
Local
A bring-your-own-key binding using OpenAI, with the key from OPENAI_API_KEY; alien dev fails with an actionable error if it is unset. Cloud model ids do not resolve, and getAvailableModels() returns a short built-in list rather than querying the provider. Set ALIEN_AI_LOCAL_BASE_URL to point at any OpenAI-compatible server instead, including one running on your machine.
Design Decisions
No configuration on the resource. Model, temperature, and every other knob belong to the request, not the stack, so changing model does not require a redeploy and one stack file works across three clouds whose model menus differ.
Forward, don't translate. A translation layer over one OpenAI-shaped API drops whatever it has not been taught — tool-calling variants, thinking blocks, new fields. Forwarding gives you the model's real API, at the price of picking a client that matches the model. Bedrock's older Claude schema is the one place Alien has to compromise, which is why it is called out under Protocols.
The model list is checked, not declared. No cloud answers "which models can this account invoke". A published list would be wrong for every customer who hasn't enabled a model, and wrong in the direction that fails at runtime, so Alien checks instead and reports what actually answered.
No Alien-level rate limit. Any limit Alien imposed would be a second, weaker ceiling below the provider's real quota, and a number you could not plan against.
Delete removes the Azure account. On Azure, deleting the resource deletes the AI Foundry account and its model deployments, consistent with every other Alien resource. AWS and GCP have nothing to delete.