ARCHITETTURA

Façade in ingresso. Un unico modello nel percorso.

La maggior parte dei gateway IA sono reverse proxy HTTP a cui è stata aggiunta una lista di modelli: la forma della richiesta è l'astrazione, quindi ogni nuova modalità o ciclo di vita diventa un caso particolare da gestire altrove. Wäg parte dalla richiesta di inferenza come oggetto di dominio e tratta le forme delle API di OpenAI, Anthropic e Gemini come façade che vi si mappano sopra.

LA RICHIESTA DI INFERENZA

Sei elementi di prima classe, non dedotti

In un gateway modellato sull'HTTP questi elementi si ricavano da un percorso, da un header o dal comportamento dell'SDK di un provider. Qui sono campi di un oggetto di dominio, ed è per questo che policy, routing, caching e contabilizzazione possono ragionarci sopra in modo uniforme.

modalitàoperazioneciclo di vitacostopolicyidentità

È quella singola decisione a fare sì che chat, embedding, visione, audio, job video asincroni e sessioni realtime condividano un unico percorso di policy, routing e contabilizzazione anziché sei.

FAÇADE

Parlare il dialetto, conservare la fedeltà

I client inviano richieste nella forma di OpenAI, Anthropic o Gemini, oppure direttamente nella forma nativa della richiesta di inferenza. Gli adapter nativi preservano il comportamento specifico di ciascun provider — tool calling, visione, output strutturato — anziché appiattire tutto su una forma da minimo comune denominatore, perdendo capacità ai bordi.

IL PERCORSO DELLA RICHIESTA

Nove fasi, in un ordine fisso

Ogni richiesta attraversa le stesse fasi. Identità, accesso ai modelli e budget si risolvono prima che venga chiamato qualsiasi cosa; la policy in ingresso viene eseguita prima della cache, così anche una risposta in cache viene controllata; il routing sceglie il deployment; la policy in uscita e quella sugli strumenti agiscono sulla risposta; costi, verdetti e prove vengono registrati all'uscita.

  1. 01
    Autenticare

    Chiave virtuale, token dell'agente o token dell'IdP aziendale su /v1 (Enterprise). Risolve organizzazione, team, utente, applicazione ed esecuzione dell'agente.

    ✗ 401
  2. 02
    Accesso ai modelli

    I permessi sui modelli, ristretti dalla allow-list della chiave, stabiliscono quali alias può chiamare questa identità.

    ✗ 403
  3. 03
    Budget

    Limiti di frequenza e budget vengono riservati su chiave, organizzazione, team, utente, applicazione e modello. Devono passare tutti.

    ✗ 429 — nessuna spesa verso il provider
  4. 04
    Policy (pre-chiamata)

    Catena ordinata di guardrail sull'input: PII, injection, moderazione o un vostro webhook. La cache vede il prompt mascherato.

    ✗ BLOCCO · ◑ MASCHERA · ◐ OSCURA
  5. 05
    Cache

    Esatta → canonica → quasi-duplicata → semantica, con ogni livello protetto contro i falsi hit. Un hit salta il provider e le fasi di uscita.

    ✓ HIT — risposta restituita, nessuna chiamata al provider
  6. 06
    Instradare

    Filtro di capacità, residenza, affinità di sessione, poi la strategia di routing sceglie il deployment. Un failover non esce mai dalle giurisdizioni consentite.

  7. 07
    Invocare

    Dialetto del provider, streaming SSE reale, failover sullo stesso alias, poi fallback ordinati; ogni tentativo scrive una voce di uscita nel registro. La policy mid-stream lavora su una finestra scorrevole.

  8. 08
    Policy (dopo la chiamata)

    I guardrail in uscita agiscono sulla risposta completa. Le chiamate a strumenti restituite dal modello sono valutate dalla policy sugli strumenti: consentite, rimosse con una nota o rifiutate.

    ✗ 403 · rimossa
  9. 09
    Contabilizzare

    I budget vengono saldati, il registro annota l'esito, e token, costi, verdetti e decisione di routing vengono registrati come log delle richieste, trace OTEL e metriche Prometheus.

Un proxy inoltra una richiesta. Questo decide cosa alla richiesta è consentito essere — ed è tutta qui la differenza tra un gateway e una control plane.

CICLI DI VITA

Quattro cicli di vita, un solo percorso di policy

Poiché il ciclo di vita è un campo della richiesta e non un dettaglio implementativo di un endpoint, la stessa governance si applica a tutti e quattro.

Sincrono

Richiesta in ingresso, completion in uscita, tutte le policy applicate inline.

Streaming

Server-sent event reali tramite adapter LiveStream — nessun buffering completo dell'upstream sul percorso nominale. La policy mid-stream può interrompere uno stream problematico prima che raggiunga il client.

Job asincroni

Worker durevoli con lease per lavorazioni lunghe come video e batch: accodamento → presa in carico → heartbeat → completamento, con un reaper per i lease scaduti. A prova di crash.

Tempo reale

Un bridge WebSocket, così che voce dal vivo e interazioni in streaming condividano gli stessi meccanismi di autenticazione, budget e logging di tutto il resto.

