trazum について
Trazumは、AI利用コストを分析し、プロンプト、モデル、ワークフローの変更を評価するローカル分析ツール兼MCPサーバーです。spend_guardは、設定済みの上限と利用ログを基に、呼び出し前に実行案を判定します。
主な機能
- 01ローカルの利用ログとプロンプトを分析
- 02費用を見積もり、データ不足を提示
- 03キャッシュやモデル変更の機会を順位付け
- 04計画と実際の利用状況を比較
- 05決定的なルールによるプロンプト短縮
- 06呼び出し判定用の支出上限設定
活用シーン
- 01プロジェクトやモデル別の利用状況を確認
- 02プロンプトやモデルの変更を評価
- 03支出前に呼び出し案を確認
- 04ポリシー変更前後の利用量を比較
MCP 対応
MCPサーバーはspend_guardを提供し、設定済みの上限と既存の利用ログに基づいて、呼び出し案にyes、no、cannot-tellを返します。MCPクライアントからTrazumの分析を照会することもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
7掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| label | string | いいえ | この呼び出しが属するワークロード。ラベルごとの上限に使用します。 |
| model | string | はい | 呼び出し先となるモデル ID。既知のモデルは list_models を呼び出して確認できます。 |
| waive | array | いいえ | trazum.config.json の免除リスト — [{"gate": "limits.sessionUsd", "reason": "...", "until": "YYYY-MM-DD"}]。免除された上限も測定値は報告されますが、上限を超えた場合は免除情報を添えて yes と回答します。免除の記録は残ります。設定ファイルと同じ方法で検証されます。 |
| limits | object | いいえ | trazum.config.json の制限ポリシー — {"dayUsd": n, "sessionUsd": n, "byLabel": {"name": n}}。金額は正数です。ゲートウェイと trazum serve が使用するものと同じ関数で判定するため、3 つの入口で結果が食い違うことはありません。設定ファイルと同じ方法で検証され、未知のキーや正数でない上限は理由とともに拒否されます。 |
| session | string | いいえ | この呼び出しが属する会話。セッションごとの上限の判定に使用し、応答には含めません。 |
| limitUsd | number | いいえ | 判定に使用する予算です。省略すると回答は cannot-tell になります。このツールは人間が設定したポリシーに対する位置を報告するもので、ポリシーを決して捏造しません。 |
| position | object | いいえ | スコープごとの実測支出です。推測ではなく、利用ログから取得します。省略したスコープは未測定となり、その上限についての回答は「上限未満」ではなく cannot-tell です。 |
| position.dayUsd | number | いいえ | |
| position.labelUsd | number | いいえ | |
| position.sessionUsd | number | いいえ | |
| consumedUsd | number | いいえ | 現時点までの実測支出です。推測ではなく、請求書から取得したドル建ての金額です。省略すると、測定されていないのに肯定するのではなく、回答は cannot-tell になります。 |
| inputTokens | integer | はい | キャッシュされた内容を含め、呼び出しで送信する入力トークン数です。 |
| outputTokens | integer | いいえ | 返されると予想される出力トークン数です。ゼロのままにすると、回答は入力のみを価格計算し、指定された数値をそのまま示します。 |
| batchEligible | boolean | いいえ | この作業をバッチ処理の時間帯まで待てるかどうかです。これを判断できるのはあなただけなので、指定された場合にのみバッチ処理の代替案を提示します。 |
詳細
Trazum
AI の支出を把握し、変更内容を決めましょう。
AI の利用にかかっている費用を見つけ、変更内容を選び、その結果を確認できます。 Trazum はローカルの利用ログとプロンプトを分析し、キャッシュやモデル変更などの改善機会を優先順位付けします。また、推定値と実測結果を分けて管理します。
オープンソース · ローカル分析 · すぐに始めるためのプロバイダーキーは不要
まずはこちら:グローバルインストール不要のワンコマンド
Node.js 20 以降が必要です。npx によって npm から Trazum がダウンロードされる場合があります。
npx @trazum/cli bill
examples/claude-projects の例示データです。
顧客の実績ではありません。CLI の出力から生成されています。
パスを指定しない場合、bill はローカルの Claude Code トランスクリプトを読み込み、プロジェクト別およびモデル別に結果をまとめます。**サブスクリプションの場合、これは API 利用相当の費用であり、実際に支払った金額ではありません。**価格が設定されていないモデルは、データの不足として報告されます。ローカル分析ではファイルはアップロードされません。
対応する利用状況のエクスポートデータをお持ちですか?そのパスを指定してください。
npx @trazum/cli bill ./usage-export.jsonl
レポートを判断につなげる
API 利用料を支払っているチームにとって重要なのは、次に何を変更するかです。 最も利用量の多いワークロードから始め、ある分析結果の前提を確認し、モデルやプロンプトを変更する前に品質を評価してください。
- 利用状況を把握する:
billで記録された費用とデータの不足を確認できます。 - 変更を1つ選ぶ:
planが正規化された利用ログから改善機会を優先順位付けします。 - 結果を確認する:
verifyが保存済みの計画とその後の利用状況を比較します。証拠だけでは結果を確定できない場合も含まれます。
最初のレポートから検証までの手順を見る。 予測される節約額は、請求額が必ず減ることを保証するものではありません。
サブスクリプションを利用していますか?
API 利用相当の推定額が小さくなっても、定額のサブスクリプション料金は減りません。 Trazum を使って会話の増加を調べ、重複するプロンプトの文面を見直し、自分で管理する指示のトークン予算を設定できます。短くしたプロンプトを採用する前に、タスクの品質を確認してください。エージェントのコンテキストを自動管理したり、プロバイダーの制限内でメッセージ数が増えることを保証したりするものではありません。
Tasks ダッシュボードおよび CLI/MCP 2.6.0 では: タスク効率化により、Claude Code/Codex のタスク利用状況、ツールの反復使用を示す証拠、元に戻せる指示ポリシー、明示的な受け入れ判断を関連付けます。成功や節約を推測することなく、変更前後の観測された利用状況を比較できます。
レポートを保存または共有する
npx @trazum/cli bill ./usage-export.jsonl --html-out bill.html
PDF、CSV、Markdown 形式でのエクスポートも利用できます。レポートには利用状況と費用の情報が含まれるため、共有する前に内容を確認してください。
インテグレーションを選ぶ
Claude Code は最初のネイティブインテグレーションですが、特定のプロバイダーに限定されるわけではありません。Codex のセッションインポート、正規化された使用量ログ、プロバイダーのエクスポートも、同じコアに取り込まれます。MCP クライアントはネイティブのトランスクリプトアダプターがなくても、Trazum に問い合わせることができます。
| 必要なもの | こちらから始める |
|---|---|
| ターミナルレポート | クイックスタート |
| ネイティブエージェントセッションのインポート | Claude Code または Codex |
| タスク単位の効率性実験 | 2.6.0 以降の 分析、ポリシーの適用、比較 |
| エージェントとのインテグレーション | CLI、MCP、スキルのワークフロー |
| API コントラクトまたは強制される呼び出し経路 | ローカル HTTP API または ゲートウェイ |
| ドキュメント全体 | タスク別インデックス |
ハーネス、モデル、支払い方式はそれぞれ別の情報です。API 相当額の見積もりはサブスクリプションの請求額ではありません。また、価格が設定されていないモデルは未確定のままです。
高度なワークフロー、コマンド、アーキテクチャ、制限事項を見る
エージェントはループの中で費用を使います。呼び出し前に料金を算出します。
エージェント1体の費用は、そのエージェントの費用にすぎません。エージェントの群れは、誰も反復ごとに監視していないループの中で費用を使い、1か月後に、意思決定ごとの内訳がない合計額として請求が届きます。
Trazum はそのループに組み込まれます。MCP サーバーの最初のツールは spend_guard です。ここにあるツールの中で、誰かが入力する文をきっかけとしないのはこれだけです。
"May I spend this?" -> yes, no, or cannot-tell.
拒否時には、同じ呼び出しを実行するための、より低コストな方法が提示されます。それぞれの呼び出しに合わせて料金が算出され、前提条件も明示されます。上限は trazum.config.json から取得し、これまでの支出額はホストがすでに書き込んでいる使用量ログから取得します。回答のために呼び出しが実行されたり、費用が発生したりすることはありません。
claude plugin marketplace add Davmunrey/Trazum
claude plugin install trazum@trazum
この1行でスキルと MCP サーバーが導入されます。リポジトリから Agent Skills を読み込むエージェントには、npx skills add Davmunrey/Trazum で同じスキルを追加できます。ほかの MCP クライアントもすべて同じ mcpServers JSON を読み込むため、Cursor(.cursor/mcp.json)、Windsurf、Claude Desktop など、どれも貼り付けるだけで使えます。
{ "mcpServers": { "trazum": { "command": "npx", "args": ["-y", "@trazum/mcp"] } } }
サーバーは公式 MCP レジストリに io.github.Davmunrey/trazum として登録されており、リリースのたびに掲載情報が更新されます。
このリンクを開くと、すでに読み込まれているサンプルファイルを使って、CLI の純粋なサブセットがページ上で実行されます。ターミナルと同じ @trazum/core 関数が使われます。貼り付けた内容がブラウザーの外に送信されることはありません。
議論の全体像を1枚のスクリーンショットで
実際の出力を転記したものです。最後の2行をご覧ください。ルールによる節約は 月額$24.00で、その上の提案は$528.40、22倍の価値があります。この 差こそが、このツールを導入する理由のすべてです。
npm run draw:architectureで生成しており、手描きではありません。図にないパッケージが存在する場合、依存関係がないと示されているのにコアが依存関係を持つ場合、または図に記載されていないのに3つ目のモジュールがネットワークへのアクセスを許可されている場合は、architecture-image.test.jsがビルドを失敗させます。
誰もが注目するのはプロンプトですが、たいていは費用の安い部分です。 上の実行では、テキストの40%を削減できましたが、請求額への影響は3.5%でした。残りに影響したのは、それまで誰も尋ねていなかった質問です。このタスクに、実行中のモデルが本当に必要でしょうか?
すべての数値に根拠があります。 それぞれ月額で算出され、単一ファイルで再現できる16件の提案があります。利用できていないキャッシュ、Batch API経由で処理できる作業、リクエストにパラメーターとして含められる形状を毎回説明するためにトークンを消費するスキーマです。その下には、テキスト自体を短縮する決定論的なルールが12個あります。同じ入力なら同じ出力となり、無料でオフラインで動作し、コード、URL、メールアドレス、プレースホルダーには決して触れません。さらに、必要な場合にのみ、設定したプロバイダーを通じて実行されるオプションのLLM処理があります。これは圧縮ルールでは対応できない処理を行います。
┌──────────────┐
│ @trazum/core │ the library: rules, tokens, pricing
└──────┬───────┘ zero dependencies, browser-safe
┌────────────┬─────────────┼─────────────┬─────────────┐
@trazum/cli @trazum/mcp trazum-vscode @trazum/web action/
54 commands MCP server the editor Next.js comments on
for your agents status bar pull requests
@trazum/tokenizer-openai optional: exact counts for OpenAI
install it or do not, nothing else changes
目次
| 目的 | 移動先 |
|---|---|
| まず結果を確認する | クイックスタート |
| 記録された支出を把握する | 使用量の入力および請求額/プロファイル |
| 予算を設定する | CIゲートまたはゲートウェイの判定 |
| Trazumを連携する | CLI、ウェブ、ライブラリ、エージェント |
| コマンドやデータ仕様を確認する | コマンドリファレンスおよびドキュメント一覧 |
制限事項を明確に説明 · プライバシー · 料金 · コントリビューション
実際に行うこと
アナライザーは16件の指摘を報告し、それぞれの見積もりに前提条件を付記します。
1. 実際にどこにコストがかかっているかを示します。 まず読む価値があるのはこの部分です。数字が示されているからです。すべての提案は、実際の呼び出し量に基づいて月額で算出されており、テキストを短くすることを目的としたものはありません。
| 提案 | 重要な理由 |
|---|---|
| プロンプトキャッシュ | キャッシュからの読み取りコストは入力の10%です。削減額は実際の安定したプレフィックスに基づいて計算されます。{{placeholders}} を含むテンプレートでは、キャッシュされるのは最初のプレースホルダーより前の部分だけで、プロンプト全体ではありません。 |
| テンプレートの並べ替え | 最初の可変プレースホルダーより後にある安定した指示は、現在のところキャッシュされません。Trazum は、それらを前に移動した場合の削減額を算出し、--reorder を指定すると実際に移動します。 |
| Batch API | レイテンシーが許容される作業では、入力と出力が50%割引になります。 |
| より安価なモデル | 複雑さに基づくヒューリスティックです。タスクが単純に見える場合、モデルのティアを下げるとどれだけ節約できるかを示します。 |
| 出力がコストの大半を占める場合 | プロンプトより回答に多くの費用を払っている場合、プロンプトを短くしても節約には限界があります。 |
| 期間限定価格 | 期限切れになる導入価格を基に予算を立てている場合に警告します。 |
| コンテキストウィンドウ | プロンプトが収まらない場合、呼び出しは失敗します。 |
| 矛盾する指示 | 3段落前に「英語で回答してください」と書かれているのに、「顧客自身の言語で返信してください」と書かれている場合です。モデルはどちらかを選ばなければならず、どちらを選ぶかは呼び出しごとに変わる可能性があります。これは正確性の問題であると同時に、トークンを二重に消費する問題でもあります。 |
| 冗長な例 | 先行する例のほぼコピーになっている数ショット例と、それらの月額コストを示します。 |
| 出力形式の重複した記述 | コードブロック内に示したスキーマを、さらに文章でも説明している場合です。残す価値があるのはコードブロックです。 |
| リクエストで指定できるスキーマ | 「出力形式:」に続くスキーマブロックには、呼び出しのたびに入力トークン分の費用がかかります。現在、主要なAPIはすべてレスポンススキーマをパラメーターとして受け取れます。対応する構造化出力APIでは形式を強制できますが、スキーマのトークンには引き続き課金される場合があります。詳しくは以下をご覧ください。 |
最後の4項目は提案のみです。矛盾した指示への正解は作成者にしか分かりません。また、冗長に見える例が、意図的に境界ケースを示している場合もあります。Trazum は指摘しますが、削除はしません。
構造化出力はコードの変更です
Trazum は、プロンプト内に記述された出力スキーマを特定し、代わりにプロバイダーの構造化出力 API を使用するよう提案できます。スキーマを自動的に削除することはありません。契約を維持するのは呼び出し元のアプリケーションです。
対応している場合、制約付きデコーダーによって形式の信頼性が向上することがあります。**スキーマをリクエストパラメーターに移しても、課金が減るとは限りません。**プロバイダーによっては、スキーマのトークンも引き続きカウントする場合があります。節約できると主張する前に、実際の使用量を比較してください。この検出結果が見積もるのは、該当するプロンプトテキストの量であり、プロバイダーの請求額が確実に減る量ではありません。
明示的な出力指示が前にあるブロックだけが対象です。入力例はモデルに必要なデータである可能性があるため、スキーマと見なして削除してはいけません。
例の検出器は、実際に少数例ブロックが増えていく様子を踏まえ、ほぼ同一のコピーを検出します。意図的に言い換えは検出しません。そのケースにはモデルが必要であり、LLM パスのロードマップに含まれています。
**2. 次に、プロンプト自体を短縮します。**丁寧表現、冗長表現、回りくどい言い回し、重複した段落、装飾的な区切り、大文字での強調を対象とする、12 の決定論的ルールがあります。レベルは safe(意味上のリスクなし)と aggressive(差分を確認してください)の 2 つです。多くの場合、短縮量はページ上で最も小さい数値になります。そのままの形で報告し、見栄えよく取り繕うことはしません。
**3. プロンプトを壊すものには決して手を加えません。**コードフェンス、インデントされたコードブロック、インラインコード、URL、メールアドレス、テンプレートプレースホルダー({{x}}、${x}、{x}、{% %})、XML/HTML タグは、いずれのルールを実行する前にも切り分けられます。ルールによってこれらのいずれかが消えてしまった場合、そのルールは破棄され、残りの処理は続行されます。
**aggressive 実行のレビュー。**各ルールは実際に変更した内容を報告するため、最も節約できるレベルも、差分全体をひとまとめにしてではなく、ルールごとに評価できます。納得できないルールが 1 つだけなら、--disable で除外できます。
[aggressive] Intensifiers (3×, ~6 tokens)
VERY → —
extremely → —
quite → —
[aggressive] Self-verification instructions (1×, ~17 tokens)
You should double-check your answer before re… → —
**4. 必要に応じて、LLM による確認も実行します。**結果が元より短く、保護対象の内容がバイト単位で同一の場合にのみ採用されます。それ以外の場合は、決定論的なバージョンを維持します。元の状態より悪い結果を返すことはありません。--suggest を指定すると、フレーズを 1 つずつ提案します。たとえば You should always make sure to → Always のように、提案は表示前にそれぞれプロンプトと照合されます。そのため、10 個のうち 8 個が残ったとしても、最初から最後まで読み直す書き換えではなく、有意義な朝の成果になります。
**5. 「短くして」の前に出てくる疑問に答えます。**1 つのファイルを短縮するのは、ここでできることの中で最小の作業です。optimize は 54 個あるコマンドの 1 つです。上の表では、それぞれが何に答えるかを示しています。プロンプトに無駄があると知ることと、どのプロンプトなのか、誰の変更でそうなったのか、短縮版でも機能するのかを知ることは別だからです。
check、diff、rank、blame はすべて --markdown-out を受け付けるため、答えを誰も見ていないターミナルではなく、プルリクエストのコメントに載せることができます。
**既存の CI でそのままゲートとして実行できます。**バイナリは 1 つ、終了コードは 2 種類です。GitLab CI、Jenkins、CircleCI、pre-commit フック向けの実例も用意されています。ベンダーのプラグインはありません。どのプラグインも、伝えるべき終了コードとのずれを生む、2 つ目のコードパスになってしまうためです。
54 個のコマンド
| コマンド | 回答する質問 |
|---|---|
trazum task | 承認済みのタスクは、レビュー済みの指示変更後に使用量が減りましたか?分析、適用、比較、元に戻す操作を行います。2.6.0 以降。 |
trazum filter | エージェントのコンテキストに渡す前に、繰り返し出力されるツールログの行を簡潔にまとめ、元の内容はローカルに保持します。オプトイン。 |
trazum init | リポジトリのプロンプトと利用可能な使用状況を調べてから、設定を書き込みます。最初のレポート後に行う任意のセットアップです。 |
trazum optimize | このプロンプトから何を削減でき、その価値は月あたりどれくらいですか? |
trazum check | このプロンプトはトークン予算に収まっていますか?リポジトリの状態は記録済みのベースラインから逸脱していませんか?どちらかに失敗すると終了コード 1 を返します。これが CI のゲートです。 |
trazum baseline | このリポジトリのプロンプトは、現時点でどれくらいの費用がかかっていますか?記録してコミットします。 |
trazum diff | この編集にはどれくらいの費用がかかりましたか? |
trazum rank | この 40 個のプロンプトのうち、午後を費やして取り組む価値があるのはどれですか? |
trazum doctor | ワークスペース全体で何が問題になっていますか? |
trazum prune | どのフューショット例がトークンを使う価値がありますか?測定したうえで、費用を使う前に確認を求めます。 |
trazum blame | 誰が、いつ、このプロンプトの費用を増やしましたか? |
trazum eval | 短くしたプロンプトでも、引き続き役割を果たしますか? |
trazum where | ソースファイルの中に隠れているプロンプトはどれですか? |
trazum models | 各モデルの費用と、キャッシュの最小要件はどれくらいですか? |
trazum profile | 実際に費用がかかったのはどこですか?プロンプトではなく、使用状況ログを読み込みます。 |
trazum route | より安価なモデルで十分ですか?測定したうえで、費用を使う前に確認を求めます。 |
trazum plan | ログに示されたこと全体の中で、最初に何をすべきですか?それぞれの施策にはどれくらいの価値がありますか? |
trazum verify | 計画した削減効果は実際に得られましたか?結果は 3 種類で、2 種類だけになることはありません。 |
trazum history | 20 件のレポート全体から、どの 2 件だけでも分からなかったことが見えてきましたか?示すのは傾向であり、予測ではありません。 |
trazum connect | プロバイダーから実際に請求された金額はいくらですか?プロバイダーの API から読み込み、手動でエクスポートしたデータは使いません。 |
trazum store | これまでに何を測定し、保持しましたか?集計値のみです。プロンプトのテキストは一切含みません。 |
trazum watch | 予算を超えたものはありますか?測定された超過のみを扱い、予測はしません。 |
trazum serve | この呼び出しにはいくらかかり、予算はありますか?ミリ秒単位で回答し、2 つの側面を別々に保ちます。 |
trazum gateway | 使わないよう助言するのではなく、呼び出しを停止できますか?拒否します。置き換えはしません。 |
trazum ladder | まず安価なモデルを使い、失敗時に上位モデルへ切り替える方法は、節約になりますか、それとも費用が増えますか?損益分岐率を明示します。 |
trazum experiment | 実際のトラフィックでは、2 つのグループのうちどちらが優れていますか?勝者がいる場合に限り、勝者を示します。 |
trazum quality | そのプロンプトの変更によって、気づかないうちに製品の品質が低下しましたか?原因を特定できない事柄を、責任の対象にはしません。 |
trazum semantic | このプロンプトは同じことを 2 度述べていますか?それとも矛盾していますか?モデルが候補を提示し、チェッカーが判断します。 |
trazum owners | この費用は誰の予算に計上されますか?割り当てられていない費用を按分することはありません。 |
trazum commitment | その利用量コミットメント契約には、どれほどの価値があったでしょうか?測定済みの月をもとに、両方向の費用を算出します。 |
trazum report | その 1 年間は実際にどのような状況でしたか?新しいデータは使わず、自身の見落としも一覧表示します。 |
trazum schema | この形式のドキュメントに必須のフィールドはどれですか?Trazum 以外のバリデーター向けの JSON Schema です。 |
trazum conform | ツールが出力するドキュメントは形式に準拠していますか?また、どのような問いには答えられませんか? |
trazum rollup | 4 人がそれぞれ 4 つの項目を測定しました。合計はいくらで、マージによって何が失われましたか?形式とマージの機能であり、サービスではありません。 |
trazum pulse | 実行されるはずのものは、きちんと実行されましたか?このコマンド自体は何も実行しません。気づくのは CI です。 |
trazum position | 月の現時点の状況は、すべての上限に対してどうなっていますか?測定値を分母とともに示し、予測は一切しません。 |
trazum receipt | 別の場所で読み込んでも根拠を確認できる形式で、この費用はいくらですか?件数と金額の内訳を示し、合算できるようにします。信じるだけの数字にはしません。プロンプトのテキスト、回答、パスは含みません。それらを格納するフィールドがありません。 |
trazum from-claude-code | Claude Code のセッションにはいくらかかりましたか?ディスク上にすでにあるトランスクリプトを読み込み、数値のみを扱います。テキストは一切読みません。 |
trazum from-codex | ローカルの Codex 展開では、API 相当の使用量をどこまで確認できますか?明示的なパス、裏付けのあるカウンター、プロンプトの内容なしで確認します。 |
trazum from-otel | OpenTelemetry のエクスポートに含まれる LLM 呼び出しには、いくらかかりましたか?エクスポーターがすでに出力している GenAI スパンを読み込み、件数のみを扱います。プロンプトは読みません。 |
trazum from-litellm | LiteLLM プロキシが記録した呼び出しには、いくらかかりましたか?ゲートウェイがすでに書き込んでいる使用額ログを読み込み、件数のみを扱います。同じ行にあるプロンプト、キー、アドレスは読みません。 |
trazum reconcile | Trazum の算出額は、プロバイダーの請求額と一致していますか?2 つの金額を並べて示しますが、合算はしません。説明のつかない差額は、そのまま別に残します。 |
trazum bill | これらすべてにいくらかかりましたか?入口は 1 つです。コンバーターが読み込める任意の形式のファイルまたはディレクトリを読み込み、各ファイルの形式をその内容から判別し、変換、価格算出を行い、レシートを出力して終了します。形式を特定できないファイルは名前を示し、形式を推測しません。 |
trazum from-openrouter | OpenRouter によると、どれくらい使用しましたか?管理キーを使って取得したアクティビティレポートを読み込み、ライブの価格オーバーレイと同じスラッグで照合します。OpenRouter の請求額は Trazum の算出額の横に表示し、合算しません。推論トークンは件数に含めますが、加算はしません。 |
trazum from-openai | OpenAI によると、組織の使用量はいくらですか?管理者キーで取得した補完の使用量レポートを読み込みます。記録には OpenAI 独自の、プロンプト内にキャッシュされたデータの形式を保持します。バッチ行とデフォルト以外のティアは除外し、その旨を明記します。音声または画像のトークンにテキスト料金を適用することはありません。 |
trazum from-anthropic | プロバイダー自身によると、組織の使用量はいくらですか?管理者キーで取得した使用量レポートを読み込みます。Trazum が認証情報を保持することはありません。バッチ行に標準料金を適用せず、ワークスペース名によるラベル付けはユーザーが作成したマッピングがある場合に限ります。 |
trazum from-helicone | Helicone プロキシが保持したリクエストには、いくらかかりましたか?要求されたモデルではなく、応答したモデルの料金を算出し、モデルの置き換え件数も数えます。 |
trazum from-langsmith | LangSmith のトレースに含まれるモデル呼び出しには、いくらかかりましたか?対象は llm 実行のみです。トレースはツリーであるため、すべてを合計すると同じトークンに 2 度料金を請求することになるからです。また、呼び出し元のクライアントクラスをもとに料金を算出することも拒否します。 |
trazum switch | このトラフィックを移行すべきですか?移行すると、いつ費用対効果が得られますか?測定した差額、申告された移行費用、過去の実績に基づく割り算で示す損益分岐点、さらに必要な評価自体の費用も算出します。 |
trazum ownrate | セルフホストモデルでは、100 万トークンあたりいくらかかりますか?申告内容から算出した GPU の料金と、測定済みのスループットをもとに計算します。推測はしません。 |
trazum bench | この環境で Trazum は何を使って、どれくらいの速度で動作しますか?各ワークロードを 1 回実行し、評価は加えません。変更前後に実行して比較できます。 |
trazum write | このプロンプトには何を記述すべきで、送信する前の費用はいくらですか?確認を求めます。何も生成しません。 |
trazum rules | どのようなルールがあり、それぞれ何をしますか? |
trazum feedback | どこに報告すればよく、どのような情報を求められますか?何も送信しません。 |
はじめに
Node.js 20 以降が必要です。 npx でパッケージをダウンロードできます。ローカルでの分析に API キーは必要ありません。お手元のデータに合ったタスクを選んでください。
npx @trazum/cli bill ./usage-export.jsonl
npx @trazum/cli optimize ./prompt.txt --cost
1 つ目は記録された使用状況を読み取ります。2 つ目はプロンプトの変更による効果を推定します。予測される節約額は、プロバイダーからの請求額ではありません。再現可能な例と次の手順については、クイックスタートをご覧ください。
最初の 5 分:trazum init
最初のレポートを作成した後、必要に応じてプロジェクト内で npx @trazum/cli init を実行し、プロンプトと利用可能な使用状況を確認して、設定ファイルを作成し、検出結果を特定します。init が書き込む内容と上書きを拒否する内容をお読みください。
CLI
npm install -g @trazum/cli でインストールするか、引き続き npx を使用できます。CLI の例と設定では、トークン予算、レポート、CI、価格の上書きについて説明しています。コマンドリファレンスもご覧ください。
残りのコマンドは、専用のガイドで
タスクからコマンドを探すことができます。
trazum --help でコマンドの一覧が表示され、trazum <command> --help でフラグの説明が表示されます。
Web
Playground を開くと、サンプルファイルを試せます。ローカルで開発する場合は、npm install、npm run build の順に実行してから、npm run dev:web を実行します。Web のセットアップと API レシピをご覧ください。
サインイン(任意)
アカウントはデフォルトで無効になっています。有効にすると、デプロイの運用者のデータベースを利用する、保存済みプロンプトライブラリと共有リンクが追加されます。アカウントのセットアップとデータの取り扱いをご覧ください。
Vercel へのデプロイ
ライブラリ
アプリケーションで分析を使用するには、@trazum/core をインストールしてください。
ライブラリの例とパッケージ APIをご覧ください。
言語
レポートは英語とスペイン語で利用できます(--locale es を指定するか、Web ではブラウザーの言語が使われます)。ロケールによって変わるのはレポートであり、最適化の内容ではありません。どちらの言語でも、最適化されたテキスト、トークン数、アドバイザリー ID は同じです。何が翻訳され、何が意図的に翻訳されないのか、またレポートとプロンプトがそれぞれどのように言語を選ぶのかについては、コマンドリファレンスで詳しく説明しています。
独自の LLM への接続
任意の LLM パス(--suggest、eval、route)は、環境変数で設定した OpenAI 互換またはネイティブのエンドポイントと通信します。vLLM、Ollama、OpenRouter、Anthropic、Gemini、Bedrock、Vertex に対応しており、キーは保存されません。設定、拒否の動作、--pricing-live オーバーレイについては、コマンドリファレンスをご覧ください。
トークン単位で課金されるすべてのモデル
Trazum は Anthropic、OpenAI、Google、Moonshot、DeepSeek、xAI、Mistral の価格を設定しています。
すべてのレポートには、価格がどれくらい前のものかが記載されます。価格表の確認日と、そこから何日経過したかが示されます。すべての金額はこの一覧を基にしているためです。日付だけでは、信頼できるかどうかを判断するために今日との差を計算する必要があります。45 日を過ぎると、読者に「古い」の意味を判断させるのではなく、その旨をレポート内の文章で伝えます。
7 つのプロバイダーはそれぞれ独立して価格を公開しているため、各プロバイダーに個別の確認日が設定されており、trazum models で確認できます。上記の見出しにある数値は 7 つのうち最も古いものです。「この価格表はどれくらい前のものか」という問いには、最も古い部分が基準になるためです。
trazum optimize prompt.txt --model gpt-5 --calls 50000
trazum optimize prompt.txt --model kimi-k3
trazum models # the whole table, with each provider's terms
プロンプトを読み取る機能は、ルール、保護パス、--reorder、矛盾検出器、例の検出器など、すでにすべてプロバイダーに依存せず、テキストを処理します。異なるのは料金であり、料金はひとつの数値セットではありません。
| キャッシュ読み込み | OpenAI(GPT-6.1 Solでは5%)、Google、Mistral、MoonshotのKimi K3、AnthropicのOpus 5およびSonnet 5までは、入力の10%。MoonshotのK2シリーズでは17%~20%。xAIではモデルごとに異なり、Grok 4.5では15%、4.3および4.20ファミリーでは16%、Build 0.1では20%、4.6および4.7では25%。2つのプロバイダーでは、世代間で変更されています。AnthropicのOpus 5.5およびSonnet 5.5は5%、Fable 5.1およびMythos 5.1は2.5%で、DeepSeek V4.1 Flashは2%、V4 Proは約**3%**です。V3は10%でした |
| キャッシュ書き込み | Anthropic、およびOpenAIのGPT-5.6以降では入力の125%で、エントリーの有効期間は少なくとも30分です。Kimi K3はAnthropicと同様、TTLごとに独立した項目として課金され、5分間は100%、1時間は200%です。それ以前のOpenAIモデル、Google、KimiのK2シリーズ、DeepSeek、xAIでは100%です。Mistralは書き込み料金を公表しておらず、書き込みトークンも報告していません |
| キャッシュの最小トークン数 | プロバイダー単位ではなく、モデル単位です。 Anthropicだけは512~4,096の範囲です。OpenAIとDeepSeekでは1,024、Gemini 3.6 Flash、3.8 Flash、3.1 Proでは4,096、提供終了したGemini 2.5モデルでは2,048です。Moonshot、xAI、Mistralは公表していないため、これらのキャッシュ料金はログに基づいて計算され、最小値が必要なアドバイスは表示されません |
| キャッシュの開始方法 | Anthropicではプレフィックスを指定します。OpenAI、Google、Moonshot、DeepSeek、xAIでは自動です。Mistralは明記していないため、Trazumはキャッシュに関するアドバイスを表示しません |
| Batch API | Anthropic、OpenAI、Google、Mistralでは50%。Kimi K2.7 CodeおよびK2.6では40%割引。Grok 4.3および4.20ファミリーでは20%割引。DeepSeek、Kimi K3、その他のxAIモデルでは割引なし |
| 一律ではない料金 | Claude Haiku 5.5、Gemini 3.1 Pro Preview、OpenAIのGPT-5.6以降、および現行のすべてのGrokでは、プロンプトの長さに応じて各リクエストに課金されます。100,000、200,000、272,000トークンを超えると料金が高くなり、xAIではちょうど200,000トークンから高くなります。DeepSeek V4は時間帯別に課金され、オフピーク時は半額です。呼び出しはそれぞれ該当する料金帯で課金されます。使用状況レポートの合計行は高い方の料金で課金され、安い方の金額が横に表示されます。2026-05-15に提供終了したgrok-4は、それ以降Grok 4.3と同じ料金で課金されており、その日付をまたぐログは両方の料金で課金されます |
キャッシュの最小トークン数は、繰り返し確認すべき項目です。以前、ここでは誤っていました。 この表には「Anthropicでは512」と一律に記載されていました。Anthropicの最小値はモデルごとに異なります。Fable 5.1、Fable 5、Mythos 5.1、Mythos 5、Opus 5.5、Opus 5、Sonnet 5.5、Haiku 5.5では512、Opus 4.8、Sonnet 5、Sonnet 4.6では1,024、Opus 4.7では2,048、Opus 4.6、Opus 4.5、Haiku 4.5では4,096です。「512」を信じたHaiku 4.5の利用者は、必要な長さの8分の1のプレフィックスを作り、実際には決して得られない節約をキャッシュで実現できると告げられていたことになります。これは、このツールが決して間違えてはならない種類の誤りです。trazum modelsはモデルごとの正しい値を表示し、キャッシュに関するすべてのアドバイザリーでは以前からその値を使用していました。間違っていたのはこの表だけです。
最後の2行が、倍率をモデルごとに設定する必要があった理由です。全体共通の定数では、Batch APIを提供していないプロバイダーにバッチ割引を適用したり、キャッシュのないモデルにキャッシュによる節約を適用したりしていました。つまり、架空の節約です。これは、このツールが表示してはならないものです。Batch APIを提供していないプロバイダーには、今後バッチに関するアドバイスが表示されません。チェックボックスをオンにしても、割引は適用されません。batchEligibleが表すのは作業の適格性であり、プロバイダーが提供しているサービスではありません。
安いモデルとは、安いモデルのことであり、別のプロバイダーのことではありません。 ダウングレードのアドバイスでは、現在利用しているプロバイダーのモデルだけを提案します。グレードを下げるのは1行の変更ですが、ベンダーの切り替えは移行です。また、このアドバイスはキーワードベースのヒューリスティックであり、プロバイダーの変更を勧めるべきではありません。
対象外:サブスクリプションの請求額。 APIトークンの料金から、サブスクリプション料金がどれだけ変わるかを判断することはできません。Claude Code、Codex、Cursorが識別するのはツールであり、支払い方法ではありません。Trazumはこれらのホストでは、デフォルトでトークン料金を使用します。明示的な--costはAPI料金のシナリオを指定するものであり、請求額の節約を保証するものではありません。
コード内にあるプロンプトを最適化する
trazum optimize src/prompts.ts --prompt support --diff
マークされたプロンプトを読み取り、ファイルには手を加えません。マークされていないソースファイルを指定すると拒否します。TypeScript を文章として最適化しても、プロンプトが悪くなるのではなく、コードが壊れるだけです。そのうえ、-o を使うと壊れたコードでファイルが上書きされてしまいます。ファイルにマークされたプロンプトが複数ある場合は、先頭のものを選ぶのではなく、どれを使うか尋ねます。
モデルもコードから判断するため、OpenAI を呼び出すファイルは OpenAI の料金で計算されます。--model と trazum.config.json の指定が引き続き優先されます。優先順位は、フラグ、設定、検出、そして使用中のプロバイダーを把握していない組み込みのデフォルト値の順です。
このプロンプトはどのプロバイダーに送られるのでしょうか?
Trazum が 7 つのプロバイダーの料金を計算するようになったため、Claude をデフォルトにするのは誤った請求につながるようになりました。OpenAI を呼び出すファイルが、何の注意書きもなく Claude Opus 5 の料金で計算されていたのです。trazum where はコードにすでに記述されている内容を読み取ります。
trazum where src/prompts.ts
Running inside
Claude Code (CLAUDECODE)
Claude Code identifies the execution host only. Payment mode is unknown;
token prices do not establish invoice savings.
Prompts in src/prompts.ts go to
anthropic · Claude Sonnet 5
line 2 model-literal: claude-sonnet-5
line 1 sdk-import: @anthropic-ai/sdk
Priced as
Claude Sonnet 5 (read from the source)
すべての回答に、根拠となった行が示されます。 根拠は強い順に 4 種類あります。trazum:prompt マーカーの model=、引用符で囲まれたモデル ID、ベース URL、SDK のインポートです。そして、ベース URL は接続先の SDK よりも優先されます。Moonshot、DeepSeek、xAI、Groq はすべて、異なる base_url を指定して OpenAI SDK 経由で呼び出されるためです。ファイルに複数のプロバイダーが記載されている場合は拒否します。黙って選ぶと、誰かが 1 か月にわたって誤ったプロバイダーを基準に予算を立てることになるからです。検出結果は通常の優先順位に従います。フラグは設定より優先され、設定は検出より優先され、検出は組み込みのデフォルト値より優先されます。
ファイルを指定しない場合は、ホストだけを報告します。環境変数から分かるのは使用しているツールであり、ワークロードが API、サブスクリプション、クレジット、ローカルモデルのどれを使うかではありません。
| ホスト | 環境変数から推定される支払い方式 |
|---|---|
| Claude Code、Codex、Cursor | 不明 |
| GitHub Actions、CI | 不明 |
| VS Code、通常のターミナル | 不明 |
エージェントハーネスでは、請求額の節約ではなくトークン数をデフォルトにします
Claude Code、Codex、Cursor 内では、Trazum は慎重を期してトークン数をデフォルト表示します。これは表示上の方針であり、支払い方法についての主張ではありません。API 料金のシナリオを確認するには --cost を使ってください。これはサブスクリプションの請求額ではありません。
What this buys on Claude Code
Claude Code identifies the tool, not your payment mode. Tokens are shown
by default; invoice savings are unknown.
1,001 tokens back, every call.
Context window: 12.4% → 2.1% of Claude Opus 5's 1,000,000 tokens — room the
conversation gets instead.
Pass --cost if this prompt is bound for a metered API.
エージェントにとって本当の通貨はコンテキストウィンドウです。システムプロンプトが保持するトークンはすべて、会話では使えないトークンになります。
節約額だけを売りにするアドバイスは、この表示では非表示になります。 請求額が減るかどうかは、支払い方法によって異なります。model-downgrade、batch-api、output-dominated、promo-pricing は除外します。キャッシュ、コンテキストのあふれ、矛盾、冗長な例は残します。レイテンシー、余裕、正確性も重要だからです。
すぐに切り替えられることが重要です。 ホストが示すのは Trazum の実行場所であって、プロンプトの送信先ではありません。Cursor 内で本番用プロンプトを編集している人は料金表示を必要とするかもしれません。--cost を使えば、エディターを離れずに料金表示に切り替えられます。--tokens-only を使うと、どこでも反対にトークン数表示に切り替えられます。
お金の実際の使い道:trazum profile
製品のほかの機能が軸としているコマンドです。使用状況ログ(またはローテーション済みログのディレクトリ)を渡すと、プロバイダーが実際に請求した内容を読み取ります。支出の内訳、キャッシュの費用対効果、会話の増加、生成途中で打ち切られた回答、そして請求額を実際に変えうる対策を、自分の呼び出しに基づく料金で確認できます。読み取るのは件数だけで、内容は読み取りません。セッションキーはグループ化に使われますが、表示されません。料金を算出できないモデルは明示され、合計には含められません。黙って合計に加算されることはありません。
完全な解説――記録形式、--against、--what-if、キャッシュの事後分析、会話の上限、すべてのゲート――については、コマンドリファレンスを参照してください。
このツールの位置づけを、最初に伝える
すべての optimize の実行は同じ一文で締めくくられます。コマンドが実際に行ったことについて、それが真実だからです。
Shortening a prompt is the smallest lever there is: measured on an ordinary
support prompt, the rules recover about 1% of a monthly bill. On a metered
API the things that move 60% to 80% are which model the call goes to, the
Batch API, prompt caching, and what re-sending the conversation costs — and
"trazum profile <usage.jsonl>" prices all four from what the provider
actually charged.
最初のコマンドで 1% と報告し、残りの 99% について何も語らないツールは、自分が把握していることを伝えたとは言えません。
トークン数のカウント
依存関係のない推定器で、テキストの種類ごとに誤差幅を測定しています。CJK で±4%、ラテン文字の文章で±6%、コードとマークアップで±26%、表形式の数値で±33%です。10言語で47サンプルを対象に測定したところ、各分類での最大誤差はそれぞれ3.2%、5.6%、25.1%、32.5%でした。言語を考慮しており、英語用の除数ではドイツ語の誤差が37%になったため、そのようなことはありません。--exact-tokens を使えば、プロバイダーの無料カウントエンドポイントで照合し、疑問を解消できます。測定方法についてはコマンドリファレンスをご覧ください。
制限事項について、率直に
- 削減額は推定値であり、請求額ではありません。
packages/core/src/pricing.tsの表を使用し、指定したシナリオ(月あたりの呼び出し回数、出力トークン数)に基づいて算出します。予算を立てる前に、この表を確認してください。最終更新日についてはPRICING_LAST_REVIEWEDをご確認ください。 - 計算では出力トークン数を一定としています。 プロンプトが短くなると、回答も多少短くなることがよくありますが、タスクによって異なるため、保証はできません。表示される削減額は入力分のみです。
- モデルの推奨はキーワードに基づくヒューリスティックであり、回答の品質を判断するものではありません。 本番環境でティアを下げる前に、ご自身の評価を使って差を測定してください。
- 積極的なレベルではニュアンスが変わる場合があります。 強調表現、婉曲表現、自己検証の要求を削除します。適用する前に差分を確認してください。
- Amazon Bedrock と Vertex AI の料金は各パートナーが設定しており、この表の料金とは異なります。
構成
packages/core/ dependency-free library (rules, tokens, pricing, LLM)
src/segment.ts isolation of code, URLs, emails, templates and XML
src/rules.ts deterministic rules engine
src/phrases.ts phrase dictionaries (data, multilingual)
src/pricing.ts model and pricing catalogue
src/structure.ts contradictions and repeated few-shot examples
src/similarity.ts shared near-duplicate scoring
src/advisories.ts caching, batch, model and context advisories
src/reorder.ts moving blocks in front of the first placeholder
src/compare.ts comparePrompts — after minus before, positive is worse
src/profile.ts the measurements behind `rank`, and no score
src/suggest.ts phrase-level rewrites, and the checks each one passes
src/promptfoo.ts exporting a suite for somebody else's assertions
src/extract.ts prompts marked inside source files
src/detect.ts which provider a file actually calls
src/llm.ts pluggable providers and safety checks
src/net.ts endpoint validation, the allowlist, safe fetch defaults
src/i18n/ message catalogues (report language)
src/shared-prefix.ts preambles that could share a cache entry and do not
src/usage.ts the usage-log profiler: where the money actually went
src/levers.ts what would move the bill, priced from tokens that were billed
src/conversation.ts what re-sending the conversation costs, a ceiling
src/output-shape.ts where the output spend concentrates: tail or task
src/prune.ts leave-one-out over few-shot examples, against the noise floor
src/aws-sigv4.ts Bedrock's signature, by hand, on WebCrypto
src/gcp-auth.ts Vertex's service-account JWT, same reasoning
src/openrouter.ts live prices, with the unknowns marked unknown
packages/cli/ dependency-free CLI
src/markdown.ts the report as markdown, and the three escapers
src/git.ts the only module here that runs another program
packages/mcp/ dependency-free MCP server — twelve tools over stdio in this checkout
src/rpc.ts JSON-RPC 2.0 by hand; the invariant beat the SDK
src/tools.ts the whole surface an agent can reach, in one file
packages/tokenizer-openai/ optional exact counter, and the only dependency here
src/index.ts OpenAI's own ranks; refuses a model it has no table for
apps/web/ Next.js (App Router) — Optimise, Compare, Your bill, Library
action/ the packaged GitHub Action that comments on pull requests
scripts/ release notes, the token-band harness, rollback recovery
draw-architecture.mjs redraws the picture above from the workspace globs
build-wiki.mjs rebuilds wiki/ from this file, verbatim, section by section
wiki/ the GitHub wiki, generated — every page is a section of a
document above, so there is nothing here to keep in sync
料金の更新
packages/core/src/pricing.ts が唯一の情報源であり、明記された日付に確認されています。オーバーレイ(--pricing)と OpenRouter のライブフィード(--pricing-live)を使えば、アップグレードなしで修正できます。手順と安全策についてはコマンドリファレンスをご覧ください。
分析とプライバシー
設定は2種類あり、それぞれ答えが異なります。 簡潔な説明が誤っていたため、ここで両方を説明します。プロンプトライブラリの公開後、何度かのリリースにわたり、このセクションでは条件を付けずに、プロンプトはどのサーバーにも保存されないと説明していました。
- サインアウト時 — デフォルトの状態です。 プロンプトに関する情報はサーバー側に書き込まれません。最適化は同期的に行われ、レスポンスに結果が含まれ、履歴はブラウザーの localStorage に保存されます。これは
TRAZUM_GITHUB_CLIENT_IDを設定せずにデプロイした場合の動作であり、訪問者がサインインを有効にすることはできません。 - サインイン時、プロンプトライブラリを使用する場合。 プロンプトを保存すると、そのテキストは Postgres に書き込まれます。
trazum_prompt_versions.textにバージョンごとに1行保存されます。昨日の文面を表示できないライブラリは、ライブラリとはいえないためです。保存するまでは何も書き込まれず、データベースは当社ではなく運用者が所有するものです。docs/accounts.mdでは、アカウントの全容に加え、スキーマで有効になる行レベルセキュリティと、FORCEではなくENABLEを使用する理由を説明しています。 - 分析(PostHog)はデフォルトでオフであり、プロンプトの内容は送信しません。集計された指標(削減率、レベル、モデル、ロケール)のみを送信します。運用者が
NEXT_PUBLIC_POSTHOG_KEYを設定した場合に限り有効になり、その場合は Content-Security-Policy に分析用のオリジンも追加されます。キーがない場合、ポリシーはconnect-src 'self'のままです。有効時に送信されるイベントは、アプリで明示されているものだけです。自動キャプチャ、自動ページビュー、セッション録画、ヒートマップ、アンケートは、それぞれ明示的に無効になっています。Cookie には何も保存されず、イベントに含まれる URL はすべて、ブラウザーから送信される前に共有トークンが置き換えられ(/c/:token)、クエリが削除されます。 - UI に入力された LLM キーは、そのリクエストに使用された後、破棄されます。ログへの記録も永続化もされません。
ドキュメントの残り
この README は概要です。チュートリアル、統合レシピ、リファレンス資料はそれぞれ別のページにあります。docs/README.md はインデックスです。ファイル名ではなく、ここに来た目的に沿って構成されています。ツールの選定、使い方、拡張、保守、問題の報告などが含まれます。
特に直接参照することが多い4つのページ:
- docs/doctrine.md — この製品が決して破らないルールです。どのルールも、まず間違いを犯してから見つかりました。ここに記載された数値を読む価値がある理由を説明しています。
- docs/our-own-medicine.md — 同じ基準をこのプロジェクトにも適用した内容です。公開しないと決めたもの、誤りの内容とその状態が続いた期間、そして自分自身について語れないことを説明しています。
- docs/usage-logs.md — Trazum がログから読み取れる内容と、任意のフィールドを記録すると利用できるようになる機能を説明しています。
- docs/json-output.md — 機械可読なすべてのドキュメントを、フィールドごとに、それぞれが持つ出所情報とともに説明しています。
ロードマップと貢献
ROADMAP.md では、計画とその理由、そしてここに至るまでの経緯を古い順に説明しています。 CONTRIBUTING.md では、ルールや言語の追加方法を説明しています。docs/authoring-rules.md には、ルール作成の全手順を記載しています。 VERSIONING.md では、何がパブリック API にあたるかを説明しています。 CODE_OF_CONDUCT.md では、参加者全員に求められることと、単独メンテナーのプロジェクトとして約束できることを率直に説明しています。 SUPPORT.md では、対応する内容と対応の速さを説明しています。 SECURITY.md では、脆弱性を非公開で報告する方法を説明しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。