cost-federation について
cost-federation はフェデレーションの支出イベントを読み取り、ローリング期間ごとにピアの費用を集計します。費用の監視や停止しきい値の確認に使えますが、上流のイベント配信はまだ実装されていません。
主な機能
- 01ピア別の 1h、24h、7d 集計
- 02イベント数と米ドル支出
- 03停止しきい値の確認
- 04Markdown または JSON 出力
- 05イベント名前空間の設定
活用シーン
- 01新規ピアの支出基準値の設定
- 02フェデレーション費用の定期監視
- 03ADR-097 更新後のブレーカー判定確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ ruvnet/ ruflo --skill cost-federationインストール後、Claude Code で/cost-federationを入力して読み込まれたか確認します。
詳細
コストのフェデレーション
ADR-097 フェーズ 3 では、federation_send の完了ごとに {peerId, taskId, tokensUsed, usdSpent, ts} を含むイベントを 1 件発行する federation_spend イベントバスを規定しています。宣言済みのコンシューマーは cost-tracker です。これはピアごとのローリングウィンドウ(1 時間/24 時間/7 日間)を集計し、フェデレーションブレーカーはその集計を参照して、設定されたしきい値を超えたピアを一時停止します。
フェーズ 3 はまだ上流に取り込まれていません。 このスキルはコンシューマー側の接続処理であり、上流が federation-spend 名前空間にイベントを発行するとすぐに有効になります。それまでは、「イベントが見つかりません」という通知を表示して正常に終了します。
使用するタイミング
- 新しいピアへのフェデレーショントラフィックを許可する前に、ベースラインを確立します。
- 定期的に(例:
/loop 5m)、ウィンドウごとのピア別支出を監視します。 - ADR-097 フェーズ 2/3 の取り込み後、ブレーカーによる一時停止の判断根拠を確認します。
手順
-
スクリプトを実行します:
node plugins/ruflo-cost-tracker/scripts/federation.mjs任意の環境変数:
FED_FORMAT=json— マークダウンではなく JSON を出力しますFED_NAMESPACE=federation-spend— 対象の名前空間を上書きしますFED_SUSPEND_THRESHOLD_USD=5.0— ブレーカーのしきい値(ADR-097 のデフォルト)
-
結果を確認します — ピアごとの 1 時間/24 時間/7 日間のウィンドウにおける件数と支出額(USD)、およびブレーカーのしきい値を超えたピアを示す「一時停止しきい値チェック」ブロックを確認します。
ストレージ契約(コンシューマー側)
フェーズ 3 の取り込み後、イベントは名前空間 federation-spend にキーのプレフィックス fed-spend- で保存し、JSON 値は次の形式にします。
{
"peerId": "<peer-uuid>",
"taskId": "<task-uuid>",
"tokensUsed": 12345,
"usdSpent": 0.0287,
"ts": "2026-05-05T..."
}
スクリプトは、上流での生成方法にかかわらず、そのプレフィックスに一致するすべてのレコードを読み取ります。ピアごとに複数のイベントがある場合も、ローリングウィンドウの合計に正しく累積されます。
関連項目
- ADR-097:フェデレーション予算サーキットブレーカー — 完全な仕様
cost-report— 同じデータを別の視点で扱います(cost-report はローカルエージェントの支出に重点を置き、このスキルはピアごとのフェデレーション支出を扱います)ruflo-federationプラグイン — プロデューサー側(フェーズ 3 の取り込み後)