È la parte che un gateway modellato sull'HTTP non può aggiungere a posteriori senza riscriverlo. Il ciclo di vita deve essere nel modello di dominio prima che la policy possa applicarvisi in modo uniforme.

ARCHITETTURA

Quattro piani, separati per scelta

PianoCosa contienePerché è separato
Data planeIl percorso della richiesta. Repliche Rust senza stato: autenticazione, verifica dei budget, policy, cache, routing, chiamata, contabilizzazione.Scala orizzontalmente e in modo indipendente. Nessuna dipendenza dall'amministrazione nel percorso critico.
Control planeConfigurazione, identità, definizioni di policy, budget, chiavi, tenant, registro MCP.La vostra, non la nostra. Non esiste alcuna tenancy del fornitore da cui dipendere o che si possa imporre.
Piano analiticoUtilizzo, spesa, tracce, registrazioni di audit.Separato dall'archivio di controllo, così il carico di reporting non tocca mai l'applicazione delle regole.
Piano delle policyMotori di analisi, relazioni OpenFGA, listino prezzi.Innestabile e fuori processo, così una modifica di policy non richiede una modifica al gateway.
NATIVO KUBERNETES

Nativo Kubernetes, non compatibile con Kubernetes

Tutto ciò che sta in un container è compatibile con Kubernetes. Nativo significa che la piattaforma modella ciò che state eseguendo: Wäg fornisce un proprio operator e proprie custom resource, così il gateway è un oggetto che il cluster comprende anziché un deployment messo insieme a mano. Una WaegInstance possiede Deployment, rete, autoscaling e monitoraggio del gateway, e segnala un errore di configurazione come condizione con un motivo; provider, modelli, organizzazioni, budget, guardrail e chiavi possono essere anch'essi custom resource. Poiché budget e limiti di frequenza sono condivisi tramite Redis anziché tenuti per replica, scalare non permette mai di spendere due volte un budget — e l'operator segna come non pronta un'istanza con più repliche API e senza Redis. Richiede Kubernetes 1.28 o successivo, oppure OpenShift 4; c'è un chart Helm se preferite un template a un operator.

PRESTAZIONI

Rust nella data plane

Costruito su tokio, hyper e axum con percorsi di streaming zero-copy, distribuito come un unico binario distroless e non-root. Nessun interprete, nessun package manager, nessun runtime Node nel gateway — la console di amministrazione è servita dallo stesso binario. Non c'è alcun router ML nel percorso critico, quindi il routing aggiunge un'analisi deterministica anziché un'inferenza di modello.

Perché su questa pagina non ci sono moltiplicatori

Il throughput di un gateway dipende dalla forma del payload, dalla latenza del provider, dal tasso di hit della cache, dalla profondità della catena di policy e dalla concorrenza. Un singolo moltiplicatore rispetto a un altro prodotto vi dice qualcosa sulla configurazione scelta da qualcun altro, non sul vostro carico di lavoro. Preferiamo pubblicare gli strumenti di misura, così potete misurare ciò che vi interessa davvero.

AMBITO

Cosa Wäg non è

Lo diciamo apertamente, così potete valutarlo sull'asse giusto e nessuno prenota un incontro aspettandosi il prodotto sbagliato.

  • Non è un inference server. Non esegue modelli. Instrada verso quelli che già utilizzate, inclusi endpoint vLLM o Ollama self-hosted, e Wäg Edge governa i modelli che girano sui computer dei membri e nelle app mobili.
  • Non è un host di modelli. Nessun peso, nessuna GPU, nessuna pipeline di fine-tuning.
  • Non è un database vettoriale. Fa da proxy alle chiamate di embedding e le mette in cache semanticamente; non conserva il vostro corpus.
  • Non è un backend di osservabilità. Emette OTEL e Prometheus verso ciò che già utilizzate.
  • Non sostituisce un API gateway. Kong ed Envoy governano l'HTTP. Wäg governa token, modelli e azioni degli agenti. Sono livelli complementari, e la maggior parte delle installazioni li usa entrambi.

Vedi la control plane · Vedi i benchmark

Un endpoint. Tutti i modelli. Controllo completo.

Inizia dall'open source

Gestitelo nella vostra infrastruttura

Tutto ciò che serve per gestire una control plane in produzione è sotto Apache-2.0 e lo resterà — routing, alta disponibilità, cache, failover, budget, policy, MCP, job e osservabilità. Self-hosted, senza account, senza chiamate verso l'esterno.

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

Non è un pull funzionante: le immagini non sono ancora pubbliche. I partner di progettazione ricevono i dettagli del registry in forma privata.

Avvia in 5 minuti
Partnership di progettazione

Contribuite come design partner

Wäg non è ancora disponibile pubblicamente. Lavoriamo con un piccolo gruppo di team che gestiscono IA multi-provider in produzione e prendono sul serio governance e sovranità, per irrobustire la control plane su carichi reali.

  • Tutte le funzioni Enterprise incluse, senza costi di licenza
  • Migrazione assistita — la facciamo insieme a voi, anche da LiteLLM
  • Una linea diretta con gli ingegneri e un'influenza reale su ciò che arriva dopo
Candidatevi al programma