v1.104.3 - Decisions Providers, SDK and Guardrail
Deploy this version
- Docker
- Pip
docker run \
-e LITELLM_MASTER_KEY=sk-<paste-a-long-random-key> \
-e DATABASE_URL=postgresql://<user>:<password>@<host>:5432/<dbname> \
-e STORE_MODEL_IN_DB=True \
-p 4000:4000 \
docker.litellm.ai/berriai/litellm:1.104.3
pip install litellm==1.104.3
This release is published as ghcr.io/berriai/litellm:v1.104.3. See the GitHub release and the full releases page
Decisions requests that send safety_identifier to a provider other than OpenAI now return 400 instead of 200 with the identifier silently dropped. This covers Perplexity, TypeSafe, OpenRouter, Strands Decider and Cloudflare on /v1/decisions, /v1/systemone and litellm.decisions(). Set drop_params: true on the deployment, under litellm_settings, in the request body or on litellm.drop_params to keep the old behavior. /v1/systemone requests are also logged with call type asystemone instead of adecisions. See PR #44955 and PR #45846
v1.104.3 is a patch release on top of v1.104.2. It backports the Decisions follow-ups from main: two more providers, Strands Decider on AgentCore, a litellm.systemone() SDK entry point, OpenRouter billing from the cost OpenRouter reports, a decision model guardrail and decision-model Auto Router setup. There are no new database migrations. The v1.104.3 tag points at 3645fe0
Decisions API
- New providers:
hosted_vllm/(requiresapi_base, orHOSTED_VLLM_API_BASE) andazure_ai/for Microsoft-Decision-1, joining OpenAI, Perplexity, TypeSafe, OpenRouter, Cloudflare and Strands Decider. See the Decisions docs - Strands Decider on AgentCore: a
strands_decider/deployment whoseapi_baseis an AgentCore runtime ARN callsInvokeAgentRuntime, signed with the deployment'saws_*credentials - SDK: the new
litellm.systemone()takes the System One format andlitellm.decisions()takes the OpenAI format.litellm.decisions(state=...)still works and warns that it is deprecated in favor oflitellm.systemone() safety_identifier: providers that cannot take it return 400 unlessdrop_paramsdrops it. OpenAI keeps passing it through from either route- Spend tracking: OpenRouter Decisions calls and the
/openrouter/alpha/decisionspass-through bill the cost OpenRouter reports inusage.cost - Decision model guardrail: a new
decision_modelguardrail screens messages and tool-call arguments with admin-written yes/no questions, each set to block or log above its threshold, and is configured from the Admin UI and the Guardrail Garden - Auto Router: a new router can use an onboarded decision model deployment as its classifier, and existing router configurations keep working
- Admin UI and docs: TypeSafe and Strands Decider are in the Add Model provider list, and Swagger UI describes
/v1/decisionsand/v1/systemone
New Model Support (1 new model)
| Provider | Model | Context Window | Input ($/1M tokens) | Output ($/1M tokens) |
|---|---|---|---|---|
| Azure AI | azure_ai/Microsoft-Decision-1 | - | $0.042 | $0.00 |
What's Changed
- Dispatch Decisions through per-provider configs and the shared HTTP handler - PR #45129, PR #45130, PR #45442
- Add the hosted vLLM Decisions provider - PR #45501
- Add
azure_ai/Microsoft-Decision-1and support it on the Decisions API - PR #45639, PR #45673, PR #45717 - Call a Strands Decider on an AgentCore runtime ARN - PR #45678
- Add
litellm.systemone()and keeplitellm.decisions()to the OpenAI format - PR #45846 - Refuse
safety_identifieron providers that cannot take it unlessdrop_paramsdrops it - PR #44955 - Bill OpenRouter Decisions and the Decisions pass-through from
usage.cost(the Decisions and pass-through billing parts only) - PR #45640 - Add TypeSafe and Strands Decider to the Add Model provider list, and describe both Decisions routes in Swagger UI - PR #45335, PR #45838
- Add the decision model guardrail with an Admin UI flow - PR #45663, backported in PR #45900, with the Add Guardrail provider list fixed after both backports landed in PR #45936
- Pick an onboarded decision model as the Auto Router classifier - PR #45913, backported in PR #45914
- Rebuild the Admin UI bundle - PR #45924
The Decisions follow-ups and the version bump are backported together in PR #45906
Full Changelog
https://github.com/BerriAI/litellm/compare/v1.104.2...v1.104.3