ARCHITECTUUR

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.

HET INFERENCE-REQUEST

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.

modaliteitoperationlevenscycluskostenpolicyidentiteit

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.

FAÇADES

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.

HET REQUEST-PAD

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.

  1. 01
    Authenticeren

    Virtuele key, agent-token of een bedrijfs-IdP-token op /v1 (Enterprise). Bepaalt org, team, gebruiker, applicatie en agentrun.

    ✗ 401
  2. 02
    Modeltoegang

    Modelrechten, ingeperkt door de allowlist van de key, bepalen welke aliassen deze identiteit mag aanroepen.

    ✗ 403
  3. 03
    Budget

    Rate limits en budgetten worden gereserveerd op key, org, team, gebruiker, applicatie en model. Ze moeten allemaal slagen.

    ✗ 429 — geen providerkosten
  4. 04
    Policy (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
  5. 05
    Cache

    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
  6. 06
    Routeren

    Capability-filter, residentie, sessie-affiniteit, en dan kiest de routingstrategie de deployment. Een failover verlaat nooit de toegestane jurisdicties.

  7. 07
    Aanroepen

    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.

  8. 08
    Policy (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
  9. 09
    Afrekenen

    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.

LEVENSCYCLI

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.

ARCHITECTUUR

Vier planes, bewust gescheiden

LaagWat het bevatWaarom gescheiden
Data planeHet request-pad. Stateless Rust-replica's: auth, budgetcontroles, policy, cache, routing, aanroep, kostentoerekening.Schaalt horizontaal en onafhankelijk. Geen adminafhankelijkheid in het hot path.
Control planeConfiguratie, 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 planeGebruik, uitgaven, traces, auditvastleggingen.Gescheiden van de opslag van de control plane, zodat rapportagebelasting de handhaving nooit raakt.
Policy planeScanner-engines, OpenFGA-relaties, prijsboek.Pluggable en buiten het proces, zodat een policy-wijziging geen gateway-wijziging vereist.
KUBERNETES-NATIVE

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.

PERFORMANCE

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.

Waarom er geen vermenigvuldigingsfactoren op deze pagina staan

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.

REIKWIJDTE

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.

Bekijk de control plane · Bekijk de benchmarks

Één endpoint. Elk model. Volledige controle.

Begin met de open source

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 minuten
Ontwerppartnerschap

Bepaal 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
Aanmelden voor het programma