Wäg e LiteLLM: la stessa API, un livello diverso
LiteLLM è un ottimo gateway IA, e se vi serve routing multi-provider dietro un endpoint continuerà a servirvi bene. Wäg parla la stessa API compatibile OpenAI e importa la configurazione LiteLLM — non per sostituire un gateway con un altro, ma perché la maggior parte dei team arriva a un punto in cui non è il gateway a essere sotto pressione.
Non un concorrente sullo stesso livello
La stessa superficie API compatibile OpenAI. La stessa configurazione, importabile.
Gratuito qui. Enterprise lì.
Entrambi i progetti sono open source con un livello commerciale. La domanda non è mai stata se esista un'edizione a pagamento, ma dove ciascuno traccia la linea. La documentazione Enterprise di LiteLLM elenca ciò che la loro chiave di licenza abilita, e gran parte di quell'elenco in Wäg è Apache-2.0. Sulla multi-tenancy la differenza è strutturale: nel loro schema di database pubblicato un'organizzazione porta un budget, i totali di spesa e un elenco di membri, e un team vi fa riferimento con una chiave esterna opzionale, il che ne fa un livello di raggruppamento sopra i team. In Wäg un'organizzazione è un confine di autorizzazione verificato a ogni richiesta. Dove anche noi mettiamo la stessa funzione dietro una licenza, la tabella lo dice.
| Funzione | LiteLLM | Wäg |
|---|---|---|
| Architettura multi-tenant: organizzazioni, team, accesso basato sulle relazioni | Enterprise | Apache-2.0 |
| Controllo degli accessi basato sui ruoli | Enterprise | Apache-2.0 |
| Budget sotto la chiave: per modello, per applicazione | Enterprise | Apache-2.0 |
| Guardrail per chiave e per team | Enterprise | Apache-2.0 |
| Motori di guardrail gestiti: moderazione, rilevamento di segreti e prompt injection | Enterprise | Apache-2.0 |
| Integrazione con i gestori di segreti: Vault, Key Vault, Secrets Manager | Enterprise | Apache-2.0 |
| Funzionamento su più regioni | Enterprise | Apache-2.0 |
| Politica di registrazione dei payload, per organizzazione, con opt-out a livello di membro | Enterprise | Apache-2.0 |
| Prove di richiesta firmate e concatenate con hash | Non indicato | Apache-2.0 |
| Instradamento vincolato alle giurisdizioni ammesse | Non indicato | Apache-2.0 |
| Reporting dell'uso dei modelli locali dai dispositivi dei dipendenti | Non indicato | Apache-2.0 |
| Identità dell'agente, esecuzioni e limiti di esecuzione | Non indicato | Apache-2.0 |
| Policy sulle chiamate agli strumenti con approvazioni umane | Non indicato | Apache-2.0 |
| Controllo dei flussi di dati: il trio letale | Non indicato | Apache-2.0 |
| Fissaggio degli strumenti MCP e quarantena in caso di modifica | Non indicato | Apache-2.0 |
| Credenziali di agente effimere, nessuna chiave permanente | Non indicato | Apache-2.0 |
| Permessi di accesso alle chiamate ad API di terze parti inoltrate | Enterprise | Apache-2.0 |
| Il traffico web in uscita di un agente, per regola sull'host e deciso a ogni connessione | Non indicato | Apache-2.0 |
| Pagamenti degli agenti: mandati di spesa e binari | Non indicato | Enterprise |
| Approvare in Slack o Teams le chiamate a strumenti degli agenti | Non indicato | Enterprise |
| Import di agenti da Foundry, AWS, Entra Agent ID e Gemini Enterprise | Non indicato | Enterprise |
| Ispezione TLS del traffico in uscita degli agenti | Non indicato | Enterprise |
| SSO per la console di amministrazione | Enterprise | Enterprise |
| Provisioning SCIM | Enterprise | Enterprise |
| JWT e OIDC sul piano dati | Enterprise | Enterprise |
| Pacchetti di audit a lunga conservazione | Enterprise | Enterprise |
| Guardrail sul traffico in pass-through nativo del provider | Non indicato | Enterprise |
| Server MCP che agiscono come l'utente connesso (OAuth) | Non indicato | Enterprise |
| Chiavi di cifratura gestite dal cliente, reporting della postura FIPS | Non indicato | Enterprise |
| Branding personalizzato | Enterprise | Enterprise |
| Budget di piattaforma che le organizzazioni non possono modificare | Non indicato | Enterprise |
| Un ruolo di auditor in sola lettura | Non indicato | Enterprise |
| Export di uscita: tutto ciò che serve a un'organizzazione per spostarsi altrove | Non indicato | Enterprise |
| Marcatura dei contenuti IA: C2PA, watermark, impronte del testo | Non indicato | Enterprise |
| Controllo dei modelli locali sui dispositivi dei dipendenti | Non indicato | Enterprise |
Per correttezza: il loro livello Enterprise comprende anche liste di IP consentiti e un rapporto SOC 2 Type II. Oggi non abbiamo né l'uno né l'altro.
La colonna LiteLLM viene dalla loro documentazione Enterprise, che indica come una chiave di licenza abiliti le funzioni elencate. Non indicato significa che una funzione non è nominata in quella pagina, il che non equivale a impossibile. La colonna Wäg riflette la ripartizione di licenza che il gateway applica: una funzione Enterprise è un modulo che una licenza firmata deve nominare. Le righe sugli agenti segnate Non indicato sono un caso diverso: il loro gateway per agenti non è affatto una funzione Enterprise, quindi quelle funzioni mancano dal loro prodotto anziché essere comprese nella licenza.
Entrambi offrono un gateway per agenti. Solo uno governa l'agente.
LiteLLM ha aggiunto un gateway di agenti A2A, e fa bene le cose ovvie: registrare gli agenti, controllare quali team e chiavi possono raggiungerli, attribuire il costo. Due righe sono vera parità. Le altre sono il punto in cui i due prodotti smettono di essere la stessa cosa.
| Funzione | LiteLLM | Wäg |
|---|---|---|
| Gateway di agenti A2A con controllo degli accessi e attribuzione dei costi per agente | Sì | Sì |
| Un arresto di emergenza che rifiuta l'agente al gateway | Webhook all'agente | Sì |
| Limiti su una singola esecuzione dell'agente | Sì | Sì |
| Una chiamata trattenuta per un approvatore con nome, con la decisione registrata | Non documentato | Sì |
| Controllo dei flussi: un'esecuzione che ha letto dati privati non può poi chiamare uno strumento di uscita | Non documentato | Sì |
| Definizioni degli strumenti MCP fissate e messe in quarantena quando il server le cambia | Non documentato | Sì |
| Credenziali di agente effimere legate a un'esecuzione, senza chiavi permanenti | Non documentato | Sì |
| Quali destinazioni può raggiungere un agente, deciso a ogni chiamata: policy sugli strumenti, approvazione, etichetta di flusso | Non documentato | Sì |
| Tutto il traffico web in uscita dell'agente attraverso il gateway, non solo le chiamate a modelli e strumenti | Non documentato | Sì |
| Agenti trovati dal loro traffico, non solo quelli che qualcuno ha registrato | Non documentato | Sì |
| Agenti importati e sincronizzati da Foundry, AWS Agent Registry, Entra Agent ID e Gemini Enterprise | Non documentato | Enterprise |
| Una chiamata a strumento trattenuta, approvata o negata in Slack o Microsoft Teams | Non documentato | Enterprise |
| Ispezione TLS del traffico in uscita di un agente, con regole sulle richieste e guardrail | Non documentato | Enterprise |
| Pagamenti degli agenti: mandati di spesa, x402, AP2, checkout ACP e UCP | Non documentato | Enterprise |
La colonna LiteLLM riporta quanto mostrano la loro documentazione e il loro repository pubblico. Non documentato significa che la funzione non vi è descritta, il che non equivale a dire che sia impossibile. Tre righe meritano il dettaglio. Il loro arresto di emergenza invia un webhook al runtime dell'agente e lascia, con le loro parole, l'agente registrato e attivo dal lato LiteLLM; il nostro rifiuta l'agente al gateway, su ogni replica e regione, e chiude uno stream già in corso. Il loro require_approval è il campo di OpenAI: impostato su qualcosa di diverso da never, la chiamata torna al client perché la esegua — nulla viene trattenuto, nessuno viene nominato, nulla viene registrato. E per i pagamenti degli agenti, una ricerca nel codice del loro repository per x402 e AP2 non restituisce nulla. Per le API di terze parti la differenza non è l'inoltro. I loro endpoint pass-through instradano verso qualsiasi API esterna con una credenziale scritta nella configurazione, e i permessi per chiave e team sono una funzione Enterprise. Manca la decisione: la destinazione è una rotta statica e non qualcosa che un dato agente può o non può raggiungere, nessuna regola legge gli argomenti della chiamata, nessuna approvazione può trattenerla, non porta etichette di flusso e non conta in un'esecuzione.
I casi in cui LiteLLM è la risposta giusta
Sinceramente. Se vi riconoscete qui, adottare una control plane vi porta soprattutto complessità operativa di cui non avete ancora bisogno.
- Un team, uno o pochi servizi, e volete il multi-provider oggi.
- Usate import litellm nel codice applicativo per il suo routing in-process e le callback, ed è proprio ciò che apprezzate.
- Avete callback Python personalizzati nel ciclo di vita della richiesta la cui riscrittura sarebbe un lavoro vero.
- Il vostro elenco di provider comprende un caso raro che Wäg non copre ancora.
- I vostri requisiti di governance sono davvero soddisfatti da budget per chiave.
I sintomi, non l'elenco di funzionalità
- I budget devono rispecchiare l'organigramma. Limiti per chiave non possono esprimere «questo team ha 4.000 €, nessun singolo utente oltre 500 €, e gli esperimenti del marketing non devono consumare la capacità dell'ingegneria».
- La policy deve valere per applicazioni che non hanno mai aderito. Una regola applicabile solo dove qualcuno si è ricordato di inserirla non è un controllo.
- Gli agenti hanno allargato molto la superficie. Un turno utente diventa N chiamate a modelli e strumenti verso server MCP remoti. Autenticazione per server, ACL sugli strumenti e audit per passaggio smettono di essere opzionali.
- Qualcuno ha chiesto quanto è costata l'IA, per team, lo scorso trimestre. E rispondere ha richiesto un progetto sui dati anziché una dashboard.
- La conformità chiede prove, non intenzioni. Dal 2 agosto 2026 i poteri di esecuzione GPAI e gli obblighi di trasparenza dell'articolo 50 del regolamento europeo sull'IA comportano un'esposizione a sanzioni. Logging e tracciabilità devono essere dimostrabili.
- Il gateway è diventato portante. Quando ogni percorso di prodotto ci passa dietro, un processo Python con interprete e albero delle dipendenze risolto al deploy è una questione di rischio diversa da quella di dieci richieste al minuto.
Cosa non cambia affatto
Scelte progettuali, non un conteggio di funzionalità
Le tabelle di funzionalità invecchiano in un trimestre. Queste sono scelte strutturali che non cambiano da una release all'altra.
| Dimensione | LiteLLM | Wäg |
|---|---|---|
| Astrazione centrale | Dispatch tramite gli SDK dei provider dietro HTTP | Richiesta di inferenza: modalità, operazione, ciclo di vita, costo, policy |
| Runtime | Python | Rust — un binario distroless senza root |
| Cicli di vita | Sincrono, streaming | Sincrono, streaming, job asincroni durevoli, sessioni in tempo reale |
| Routing | Scelta della strategia più fallback | Valutazione strutturale → soglie di capacità rigide → il più economico idoneo; spiegabile negli header |
| Cache | Esatta, semantica opzionale | Esatta → canonica → quasi-duplicato → semantica, con protezioni contro i falsi positivi |
| Budget | Per chiave | Org → team → utente → applicazione → modello → chiave, sovrapposti, con tetti di equità; un superamento viene rifiutato prima della spesa verso il provider |
| Policy | Hook dei guardrail | Catena ordinata: prima della chiamata, durante lo streaming, dopo la chiamata |
| Agenti / MCP | Gateway MCP e A2A: autenticazione per server, accesso per chiave e per team | In più policy sugli strumenti con approvatori nominati, regole sui flussi di dati, fissaggio degli strumenti, limiti di esecuzione, budget e audit per passaggio |
| Modelli locali e on-device | Raggiunti come provider dal proxy | Wäg Edge su laptop e nelle app iOS e Android: accesso e reporting open source, controllo dei dispositivi e flotta con Enterprise |
| Identità | Chiave master più chiavi virtuali | In più tenancy OpenFGA; SSO OIDC, SCIM 2.0 e token dell'IdP su /v1 con Enterprise |
| Ciclo di vita su Kubernetes | Chart Helm ufficiale; gli operator arrivano dalla community | Operator proprietario con bundle OLM, che riconcilia il gateway e il suo catalogo; anche un chart Helm |
| Modello di estensione | Callback Python, in-process | Motori via webhook HTTP, fuori processo |
| Fornitore | Registrato negli Stati Uniti | Bitkaio Ltd, Regno Unito — europea, fuori dall'UE |
Se LiteLLM fa il suo lavoro, tenetelo. Se ciò che è davvero sotto pressione è la governance anziché il routing, si tratta di un altro livello — ed è quello per cui Wäg è costruito.
Un endpoint. Tutti i modelli. Controllo completo.
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 minutiContribuite 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