ARKITEKTUR

Fasader in. En modell igenom.

De flesta AI-gateways är HTTP-reverse-proxyer som har fått en modellista: requestformen är abstraktionen, så varje ny modalitet eller livscykel blir ett specialfall någon annanstans. Wäg utgår från inferensrequesten som ett domänobjekt och behandlar API-formerna från OpenAI, Anthropic och Gemini som fasader som mappas in i den.

INFERENSREQUESTEN

Sex saker som är förstklassiga, inte härledda

I en HTTP-formad gateway härleds de här ur en sökväg, en header eller beteendet hos ett leverantörs-SDK. Här är de fält på ett domänobjekt, vilket är skälet till att policy, routing, cache och kostnadsredovisning kan resonera om dem på samma sätt.

modalitetoperationlivscykelkostnadpolicyidentitet

Det enda beslutet är skälet till att chatt, embeddings, vision, ljud, asynkrona videojobb och realtidssessioner delar en enda väg för policy, routing och kostnadsredovisning i stället för sex.

FASADER

Tala dialekten, behåll troheten

Klienter skickar requests i OpenAI-, Anthropic- eller Gemini-form, eller direkt i den nativa inferensrequest-formen. Nativa adaptrar bevarar leverantörsspecifikt beteende — verktygsanrop, vision, strukturerad utdata — i stället för att platta till allt genom en minsta gemensam nämnare och tappa funktionalitet i kanterna.

REQUESTVÄGEN

Nio steg, i fast ordning

Varje request går genom samma steg. Identitet, modellåtkomst och budget löses ut innan något anropas; indatapolicyn körs före cachen, så även ett cachat svar granskas; routingen väljer deployment; utdata- och verktygspolicy körs på svaret; kostnad, utfall och bevis landar på vägen ut.

  1. 01
    Autentisera

    Virtuell nyckel, agenttoken eller en token från företagets IdP på /v1 (Enterprise). Löser ut org, team, användare, applikation och agentkörning.

    ✗ 401
  2. 02
    Modellåtkomst

    Modellbehörigheter, begränsade av nyckelns tillåtlista, avgör vilka alias den här identiteten får anropa.

    ✗ 403
  3. 03
    Budget

    Frekvensgränser och budgetar reserveras på nyckel, org, team, användare, applikation och modell. Alla måste passera.

    ✗ 429 — ingen kostnad hos leverantören
  4. 04
    Policy (före anropet)

    Ordnad guardrail-kedja på indata: PII, injektion, moderering eller er egen webhook. Det är den maskerade prompten cachen ser.

    ✗ BLOCKERA · ◑ MASKERA · ◐ REDIGERA
  5. 05
    Cache

    Exakt → kanonisk → nära-dubblett → semantisk, varje nivå spärrad mot falska träffar. En träff hoppar över leverantören och utdatastegen.

    ✓ TRÄFF — returnera, inget leverantörsanrop
  6. 06
    Routa

    Kapabilitetsfilter, residens, sessionsaffinitet, sedan väljer routingstrategin deployment. En failover lämnar aldrig de tillåtna jurisdiktionerna.

  7. 07
    Anropa

    Leverantörens dialekt, äkta SSE-streaming, failover inom samma alias, sedan ordnade fallbacks; varje försök skriver en egress-post i liggaren. Policy mitt i strömmen körs på ett rullande fönster.

  8. 08
    Policy (efter anrop)

    Utdata-guardrails körs på hela svaret. Verktygsanrop som modellen lämnar tillbaka bedöms av verktygspolicyn: tillåtna, borttagna med en notering eller nekade.

    ✗ 403 · borttaget
  9. 09
    Redovisa

    Budgetarna avräknas, liggaren registrerar utfallet, och tokens, kostnad, utfall och routingbeslutet landar som requestloggar, OTEL-spår och Prometheus-mätvärden.

En proxy vidarebefordrar en request. Det här avgör vad requesten får vara — vilket är hela skillnaden mellan en gateway och en control plane.

LIVSCYKLER

Fyra livscykler, en policyväg

Eftersom livscykel är ett fält på requesten snarare än en implementationsdetalj hos en endpoint gäller samma styrning för alla fyra.

Synkront

Request in, completion ut, all policy tillämpad inline.

Streaming

Äkta server-sent events via LiveStream-adaptrar — ingen fullständig buffring uppströms i normalfallet. Policy mitt i strömmen kan avbryta en dålig ström innan den når klienten.

Asynkrona jobb

Beständiga workers med lease för långa uppgifter som video och batchar: köa → ta över → heartbeat → slutför, med en reaper för utgångna leases. Kraschsäkert.

Realtid

En WebSocket-brygga, så att live-röst och strömmande interaktioner delar samma autentisering, budgetar och loggning som allt annat.

