COMPARISON

Wäg and LiteLLM: same API, different layer

LiteLLM is a very good AI gateway, and if what you need is multi-provider routing behind one endpoint, it will keep serving you well. Wäg speaks the same OpenAI-compatible API and imports LiteLLM configuration — not to replace a gateway with another gateway, but because most teams reach a point where the gateway is not the thing that is strained.

THE RELATIONSHIP

Not a competitor at the same layer

LiteLLM
AI gatewayRouting · virtual keys · caching · fallbacks · per-key budgets
Wäg
AI control planeTenant isolation · stacked budgets · guardrail chains · agent governance · evidence ledger · residency
AI gateway (included)Routing · virtual keys · caching · fallbacks · per-key budgets

Same OpenAI-compatible API surface. Same configuration, importable.

LICENCE BOUNDARY

Free here. Enterprise there.

Both projects are open source with a commercial tier, so the question was never whether there is a paid edition. It is where each one draws the line. LiteLLM's enterprise documentation lists what their licence key turns on, and most of that list is Apache-2.0 in Wäg. On multi-tenancy the difference is structural rather than a matter of degree: in their published database schema an organization carries a budget, spend rollups and a membership list, and a team points at it through an optional foreign key, which makes it a grouping level above teams. In Wäg an organization is an authorization boundary that every request is checked against. Where we gate the same capability they do, the table says so.

CapabilityLiteLLMWäg
Multi-tenant architecture: orgs, teams, relationship-based accessEnterpriseApache-2.0
Role-based access controlEnterpriseApache-2.0
Budgets below the key: per model, per applicationEnterpriseApache-2.0
Guardrails scoped per key and per teamEnterpriseApache-2.0
Managed guardrail engines: moderation, secret and prompt-injection scanningEnterpriseApache-2.0
Secret manager integration: Vault, Key Vault, Secrets ManagerEnterpriseApache-2.0
Multi-region operationEnterpriseApache-2.0
Payload logging policy, per organization, with a member-level opt-outEnterpriseApache-2.0
Hash-chained, signed request evidenceNot listedApache-2.0
Jurisdiction-pinned routingNot listedApache-2.0
Reporting of local model use from employees' devicesNot listedApache-2.0
Agent identity, runs and run limitsNot listedApache-2.0
Tool-call policy with human approvalsNot listedApache-2.0
Data-flow control: the lethal trifectaNot listedApache-2.0
MCP tool pinning and drift quarantineNot listedApache-2.0
Short-lived agent credentials, no standing keysNot listedApache-2.0
Access grants for proxied third-party API callsEnterpriseApache-2.0
An agent's outbound web traffic, by host rule and decided per connectionNot listedApache-2.0
Agent payments: spend mandates and railsNot listedEnterprise
Approving agent tool calls in Slack or TeamsNot listedEnterprise
Importing agents from Foundry, AWS, Entra Agent ID and Gemini EnterpriseNot listedEnterprise
TLS inspection of agents' outbound trafficNot listedEnterprise
SSO for the admin consoleEnterpriseEnterprise
SCIM provisioningEnterpriseEnterprise
JWT and OIDC on the data planeEnterpriseEnterprise
Long-retention audit packsEnterpriseEnterprise
Guardrails on provider-native pass-through trafficNot listedEnterprise
MCP servers acting as the signed-in user (OAuth)Not listedEnterprise
Customer-managed encryption keys, FIPS posture reportingNot listedEnterprise
Custom brandingEnterpriseEnterprise
Platform budgets that organizations cannot changeNot listedEnterprise
A read-only auditor roleNot listedEnterprise
Exit export: everything an organization needs to move elsewhereNot listedEnterprise
AI content marking: C2PA, watermarks, text fingerprintsNot listedEnterprise
Enforcement on employees' devices for local modelsNot listedEnterprise

Fair is fair. Their enterprise tier also carries IP allowlists and a SOC 2 Type II report. We have neither today.

LiteLLM's column is their own enterprise documentation, which states that a licence key enables the features listed there. Not listed means a capability is not named on that page, which is not the same as not possible. Wäg's column is the licence split the gateway enforces: an Enterprise capability is a module that a signed licence has to name. The agent rows marked Not listed are a different kind of Not listed: their agent gateway is not an Enterprise feature at all, so those capabilities are missing from their product rather than priced into their licence.

THE AGENT LAYER

Both ship an agent gateway. Only one governs the agent.

LiteLLM added an A2A agent gateway, and it does the obvious things well: register agents, control which teams and keys may reach them, attribute the cost. Two rows are genuine parity. The rest are where the two products stop being the same kind of thing.

CapabilityLiteLLMWäg
A2A agent gateway with per-agent access control and cost attributionYesYes
An emergency stop that refuses the agent at the gatewayWebhook to the agentYes
Limits on a single agent runYesYes
A tool call held for a named human approver, with the decision recordedNot documentedYes
Data-flow control: a run that read private data cannot then call an egress toolNot documentedYes
MCP tool definitions pinned, and quarantined when the server changes themNot documentedYes
Short-lived agent credentials bound to a run, with no standing keysNot documentedYes
Which destinations an agent may reach, decided per call: tool policy, approval, data-flow labelNot documentedYes
The agent's whole outbound web traffic through the gateway, not only its model and tool callsNot documentedYes
Agents found from their traffic, not only the ones somebody registeredNot documentedYes
Agents imported and kept in sync from Foundry, AWS Agent Registry, Entra Agent ID and Gemini EnterpriseNot documentedEnterprise
A held tool call approved or denied in Slack or Microsoft TeamsNot documentedEnterprise
TLS inspection of an agent's outbound traffic, with request rules and guardrailsNot documentedEnterprise
Agent payments: spend mandates, x402, AP2, ACP and UCP checkoutNot documentedEnterprise

