Façades erin. Eén model erdoorheen.
De meeste AI gateways zijn HTTP-reverse-proxy's waar een modellijst aan is gegroeid: de request-vorm ís de abstractie, dus elke nieuwe modaliteit of levenscyclus wordt ergens anders een uitzonderingsgeval. Wäg vertrekt vanuit het inference-request als domeinobject en behandelt de API-vormen van OpenAI, Anthropic en Gemini als façades die daarop worden afgebeeld.
Zes zaken die first-class zijn in plaats van afgeleid
In een HTTP-gevormd gateway worden deze afgeleid uit een pad, een header of het gedrag van een provider-SDK. Hier zijn het velden op een domeinobject — daarom kunnen policy, routing, caching en kostentoerekening er uniform over redeneren.
Die ene beslissing is de reden dat chat, embeddings, vision, audio, asynchrone videojobs en realtime-sessies één gedeeld pad voor policy, routing en kostentoerekening gebruiken in plaats van zes.
Spreek het dialect, behoud de getrouwheid
Clients sturen requests in OpenAI-, Anthropic- of Gemini-vorm, of direct in de native inference-request-vorm. Native adapters behouden providerspecifiek gedrag — tool calling, vision, gestructureerde output — in plaats van alles gelijk te schakelen via één kleinste gemene deler en zo functionaliteit aan de randen te verliezen.
Negen fasen, in vaste volgorde
Elk request doorloopt dezelfde fasen. Identiteit, modeltoegang en budget worden bepaald voordat er iets wordt aangeroepen; input-policy draait vóór de cache, zodat ook een gecachet antwoord is gescreend; routing kiest de deployment; output- en toolbeleid draaien op het antwoord; kosten, verdicts en bewijs vallen op de terugweg aan.
- 01Authenticeren
Virtuele key, agent-token of een bedrijfs-IdP-token op /v1 (Enterprise). Bepaalt org, team, gebruiker, applicatie en agentrun.
✗ 401 - 02Modeltoegang
Modelrechten, ingeperkt door de allowlist van de key, bepalen welke aliassen deze identiteit mag aanroepen.
✗ 403 - 03Budget
Rate limits en budgetten worden gereserveerd op key, org, team, gebruiker, applicatie en model. Ze moeten allemaal slagen.
✗ 429 — geen providerkosten - 04Policy (vóór de call)
Geordende guardrail-keten op de input: PII, injection, moderatie of uw eigen webhook. De cache ziet de gemaskeerde prompt.
✗ BLOKKEREN · ◑ MASKEREN · ◐ REDIGEREN - 05Cache
Exact → canoniek → near-dup → semantisch, elke tier beveiligd tegen valse treffers. Een treffer slaat de provider en de outputfasen over.
✓ HIT — retour, geen provider-call - 06Routeren
Capability-filter, residentie, sessie-affiniteit, en dan kiest de routingstrategie de deployment. Een failover verlaat nooit de toegestane jurisdicties.
- 07Aanroepen
Providerdialect, echte SSE-streaming, failover binnen dezelfde alias, dan geordende fallbacks; elke poging schrijft een egress-regel in het register. Mid-stream policy draait op een schuivend venster.
- 08Policy (na de call)
Output-guardrails draaien op het volledige antwoord. Toolaanroepen die het model teruggeeft, worden beoordeeld door het toolbeleid: toegestaan, verwijderd met een notitie, of geweigerd.
✗ 403 · verwijderd - 09Afrekenen
Budgetten worden verrekend, het register legt de uitkomst vast, en tokens, kosten, verdicts en de routingbeslissing landen als requestlogs, OTEL-traces en Prometheus-metrics.
Een proxy stuurt een request door. Dit bepaalt wat het request mag zijn — en daarin zit precies het verschil tussen een gateway en een control plane.
Vier levenscycli, één policy-pad
Omdat de levenscyclus een veld op het request is en geen implementatiedetail van een endpoint, geldt voor alle vier dezelfde governance.
Synchroon
Request erin, completion eruit, alle policy inline toegepast.
Streaming
Echte server-sent events via LiveStream-adapters — geen volledige upstream-buffer op het happy path. Mid-stream policy kan een problematische stream afbreken voordat die de client bereikt.
Asynchrone jobs
Duurzame workers met lease voor langlopend werk zoals video en batches: enqueue → claim → heartbeat → complete, met een reaper voor verlopen leases. Crashbestendig.
Realtime
Een WebSocket-brug, zodat live spraak en streaming-interacties dezelfde auth, budgetten en logging gebruiken als al het andere.
Dit is het deel dat een HTTP-gevormd gateway niet zonder herbouw kan bijbouwen. De levenscyclus moet in het domeinmodel zitten voordat policy er uniform op kan werken.
Vier planes, bewust gescheiden
| Laag | Wat het bevat | Waarom gescheiden |
|---|---|---|
| Data plane | Het request-pad. Stateless Rust-replica's: auth, budgetcontroles, policy, cache, routing, aanroep, kostentoerekening. | Schaalt horizontaal en onafhankelijk. Geen adminafhankelijkheid in het hot path. |
| Control plane | Configuratie, identiteit, policy-definities, budgetten, keys, tenants, MCP-registry. | De uwe, niet de onze. Er bestaat geen leverancierstenancy om van af te hangen of om af te dwingen. |
| Analytics plane | Gebruik, uitgaven, traces, auditvastleggingen. | Gescheiden van de opslag van de control plane, zodat rapportagebelasting de handhaving nooit raakt. |
| Policy plane | Scanner-engines, OpenFGA-relaties, prijsboek. | Pluggable en buiten het proces, zodat een policy-wijziging geen gateway-wijziging vereist. |
Kubernetes-native, niet Kubernetes-compatibel
Alles in een container is Kubernetes-compatibel. Native betekent dat het platform modelleert wat u draait: Wäg levert een eigen operator en eigen custom resources, zodat de gateway een object is dat het cluster begrijpt in plaats van een deployment dat iemand aan elkaar heeft geknoopt. Een WaegInstance beheert de Deployments, networking, autoscaling en monitoring van de gateway, en meldt een misconfiguratie als condition met een reden; providers, modellen, organisaties, budgetten, guardrails en keys kunnen ook custom resources zijn. Omdat budgetten en rate limits via Redis worden gedeeld in plaats van per replica worden bijgehouden, wordt een budget bij opschalen nooit dubbel uitgegeven — en de operator markeert een instantie met meerdere API-replica's zonder Redis als niet gereed. Vereist is Kubernetes 1.28 of nieuwer, of OpenShift 4; wie liever templatet dan beheert, heeft de Helm-chart.
Rust in de data plane
Gebouwd op tokio, hyper en axum met zero-copy streaming-paden, uitgeleverd als één distroless, non-root binary. Geen interpreter, geen package manager, geen Node-runtime in de gateway — de admin console wordt door dezelfde binary geserveerd. Er zit geen ML-router in het hot path, dus routing kost deterministische analyse in plaats van model-inferentie.
De doorvoer van een gateway hangt af van de vorm van de payload, providerlatentie, cache-hitratio, diepte van de policy-keten en concurrency. Eén enkele factor ten opzichte van een ander product zegt iets over de configuratie die iemand gekozen heeft, niet over uw workload. Wij publiceren liever de meetopstelling, zodat u kunt meten waar het u werkelijk om gaat.
Wat Wäg niet is
Duidelijk benoemd, zodat u het op de juiste as beoordeelt en niemand een briefing boekt met de verkeerde verwachting.
- Geen inference-server. Het draait geen modellen. Het routeert naar de modellen die u al gebruikt, inclusief self-hosted vLLM- of Ollama-endpoints, en Wäg Edge stuurt modellen die op de computers en in de mobiele apps van uw leden draaien.
- Geen modelhosting. Geen gewichten, geen GPU's, geen fine-tuning-pipeline.
- Geen vectordatabase. Het proxyt embedding-calls en cachet semantisch; het slaat uw corpus niet op.
- Geen observability-backend. Het levert OTEL en Prometheus aan wat u toch al draait.
- Geen vervanging van een API-gateway. Kong en Envoy sturen HTTP aan. Wäg stuurt tokens, modellen en agentacties aan. Het zijn complementaire lagen, en de meeste landschappen draaien beide.
Één endpoint. Elk model. Volledige controle.
Draai het in uw eigen infrastructuur
Alles wat u nodig hebt om een control plane in productie te draaien staat onder Apache-2.0 en blijft dat ook — routing, HA, caching, failover, budgetten, policy, MCP, jobs en observability. Self-hosted, zonder account, zonder phone-home.
$ docker run -p 4000:4000 <registry>/waeg-gateway:<version>Geen werkende pull: de images zijn nog niet openbaar. Ontwerppartners krijgen de registrygegevens vertrouwelijk.
Implementeer in 5 minutenBepaal mee als design partner
Wäg is nog niet publiek beschikbaar. We werken met een kleine groep teams die multi-provider AI in productie draaien en governance en soevereiniteit serieus nemen, om de control plane te harden op echte workloads.
- Alle Enterprise-functies inbegrepen, zonder licentiekosten
- Migratie die we samen met u doen — ook vanaf LiteLLM
- Een directe lijn naar de engineers die het bouwen, en echte invloed op wat er als volgende komt