Token Usage Report は何をしますか?
エージェントのローカルロールアウトファイルを読み取り、直近の会話セグメント と セッション全体の使用量(2行)を表示します:
本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50
なぜ両方の行が必要か?セッション全体の数値はスクリプトによってローカルで計算されるため(追加のモデル呼び出しなし)、報告にかかるトークンオーバーヘッドはわずか数十文字程度で無視できます。ユーザーは現在のターンとセッション合計を比較できます。
実行タイミング
- 各セッションの最終応答を作成する前に 実行します。
- トリガーフレーズ:「token usage」「用量」「费用」「cost」「billing」「多少 tokens」「汇报」「spent」
- 理由:これにより、ユーザーはプロバイダーの実際の請求書と照合できるターンごとの使用量ラインを取得できます。コストは 推定値(価格スナップショット)であり、請求書ではありません。
実行方法
スクリプト:scripts/usage_report.py — Python 3.9+、標準ライブラリのみ(インストール不要)。ただし、DeepSeek Harness(dsh)ログにはオプションの zstandard パッケージが必要です。
python3 <this-skill-dir>/scripts/usage_report.py --latest # 最新のセグメント/セッション(デフォルト)
python3 <this-skill-dir>/scripts/usage_report.py --whole # 最新セッション全体
python3 <this-skill-dir>/scripts/usage_report.py --all # セッションごとの一覧
python3 <this-skill-dir>/scripts/usage_report.py --agent zcode|codex|claude|opencode|dsh
python3 <this-skill-dir>/scripts/usage_report.py --session <substring> # 特定のセッションを指定
常にこのスキルディレクトリへの 絶対パス を使用してください。最初に cd で移動しないでください。エージェントセッション内から実行する場合は、必ず --agent を明示的に指定してください(自動検出は最も最近変更されたファイルを選択しますが、これは 別の 同時実行中のエージェントに属する可能性があります)。--session で特定のセッションファイルを固定します。
スクリプトの出力を最終応答に そのまま 追加します。両方の行をそれぞれ別の行に配置します(上記「本段会话」を上、「整个会话」を下)。応答がマークダウンの場合、単一の改行はスペースとしてレンダリングされ2行が結合されるため、フェンスで囲まれたコードブロック内に配置するか、間に空白行を入れてください:
本段会话:输入 123456 / 缓存命中 98765 / 输出 4321 / 命中率 80.0% / 费用 ¥0.12
整个会话:输入 987654 / 缓存命中 876543 / 输出 43210 / 命中率 88.8% / 费用 ¥0.50
- 終了コード0 → 数値が前回の報告と同一に見えても、常に 行を含めてください(ユーザーは毎ターンそれを必要とします)。
- Codex は 単一 の行(セッション全体)を報告します — セグメントデータはありません。
- 終了コード1 /「No usage data found」→ エラーを表示せずにスキップします。ユーザーに問い合わせないでください。
- その他のエラー → 応答する前に原因(Pythonが見つからない、スキルディレクトリが移動されたなど)を修正してください。エラーを無視してスキップしないでください。
サポートされているエージェント
| エージェント | データソース | --latest の意味 |
|---|---|---|
| ZCode | ~/.zcode/cli/rollout/model-io-*.jsonl | 最後の セグメント:最新のリクエスト(そのターンとツールコールを含む)の 最後の メッセージがユーザープロンプトであるもの以降のレコード |
| Codex | ~/.codex/sessions/**/rollout-*.jsonl | 最後の セッション(全体) — Codex ロールアウトは 累積 のランニングトータルを保存するため、最後のレコードのみが単一行で報告されます。セグメントデータは利用不可 |
| Claude | ~/.claude/projects/**/*.jsonl | 最後の セグメント:最新の "type":"user" レコード以降のレコード |
| OpenCode | <data>/opencode/opencode.db(SQLite; Windowsの場合は %LOCALAPPDATA%、それ以外の場合は $XDG_DATA_HOME または ~/.local/share) | 最新セッションの最後の セグメント(最新のユーザーメッセージから) |
| DSH | ~/.dsh/sessions/**/session.jsonl[.zstd](zstd圧縮; オプションの zstandard が必要) | 最後の ターン(1ユーザー交換)+ セッション全体 |
これらはすべて、文書化され、ローカルで検証された、またはよく知られた形式から解析されます。DeepSeek Harness(dsh)やその他のエージェントは、小さなパーサーで追加できます — 詳細は README.md を参照してください。
精度と制限事項
このレポートは ローカルロールアウトデータと公開価格からの推定値 であり、プロバイダーの請求書ではありません。公式の使用量ページとの差異は以下の理由による可能性があります:
- Codex の合計は累積値:各
total_token_usageレコードはセッションのランニングトータルであるため、スクリプトは最後のレコードを使用します(決して合計しません)。Codex ではリクエストごとやセグメントごとの数値は利用できません。 - ピーク/オフピークはセッション開始時刻に適用 されますが、プロバイダーは各リクエストをその時刻で価格設定します。ピーク境界(北京時間 09:00–12:00 / 14:00–18:00)をまたぐセッションでは、またがった部分の価格が誤って計算されます。
- 推論出力トークン は Codex の
outputに含まれます(出力レートで課金)。ZCode ロールアウトには推論フィールドはありません。 - ローカルロールアウトはキー上のすべてのリクエストを捕捉できない場合があります(中断されたストリーム、非対話型呼び出し)。そのため、合計は完全なキー使用量よりも低くなる可能性があります。
- 料金はスナップショットです。ゲートウェイ/アグリゲーターキーや別のモデル ID は異なる料金で課金される場合があります。
コストモデル
DeepSeek 公式のピーク/オフピーク料金(2026-08-17 00:00 北京時間 有効、2026-08-13 発表)。ピーク時間帯:北京時間 09:00–12:00 および 14:00–18:00。それ以外の時間はオフピークで 半額 です。2026-08-17 より前のセッションは、固定のレガシー料金が適用されます。
| モデル | 期間 | キャッシュ入力 | ミス入力 | 出力 | (CNY / 100万トークン) |
|---|---|---|---|---|---|
| deepseek-v4-flash | オフピーク | 0.05 | 1.5 | 4.5 | |
| deepseek-v4-flash | ピーク | 0.10 | 3.0 | 9.0 | |
| deepseek-v4-pro | オフピーク | 0.15 | 4.5 | 13.5 | |
| deepseek-v4-pro | ピーク | 0.30 | 9.0 | 27.0 |
課金期間はセッション開始時刻(マシンのローカル時刻)から決定されます。公式料金が変更された場合は、scripts/usage_report.py 内の PRICES_* テーブルを更新してください。権威ある情報源は platform.deepseek.com です。
統合(セッションごとに自動報告)
以下のルールをエージェントのユーザーレベル指示ファイル(~/.zcode/AGENTS.md、~/.codex/AGENTS.md、CLAUDE.md、またはプロジェクトの AGENTS.md)に追加します:
各最終応答の前に
python3 <skill-dir>/scripts/usage_report.py --agent <your-agent> --latestを実行し(--agentは必ず指定 — 自動検出は別の同時実行中のエージェントのデータを読み取る可能性があります)、その2行の出力をそのまま追加します:本段会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥M整个会话:输入 X / 缓存命中 Y / 输出 Z / 命中率 N% / 费用 ¥Mスクリプトが「No usage data found」と出力した場合のみスキップします。
セキュリティ
- このスクリプトは、ユーザーのホームディレクトリ以下の ローカルロールアウトJSONファイルのみ を読み取ります。APIキー、
.envファイル、認証情報を読み取ったり、出力したり、必要としたりすることはありません。 - ロールアウトファイルにはプロンプトテキストが含まれる場合があります — その内容をエコーしないでください。スクリプトが出力する集計数値のみを表示します。