LiteLLM's column is what their own documentation and public repository show. Not documented means the capability is not described there, which is not the same as impossible. Three rows deserve the detail. Their kill switch fires a webhook at the agent's own runtime and, in their words, leaves the agent registered and enabled on the LiteLLM side; ours refuses the agent at the gateway, on every replica and region, and ends a stream that is already running. Their require_approval is OpenAI's field: set to anything but never, the tool call is handed back to the client to run — nothing is held, nobody is named, nothing is recorded. And for agent payments, a code search of their repository for x402 and AP2 returns nothing at all. On third-party APIs the difference is not the proxying. Their pass-through endpoints route to any external API with a credential set in the configuration, and grants per key and team are an Enterprise feature. What is absent is the decision: the destination is a static route rather than something a given agent may or may not reach, no rule reads the call's arguments, no approval can hold it, it carries no data-flow label, and it does not count against a run.

How agent governance works in Wäg

WHEN TO KEEP LITELLM

Cases where LiteLLM is the right answer

Genuinely. If you recognise your situation here, adopting a control plane buys you operational surface you do not need yet.

  • One team, one or a few services, and you want multi-provider today.
  • You use import litellm inside application code for its in-process routing and callbacks, and value that directly.
  • You have custom Python callbacks in the request lifecycle that would be real work to reimplement.
  • Your provider list includes something long-tail that Wäg does not cover yet.
  • Your governance requirements are genuinely satisfied by per-key budgets.
WHEN TEAMS MOVE

The symptoms, not the feature list

  • Budgets need to match your org chart. Per-key limits cannot express "this team gets €4k, no single user more than €500, and marketing's experiments cannot eat engineering's capacity."
  • Policy has to apply to applications that never opted in. A rule you can only enforce where somebody remembered to add it is not a control.
  • Agents made the surface much larger. One user turn becomes N model and tool calls against remote MCP servers. Per-server auth, tool ACLs and per-hop audit stop being nice-to-have.
  • Somebody asked what AI cost, by team, last quarter. And answering it required a data project rather than a dashboard.
  • Compliance needs records, not intentions. Since 2 August 2026, GPAI enforcement powers and Article 50 transparency obligations under the EU AI Act carry penalty exposure. Logging and traceability have to be demonstrable.
  • The gateway became load-bearing. Once every product path is behind it, a Python process with an interpreter and a deploy-time dependency tree is a different risk conversation than it was at ten requests a minute.
IDENTICAL

What does not change at all

OpenAI-compatible APIYour SDKModel aliasesStreamingTool callingVisionSelf-hostedOpen sourceYour provider accounts and keysNo vendor in the data path
ARCHITECTURE

Design commitments, not a feature count

Feature tables go stale in a quarter. These are structural choices that do not change with a release.

DimensionLiteLLMWäg
Core abstractionProvider SDK dispatch behind HTTPInference request: modality, operation, lifecycle, cost, policy
RuntimePythonRust — one distroless, non-root binary
LifecyclesSync, streamingSync, streaming, durable async jobs, realtime sessions
RoutingStrategy selection plus fallbacksStructural scoring → hard capability floors → cheapest eligible; explainable in headers
CachingExact, optional semanticExact → canonical → near-dup → semantic, with anti-false-hit gates
BudgetsPer-keyOrg → team → user → application → model → key, stacked, with fair-share caps; a breach is refused before provider spend
PolicyGuardrail hooksOrdered chain: pre-call, mid-stream windowed, post-call
Agent / MCPMCP and A2A gateway: per-server auth, access per key and teamPlus tool policies with named approvers, data-flow rules, tool pinning, run limits, per-hop budget and audit
Local and on-device modelsReached as a provider from the proxyWäg Edge on laptops and in iOS and Android apps: sign-in and reporting open source, device enforcement and fleet with Enterprise
IdentityMaster key plus virtual keysPlus OpenFGA tenancy; OIDC SSO, SCIM 2.0 and IdP tokens on /v1 with Enterprise
Kubernetes lifecycleOfficial Helm chart; operators come from the communityFirst-party operator with an OLM bundle, reconciling the gateway and its catalog; a Helm chart too
Extension modelPython callbacks, in-processHTTP webhook engines, out-of-process
SupplierUS-incorporatedBitkaio Ltd, UK — European, outside the EU

If LiteLLM is doing its job, keep it. If the thing that is actually strained is governance rather than routing, that is a different layer — and it is the one Wäg is built for.

One endpoint. Every model. Complete control.

Start with the open source

Run it in your own infrastructure

Everything you need to run a control plane in production is Apache-2.0 and stays that way — routing, HA, caching, failover, budgets, policy, MCP, jobs and observability. Self-hosted, no account, no phone-home.

$ docker run -p 4000:4000 <registry>/waeg-gateway:<version>

Not a working pull: the images are not public yet. Design partners receive the registry details privately.

Deploy in 5 minutes
Design partnership

Shape it as a design partner

Wäg is not publicly released yet. We are working with a small cohort of teams running multi-provider AI in production, and serious about governance and sovereignty, to harden the control plane on real workloads.

  • Every Enterprise capability included, at no licence cost
  • Hands-on migration — we do it with you, including from LiteLLM
  • A direct line to the engineers building it, and real influence on what ships next
Apply to the program