トークンバジェットアドバイザー(TBA)
Claudeが回答する前にレスポンスフローをインターセプトし、ユーザーが回答の深さを選択できるようにする。
使用場面
- ユーザーが回答の長さや詳細度を制御したい場合
- ユーザーがトークン、バジェット、深さ、または回答の長さに言及する場合
- ユーザーが「短いバージョン」「TL;DR」「簡潔に」「25%」「詳細に」などと言う場合
- ユーザーが事前に深さ/詳細度を選択したい場合
トリガーしない場合:ユーザーが本セッションですでにレベルを設定している(静かに維持)、または回答が本質的に一行。
動作原理
ステップ 1 — 入力トークンを推定する
リポジトリの標準コンテキストバジェットのヒューリスティックスを使用して、プロンプトのトークン数を頭の中で推定する。
context-budget と同じキャリブレーションガイドラインを使用する:
- 散文:
words × 1.3 - コード集約またはコード混在/コードブロック:
chars / 4
混在コンテンツの場合、支配的なコンテンツタイプを使用し、推定ヒューリスティックスを保持する。
ステップ 2 — 複雑度に応じてレスポンスサイズを推定する
プロンプトを分類し、乗数範囲を適用して完全なレスポンスウィンドウを得る:
| 複雑度 | 乗数範囲 | プロンプト例 | |--------------|------------|------------------------------------------------------| | シンプル | 3× – 8× | 「Xとは何ですか?」、はい/いいえの質問、単一の事実 | | 中程度 | 8× – 20× | 「Xはどのように機能しますか?」 | | 中〜高 | 10× – 25× | コンテキスト付きのコードリクエスト | | 複雑 | 15× – 40× | マルチパート分析、比較、アーキテクチャ | | クリエイティブ | 10× – 30× | ストーリー、散文、ナラティブライティング |
レスポンスウィンドウ = input_tokens × mult_min から input_tokens × mult_max(ただしモデルの設定済み出力トークン制限を超えない)。
ステップ 3 — 深さのオプションを提示する
回答する前に、実際に推定した数値を使用してこのブロックを提示する:
プロンプトを分析中...
入力:~[N] トークン | タイプ:[タイプ] | 複雑度:[レベル] | 言語:[言語]
深さレベルを選択してください:
[1] ベーシック (25%) -> ~[トークン数] 直接回答、前置きなし
[2] 適度 (50%) -> ~[トークン数] 回答 + 背景 + 1つの例
[3] 詳細 (75%) -> ~[トークン数] 代替案を含む完全な回答
[4] 徹底的 (100%) -> ~[トークン数] すべて、制限なし
どのレベルを選択しますか?(1-4 または「25%の深さ」「50%の深さ」「75%の深さ」「100%の深さ」)
精度:ヒューリスティック推定、約85〜90%の精度(±15%)。
各レベルのトークン推定(レスポンスウィンドウ内):
- 25% →
min + (max - min) × 0.25 - 50% →
min + (max - min) × 0.50 - 75% →
min + (max - min) × 0.75 - 100% →
max
ステップ 4 — 選択されたレベルで回答する
| レベル | 目標の長さ | 含む内容 | 省略する内容 | |------------------|---------------------|-----------------------------------------------------|---------------------------------------------------| | 25% コア | 最大2〜4文 | 直接回答、重要な結論 | コンテキスト、例、ニュアンス、代替案 | | 50% 適度 | 1〜3段落 | 回答 + 必要なコンテキスト + 1つの例 | 深い分析、エッジケース、参考文献 | | 75% 詳細 | 構造化された回答 | 複数の例、長所/短所、代替案 | 極端なエッジケース、網羅的な参考文献 | | 100% 徹底的 | 制限なし | すべて——完全な分析、すべてのコード、すべての視点 | なし |
ショートカット——質問をスキップ
ユーザーがすでにレベルを示している場合、質問せずにそのレベルで即座に回答する:
| ユーザーの発言 | レベル | |----------------------------------------------------|-------| | 「1」/「25%の深さ」/「短いバージョン」/「簡潔に」/「TL;DR」 | 25% | | 「2」/「50%の深さ」/「適度の深さ」/「バランスの取れた回答」 | 50% | | 「3」/「75%の深さ」/「詳細な回答」/「包括的な回答」 | 75% | | 「4」/「100%の深さ」/「徹底的な回答」/「完全で詳細な分析」 | 100% |
ユーザーが本セッションですでにレベルを設定している場合、ユーザーが変更しない限り後続の回答も静かにそのレベルを維持する。
精度について
このスキルはヒューリスティック推定を使用する——実際のトークナイザーではない。精度は約85〜90%で偏差は±15%。常に免責事項を表示する。
例
トリガーシナリオ
- 「まず短いバージョンをください。」
- 「あなたの回答は何トークン使いますか?」
- 「50%の深さで回答してください。」
- 「徹底的な回答が欲しい、サマリーはいらない。」
- 「まず短いバージョン、次に詳細なバージョンをください。」
トリガーしないシナリオ
- 「JWTトークンとは何ですか?」
- 「チェックアウトフローは支払いトークンを使用しています。」
- 「これは正常ですか?」
- 「リファクタリングを完了してください。」
- ユーザーが本セッションの深さを選択した後の後続の質問
出典
TBA — Claude CodeのToken Budget Advisorから引用した独立スキル。 元のプロジェクトにはPython推定スクリプトも付属しているが、本リポジトリではスキルを自己完結型に保ち、ヒューリスティックスのみを使用する。