Skip to main content

予算管理が重要な理由

AIエージェントがループ内で有料APIを呼び出すと、コストがすぐに膨らむ可能性があります。予算管理を使用することで:
  • セッションごとの総支出に上限を設定できます
  • ドメインごとの上限を設定できます(例:api.weather.com でセッションあたり最大100 sats)
  • 各支払い前にコールバックを受け取れます
  • いつでも完全な支出レポートを取得できます

グローバル予算

402レスポンスに priceSats フィールドが含まれており、残りの予算を超過する場合、クライアントは支払いを行う前に BudgetExceededError をスローします — satoshiは消費されません。

ドメインごとの予算

ドメインごとの上限はグローバル上限とは独立してチェックされます — 支払いを続行するには両方を通過する必要があります。

コールバック

onBudgetExceeded / on_budget_exceededBudgetExceededError がスローされる直前に呼び出されます — ロギングやアラートに役立ちます。

支出レポート

spendingReport() は予算が設定されていない場合、null / None を返します。

BudgetExceededError の処理


並行処理に関する注意事項

予算制限が重要な場合、並行する Promise.all 呼び出しで1つの L402Client インスタンスを共有しないでください。BudgetTracker.check()record()await(Lightning Network の支払い)によって分離されています。異なるエンドポイントへの2つの並行した client.fetch() 呼び出しは、どちらかが支出を記録する前に、両方が予算チェックを通過する可能性があります — つまり、合計コストが一時的に予算上限を1回の支払い分超過する可能性があります。安全なパターン — 順次呼び出し:
リスクのあるパターン — 並列呼び出し:
並列ワークロードの緩和策: 並行支払い1回分の超過を吸収するために、budgetSats を保守的に設定してください(例:実際の上限の80%)。厳密な制限が必要な場合は、呼び出しを順次処理してください。

全オプションリファレンス