Skip to main content

Pourquoi le contrôle du budget est important

Un agent IA qui appelle des API payantes en boucle peut accumuler des coûts rapidement. Le contrôle du budget vous permet de :
  • Plafonner les dépenses totales par session
  • Définir des limites par domaine (ex. : max 100 sats/session sur api.weather.com)
  • Recevoir un callback avant chaque paiement
  • Obtenir un rapport de dépenses complet à tout moment

Budget global

Lorsqu’une réponse 402 inclut un champ priceSats et que celui-ci dépasserait le budget restant, le client lève une BudgetExceededError avant de payer — aucun satoshi n’est dépensé.

Budget par domaine

Les limites par domaine sont vérifiées indépendamment de la limite globale — les deux doivent être respectées pour que le paiement soit effectué.

Callbacks

onBudgetExceeded / on_budget_exceeded est appelé juste avant que BudgetExceededError soit levée — utile pour la journalisation ou les alertes.

Rapport de dépenses

spendingReport() retourne null / None lorsqu’aucun budget n’est configuré.

Gestion de BudgetExceededError


Notes sur la concurrence

Ne partagez pas une seule instance de L402Client entre des appels Promise.all concurrents lorsque les limites de budget sont importantes.BudgetTracker.check() et record() sont séparés par un await (le paiement Lightning). Deux appels client.fetch() concurrents vers des endpoints différents peuvent tous les deux passer la vérification du budget avant que l’un ou l’autre n’enregistre la dépense — ce qui signifie que le coût combiné peut temporairement dépasser votre plafond budgétaire d’un paiement.Modèle sûr — appels séquentiels :
Modèle risqué — appels parallèles :
Atténuation pour les charges de travail parallèles : définissez votre budgetSats de manière conservative (ex. : 80 % de votre limite réelle) pour absorber le dépassement provenant d’un paiement concurrent. Pour une application stricte, traitez les appels de manière séquentielle.

Référence complète des options