予算管理が重要な理由
AIエージェントがループ内で有料APIを呼び出すと、コストがすぐに膨らむ可能性があります。予算管理を使用することで:- セッションごとの総支出に上限を設定できます
- ドメインごとの上限を設定できます(例:
api.weather.comでセッションあたり最大100 sats) - 各支払い前にコールバックを受け取れます
- いつでも完全な支出レポートを取得できます
グローバル予算
- TypeScript
- Python
priceSats フィールドが含まれており、残りの予算を超過する場合、クライアントは支払いを行う前に BudgetExceededError をスローします — satoshiは消費されません。
ドメインごとの予算
- TypeScript
- Python
コールバック
- TypeScript
- Python
onBudgetExceeded / on_budget_exceeded は BudgetExceededError がスローされる直前に呼び出されます — ロギングやアラートに役立ちます。
支出レポート
- TypeScript
- Python
spendingReport() は予算が設定されていない場合、null / None を返します。
BudgetExceededError の処理
- TypeScript
- Python
並行処理に関する注意事項
全オプションリファレンス
| オプション | TypeScript | Python | デフォルト | 説明 |
|---|---|---|---|---|
| グローバル予算 | budgetSats | budget_sats | 無制限 | セッションの最大 sats |
| ドメインごと | budgetPerDomain | budget_per_domain | {} | ドメイン → 最大 sats のマップ |
| 支出フック | onSpend | on_spend | — | 各支払い後に呼び出される |
| 超過フック | onBudgetExceeded | on_budget_exceeded | — | スロー前に呼び出される |