mcpField
C
cost-federation

cost-federation

github.com/ruvnetエージェントワークフロー80.0k683 回インストール今日更新
リポジトリ

cost-federation について

cost-federation はフェデレーションの支出イベントを読み取り、ローリング期間ごとにピアの費用を集計します。費用の監視や停止しきい値の確認に使えますが、上流のイベント配信はまだ実装されていません。

主な機能

  1. 01ピア別の 1h、24h、7d 集計
  2. 02イベント数と米ドル支出
  3. 03停止しきい値の確認
  4. 04Markdown または JSON 出力
  5. 05イベント名前空間の設定

活用シーン

  1. 01新規ピアの支出基準値の設定
  2. 02フェデレーション費用の定期監視
  3. 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 の取り込み後、ブレーカーによる一時停止の判断根拠を確認します。

手順

  1. スクリプトを実行します:

    node plugins/ruflo-cost-tracker/scripts/federation.mjs
    

    任意の環境変数:

    • FED_FORMAT=json — マークダウンではなく JSON を出力します
    • FED_NAMESPACE=federation-spend — 対象の名前空間を上書きします
    • FED_SUSPEND_THRESHOLD_USD=5.0 — ブレーカーのしきい値(ADR-097 のデフォルト)
  2. 結果を確認します — ピアごとの 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 の取り込み後)

コメント