Wäg et LiteLLM : la même API, une autre couche
LiteLLM est une très bonne passerelle IA, et si ce dont vous avez besoin est du routage multi-fournisseurs derrière un point d'entrée, elle continuera de bien vous servir. Wäg parle la même API compatible OpenAI et importe la configuration LiteLLM — non pour remplacer une passerelle par une autre, mais parce que la plupart des équipes atteignent un point où ce n'est pas la passerelle qui atteint sa limite.
Pas un concurrent sur la même couche
La même surface d'API compatible OpenAI. La même configuration, importable.
Gratuit ici. Enterprise là-bas.
Les deux projets sont open source avec une offre commerciale. La question n'a jamais été de savoir s'il existe une édition payante, mais où chacun place la limite. La documentation Enterprise de LiteLLM énumère ce que leur clé de licence active, et l'essentiel de cette liste est sous Apache-2.0 dans Wäg. Sur le multi-tenant, la différence est structurelle : dans leur schéma de base de données publié, une organisation porte un budget, des cumuls de dépenses et une liste de membres, et une équipe y renvoie par une clé étrangère optionnelle, ce qui en fait un niveau de regroupement au-dessus des équipes. Dans Wäg, une organisation est une frontière d'autorisation vérifiée à chaque requête. Là où nous plaçons la même capacité derrière une licence, le tableau le dit.
| Capacité | LiteLLM | Wäg |
|---|---|---|
| Architecture multi-tenant : organisations, équipes, accès fondé sur les relations | Enterprise | Apache-2.0 |
| Contrôle d'accès fondé sur les rôles | Enterprise | Apache-2.0 |
| Budgets sous la clé : par modèle, par application | Enterprise | Apache-2.0 |
| Garde-fous par clé et par équipe | Enterprise | Apache-2.0 |
| Moteurs de garde-fous gérés : modération, détection de secrets et d'injection de prompt | Enterprise | Apache-2.0 |
| Intégration aux gestionnaires de secrets : Vault, Key Vault, Secrets Manager | Enterprise | Apache-2.0 |
| Exploitation multi-région | Enterprise | Apache-2.0 |
| Politique de journalisation des contenus, par organisation, avec retrait au niveau du membre | Enterprise | Apache-2.0 |
| Preuves de requêtes signées et chaînées par hachage | Non mentionné | Apache-2.0 |
| Routage restreint aux juridictions autorisées | Non mentionné | Apache-2.0 |
| Remontée de l'usage des modèles locaux depuis les appareils des salariés | Non mentionné | Apache-2.0 |
| Identité d'agent, exécutions et limites d'exécution | Non mentionné | Apache-2.0 |
| Politique d'appels d'outils avec approbations humaines | Non mentionné | Apache-2.0 |
| Contrôle des flux de données : le trio mortel | Non mentionné | Apache-2.0 |
| Épinglage des outils MCP et quarantaine en cas de changement | Non mentionné | Apache-2.0 |
| Identifiants d'agent éphémères, aucune clé permanente | Non mentionné | Apache-2.0 |
| Droits d'accès aux appels d'API tierces relayés | Enterprise | Apache-2.0 |
| Le trafic web sortant d'un agent, par règle d'hôte et tranché à chaque connexion | Non mentionné | Apache-2.0 |
| Paiements par agent : mandats de dépense et rails | Non mentionné | Enterprise |
| Approbation des appels d'outils d'agents dans Slack ou Teams | Non mentionné | Enterprise |
| Import d'agents depuis Foundry, AWS, Entra Agent ID et Gemini Enterprise | Non mentionné | Enterprise |
| Inspection TLS du trafic sortant des agents | Non mentionné | Enterprise |
| SSO pour la console d'administration | Enterprise | Enterprise |
| Provisionnement SCIM | Enterprise | Enterprise |
| JWT et OIDC sur le plan de données | Enterprise | Enterprise |
| Paquets d'audit à longue rétention | Enterprise | Enterprise |
| Garde-fous sur le trafic en pass-through natif du fournisseur | Non mentionné | Enterprise |
| Serveurs MCP agissant en tant qu'utilisateur connecté (OAuth) | Non mentionné | Enterprise |
| Clés de chiffrement gérées par le client, rapport de posture FIPS | Non mentionné | Enterprise |
| Personnalisation de la marque | Enterprise | Enterprise |
| Budgets de plateforme que les organisations ne peuvent pas modifier | Non mentionné | Enterprise |
| Un rôle d'auditeur en lecture seule | Non mentionné | Enterprise |
| Export de sortie : tout ce dont une organisation a besoin pour partir ailleurs | Non mentionné | Enterprise |
| Marquage des contenus IA : C2PA, filigranes, empreintes de texte | Non mentionné | Enterprise |
| Contrôle des modèles locaux sur les appareils des salariés | Non mentionné | Enterprise |
Soyons justes : leur offre Enterprise comprend aussi des listes blanches d'adresses IP et un rapport SOC 2 Type II. Nous n'avons ni l'un ni l'autre à ce jour.
La colonne LiteLLM provient de leur propre documentation Enterprise, qui indique qu'une clé de licence active les fonctions qui y figurent. Non mentionné signifie qu'une capacité n'est pas nommée sur cette page, ce qui ne veut pas dire qu'elle soit impossible. La colonne Wäg reflète la répartition de licence que la passerelle applique : une capacité Enterprise est un module qu'une licence signée doit nommer. Les lignes d'agents marquées Non mentionné relèvent d'un autre cas : leur passerelle d'agents n'est pas du tout une fonction Enterprise, si bien que ces capacités manquent à leur produit plutôt que d'être incluses dans leur licence.
Les deux livrent une passerelle d'agents. Un seul gouverne l'agent.
LiteLLM a ajouté une passerelle d'agents A2A, et elle fait bien l'évident : enregistrer les agents, contrôler quelles équipes et quelles clés peuvent les atteindre, imputer le coût. Deux lignes sont une véritable égalité. Les autres sont l'endroit où les deux produits cessent d'être de la même nature.
| Capacité | LiteLLM | Wäg |
|---|---|---|
| Passerelle d'agents A2A avec contrôle d'accès et imputation du coût par agent | Oui | Oui |
| Un arrêt d'urgence qui refuse l'agent à la passerelle | Webhook vers l'agent | Oui |
| Limites sur une seule exécution d'agent | Oui | Oui |
| Un appel d'outil retenu pour un approbateur nommé, avec la décision consignée | Non documenté | Oui |
| Contrôle des flux : une exécution qui a lu des données privées ne peut plus appeler un outil de sortie | Non documenté | Oui |
| Définitions d'outils MCP épinglées, et mises en quarantaine quand le serveur les change | Non documenté | Oui |
| Identifiants d'agent éphémères liés à une exécution, sans clé permanente | Non documenté | Oui |
| Quelles destinations un agent peut atteindre, tranché à chaque appel : politique d'outils, approbation, étiquette de flux | Non documenté | Oui |
| Tout le trafic web sortant de l'agent via la passerelle, pas seulement ses appels de modèles et d'outils | Non documenté | Oui |
| Agents repérés à leur trafic, pas seulement ceux que quelqu'un a déclarés | Non documenté | Oui |
| Agents importés et synchronisés depuis Foundry, AWS Agent Registry, Entra Agent ID et Gemini Enterprise | Non documenté | Enterprise |
| Un appel d'outil retenu, approuvé ou refusé dans Slack ou Microsoft Teams | Non documenté | Enterprise |
| Inspection TLS du trafic sortant d'un agent, avec règles de requête et garde-fous | Non documenté | Enterprise |
| Paiements par agent : mandats de dépense, x402, AP2, paiement ACP et UCP | Non documenté | Enterprise |
La colonne LiteLLM reprend ce que montrent leur propre documentation et leur dépôt public. Non documenté signifie que la capacité n'y est pas décrite, ce qui ne veut pas dire qu'elle soit impossible. Trois lignes méritent le détail. Leur arrêt d'urgence déclenche un webhook vers le runtime de l'agent et laisse, selon leurs propres termes, l'agent enregistré et activé du côté de LiteLLM ; le nôtre refuse l'agent à la passerelle, sur chaque réplique et chaque région, et met fin à un flux déjà en cours. Leur require_approval est le champ d'OpenAI : réglé sur autre chose que never, l'appel d'outil est renvoyé au client pour exécution — rien n'est retenu, personne n'est nommé, rien n'est consigné. Et pour les paiements par agent, une recherche de code dans leur dépôt sur x402 et AP2 ne renvoie absolument rien. Pour les API tierces, la différence n'est pas le relais. Leurs points de terminaison pass-through routent vers n'importe quelle API externe avec un identifiant posé dans la configuration, et les droits par clé et par équipe sont une fonction Enterprise. Ce qui manque, c'est la décision : la destination est une route statique et non quelque chose qu'un agent donné a ou n'a pas le droit d'atteindre, aucune règle ne lit les arguments de l'appel, aucune approbation ne peut le retenir, il ne porte pas d'étiquette de flux et il ne compte pas dans une exécution.
Les cas où LiteLLM est la bonne réponse
Sincèrement. Si vous vous reconnaissez ici, adopter une control plane vous apporte surtout une surface d'exploitation dont vous n'avez pas encore besoin.
- Une équipe, un ou quelques services, et vous voulez du multi-fournisseurs dès aujourd'hui.
- Vous utilisez import litellm dans le code applicatif pour son routage en processus et ses callbacks, et c'est précisément ce que vous appréciez.
- Vous avez des callbacks Python personnalisés dans le cycle de vie de la requête dont la réécriture serait un vrai chantier.
- Votre liste de fournisseurs comporte un cas rare que Wäg ne couvre pas encore.
- Vos exigences de gouvernance sont réellement satisfaites par des budgets par clé.
Les symptômes, pas la liste de fonctionnalités
- Les budgets doivent épouser l'organigramme. Des limites par clé ne peuvent pas exprimer « cette équipe dispose de 4 000 €, aucun utilisateur au-delà de 500 €, et les expérimentations du marketing ne doivent pas consommer la capacité de l'ingénierie ».
- La politique doit s'appliquer à des applications qui n'y ont jamais consenti. Une règle applicable uniquement là où quelqu'un a pensé à l'ajouter n'est pas un contrôle.
- Les agents ont considérablement élargi la surface. Un tour d'utilisateur devient N appels de modèles et d'outils vers des serveurs MCP distants. Authentification par serveur, listes d'outils autorisés et audit par étape cessent d'être optionnels.
- Quelqu'un a demandé combien l'IA a coûté, par équipe, le trimestre dernier. Et y répondre a exigé un chantier de données plutôt qu'un tableau de bord.
- La conformité demande des preuves, pas des intentions. Depuis le 2 août 2026, les pouvoirs d'exécution GPAI et les obligations de transparence de l'article 50 du règlement européen sur l'IA s'accompagnent d'un risque de sanctions. Journalisation et traçabilité doivent pouvoir être démontrées.
- La passerelle est devenue structurante. Dès lors que chaque parcours produit passe derrière elle, un processus Python avec interpréteur et arbre de dépendances résolu au déploiement pose une question de risque différente de celle qui se posait à dix requêtes par minute.
Ce qui ne change absolument pas
Des choix de conception, pas un décompte de fonctionnalités
Les tableaux de fonctionnalités vieillissent en un trimestre. Voici des choix structurels qui ne changent pas d'une version à l'autre.
| Dimension | LiteLLM | Wäg |
|---|---|---|
| Abstraction centrale | Répartition via les SDK fournisseurs derrière HTTP | Requête d'inférence : modalité, opération, cycle de vie, coût, politique |
| Exécution | Python | Rust — un binaire distroless sans root |
| Cycles de vie | Synchrone, streaming | Synchrone, streaming, tâches asynchrones durables, sessions temps réel |
| Routage | Choix de stratégie et replis | Évaluation structurelle → seuils de capacité stricts → le moins cher qui convient ; explicable via les en-têtes |
| Cache | Exact, sémantique en option | Exact → canonique → quasi-doublon → sémantique, avec garde-fous contre les faux positifs |
| Budgets | Par clé | Org → équipe → utilisateur → application → modèle → clé, empilés, avec plafonds d'équité ; un dépassement est refusé avant toute dépense fournisseur |
| Politique | Hooks de garde-fous | Chaîne ordonnée : avant l'appel, en cours de flux, après l'appel |
| Agents / MCP | Passerelle MCP et A2A : authentification par serveur, accès par clé et par équipe | Plus des politiques d'outils avec approbateurs nommés, règles de flux de données, épinglage des outils, limites d'exécution, budget et audit par étape |
| Modèles locaux et embarqués sur l'appareil | Atteints comme fournisseur depuis le proxy | Wäg Edge sur les portables et dans les applications iOS et Android : connexion et remontée en open source, contrôle des appareils et flotte avec Enterprise |
| Identité | Clé maître et clés virtuelles | Plus locataires OpenFGA ; SSO OIDC, SCIM 2.0 et jetons d'IdP sur /v1 avec Enterprise |
| Cycle de vie Kubernetes | Chart Helm officiel ; les opérateurs viennent de la communauté | Opérateur maison avec un bundle OLM, qui réconcilie la passerelle et son catalogue ; un chart Helm aussi |
| Modèle d'extension | Callbacks Python, en processus | Moteurs en webhook HTTP, hors processus |
| Fournisseur | Immatriculé aux États-Unis | Bitkaio Ltd, Royaume-Uni — européen, hors UE |
Si LiteLLM fait son travail, gardez-le. Si ce qui atteint réellement sa limite relève de la gouvernance plutôt que du routage, c'est une autre couche — et c'est celle pour laquelle Wäg est conçu.
Un point d'entrée. Tous les modèles. Un contrôle total.
Exploitez-le dans votre propre infrastructure
Tout ce qu'il faut pour exploiter une control plane en production est sous Apache-2.0 et le restera — routage, haute disponibilité, cache, bascule, budgets, politique, MCP, tâches et observabilité. Auto-hébergé, sans compte, sans appel vers l'extérieur.
$ docker run -p 4000:4000 <registry>/waeg-gateway:<version>Ce n'est pas un pull qui fonctionne : les images ne sont pas encore publiques. Les partenaires de conception reçoivent les informations du registre en privé.
Déployer en 5 minutesFaçonnez-le en tant que partenaire de conception
Wäg n'est pas encore disponible publiquement. Nous travaillons avec un petit groupe d'équipes qui exploitent de l'IA multi-fournisseurs en production et prennent au sérieux la gouvernance et la souveraineté, afin de durcir la control plane sur des charges réelles.
- Toutes les capacités Enterprise incluses, sans coût de licence
- Migration accompagnée — nous la faisons avec vous, y compris depuis LiteLLM
- Un lien direct avec les ingénieurs et une influence réelle sur la suite