Det här är den del en HTTP-formad gateway inte kan efterhandsmontera utan en omskrivning. Livscykeln måste finnas i domänmodellen innan policy kan tillämpas enhetligt på den.

ARKITEKTUR

Fyra plan, åtskilda med avsikt

PlanVad det innehållerVarför det är separat
Data planeRequestvägen. Tillståndslösa Rust-repliker: autentisering, budgetkontroller, policy, cache, routing, anrop, kostnadsredovisning.Skalar horisontellt och oberoende. Inget beroende till administration i hot path.
Control planeKonfiguration, identitet, policydefinitioner, budgetar, nycklar, tenanter, MCP-register.Ert, inte vårt. Det finns ingen leverantörstenans att bero av eller att förelägga.
Analytics planeAnvändning, kostnad, spår, revisionsposter.Skilt från konfigurationslagringen så att rapporteringslasten aldrig rör tillämpningen.
Policy planeSkannermotorer, OpenFGA-relationer, prislista.Utbytbart och utanför processen, så en policyändring inte kräver en gateway-ändring.
KUBERNETES-NATIVT

Kubernetes-nativ, inte Kubernetes-kompatibel

Allt som ligger i en container är Kubernetes-kompatibelt. Nativt betyder att plattformen modellerar det ni faktiskt kör: Wäg levererar en egen operator och egna custom resources, så att gatewayen är ett objekt som klustret förstår snarare än en deployment som någon har kopplat ihop. En WaegInstance äger gatewayens Deployments, nätverk, autoskalning och övervakning, och rapporterar en felkonfiguration som ett villkor med en orsak; leverantörer, modeller, organisationer, budgetar, guardrails och nycklar kan också vara custom resources. Eftersom budgetar och frekvensgränser delas via Redis i stället för att hållas per replik låter skalning aldrig en budget spenderas två gånger — och operatorn markerar en instans med flera API-repliker men utan Redis som inte redo. Den kräver Kubernetes 1.28 eller senare, eller OpenShift 4; det finns ett Helm-chart om ni hellre mallar än driver en operator.

PRESTANDA

Rust i data plane

Byggd på tokio, hyper och axum med zero-copy-strömmar, levererad som en distroless-binär som körs utan root. Ingen interpretator, ingen pakethanterare, ingen Node-runtime i gatewayen — adminkonsolen serveras av samma binär. Det finns ingen ML-router i hot path, så routing lägger till deterministisk analys i stället för modellinferens.

Varför det inte står några multiplar på den här sidan

En gateways genomströmning beror på payloadens form, leverantörens latens, cacheträffgraden, policykedjans djup och samtidigheten. En enskild multipel gentemot en annan produkt säger något om den konfiguration någon valde, inte om er arbetslast. Vi publicerar hellre testriggen så att ni kan mäta det ni faktiskt bryr er om.

OMFATTNING

Vad Wäg inte är

Uttryckt rakt på sak, så att ni utvärderar den på rätt axel och ingen bokar en briefing i tron att det är en annan produkt.

  • Ingen inferensserver. Den kör inte modeller. Den routar till dem ni redan använder, inklusive self-hostade vLLM- eller Ollama-endpoints, och Wäg Edge styr modeller som körs på medlemmarnas datorer och i mobilappar.
  • Ingen modellvärd. Inga vikter, inga GPU:er, ingen pipeline för finjustering.
  • Ingen vektordatabas. Den proxar embeddings-anrop och cachar semantiskt; den lagrar inte ert korpus.
  • Ingen observability-backend. Den skickar OTEL och Prometheus in i det ni redan kör.
  • Ingen ersättare för en API-gateway. Kong och Envoy styr HTTP. Wäg styr tokens, modeller och agenters handlingar. De är kompletterande lager, och de flesta miljöer kör båda.

Se control plane:n · Se benchmarks

En endpoint. Alla modeller. Full kontroll.

Börja med open source

Kör den i er egen infrastruktur

Allt ni behöver för att köra en control plane i produktion är Apache-2.0 och förblir det — routing, HA, cache, failover, budgetar, policy, MCP, jobb och observability. Self-hosted, inget konto, ingen phone-home.

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

Ingen fungerande pull: avbilderna är inte publika än. Designpartner får registeruppgifterna privat.

Driftsätt på 5 minuter
Designpartnerskap

Forma den som design partner

Wäg är ännu inte publikt släppt. Vi arbetar med en liten grupp team som kör AI från flera leverantörer i produktion och tar styrning och suveränitet på allvar, för att härda control plane:n mot verkliga arbetslaster.

  • Alla Enterprise-funktioner ingår, utan licenskostnad
  • Praktisk migrering — vi gör den tillsammans med er, även från LiteLLM
  • En direktlinje till ingenjörerna som bygger den, och verkligt inflytande över vad som kommer härnäst
Ansök till programmet