コアコンセプト

context windowの管理

Bobの270,000 tokenのcontext windowの仕組み、各カテゴリーがtoken使用量にどう影響するか、そしてtaskを集中させてコスト効率を保つためのベスト・プラクティスを学びます。

context windowを理解する

チャット・パネルの各taskにはcontext windowがあり、その会話スレッドのtoken予算です。上限は270,000 tokenです。Bobがロードするものはすべてここに計上されます。

context windowを埋めるもの

チャット・パネルの右上にあるtoken usage indicatorにカーソルを合わせると、context windowを消費しているものの内訳が表示されます:

Context window breakdown panel showing token usage by category
カテゴリー含まれるもの
System promptセッション向けBobのコア指示
Tool definitions組み込みツール・スキーマと接続されたMCPツール定義
MCP Tools接続されたMCPサーバーが提供するツールの指示と説明
Rulesプロジェクトおよびモードのruleファイルからのカスタム指示(例: AGENTS.mdや.bob/rules-*)
SkillsBobが会話のためにロードしたskillsの指示
Messagesあなたのprompt、Bobの返答、会話内のツール・アクティビティー。tokenとして計上されるtranscriptです。

@メンション、コマンド出力、ツール結果はすべてMessagesにカウントされます。ファイルの内容は独立した行としては表示されません。

Estimated breakdownの下:

  • Reserved for model response: Bobの次の返答のために確保されたtoken(通常20.0k)。
  • Available space: 残りの空きtoken。

ベースライン・オーバーヘッド

Bobとの作業を始める前から、固定カテゴリーがtokenを消費します。Galaxium Travelsのサンプル・プロジェクトでは、"Quickly say hi back."という短いプロンプトだけでも合計約8.5k tokenになります。その大部分はTool definitions(5.1k)、System prompt(1.5k)、Rules(830)、Skills(454)です。Messagesにあるのはわずか590 tokenです。

Bobはすべてのpromptでオーバーヘッド・スタック全体を再送します。MCPサーバーやロードされたskillを追加すると、一言も入力する前にMCP Tools、Tool definitions、Skillsが増加します。

実際の数値とリセットのウォークスルーについては、Create a new context windowを参照してください。

token使用量を監視する

token usage indicatorは使用率(パーセンテージ)と、270,000 tokenの上限に対して使用済み/合計の割合を表示します。クリックするとcontext window breakdownが開きます。どのカテゴリーが増えているかを確認してください。

以下の表は各カテゴリーが増加する要因を示しています:

カテゴリー増加する要因
System prompttaskの開始時にロードされます。通常の作業中は変化しません。
Tool definitions組み込みツール・スキーマ。taskの開始時に設定されます。通常の作業中は変化しません。
MCP Tools接続されたMCPサーバーと有効なツール。サーバーやツールを追加したときに増加します(promptを送信したときではありません)。
Rulesプロジェクトおよびモードのruleファイル(例: AGENTS.md)。taskが開くときに設定されます。
SkillsBobがtaskのためにロードするSkills。Bobがスレッドの途中でskillを起動した場合に増加することがあります。
Messagesあなたのprompt、Bobの返答、ファイル読み取り、ツール出力、@メンション。ターンごとおよびリポジトリーの探索で増加します。

短いやり取りでは、固定カテゴリーが合計の大部分を占めることがよくあります。Bobにファイルを読み取ったりツールを実行したりするよう求めると、通常Messagesが最も大きなカテゴリーになります。この変化に注目してください。

Available spaceはどのカテゴリーが増加しても縮小します。Reserved for model responseはBobの次の返答のために確保されており、上に表示される使用済み合計には含まれません。

実際のリポジトリーでの測定例については、Create a new context windowを参照してください。

tokenの制限

ハードな上限はtaskあたり270,000 tokenです。Bobは制限に達する前にコンパクション(圧縮)を開始します。コンパクションは通常、合計使用量が約190,000 tokenで開始されます。

自動context compaction

コンパクションのしきい値に達すると、Bobは:

  1. 最新かつ関連性の高いcontextを保持します。
  2. 古い会話セグメントを要約または削除します。
  3. 重要なシステム指示、tool definitions、rules、skillsを維持します。
  4. コンパクションされたcontextで作業を続けます。

コンパクションには損失が伴います。Messagesの初期にある詳細が残らない場合があります。トピックが変わるときや、Messagesが品質に影響するほど大きくなったときは、+(New task)で新しいtaskを開始してください。

Bobcoinsへの影響

Bobcoinsはtoken使用量を追跡します。入力tokenと出力tokenの両方がカウントされます。

  • 各メッセージは固定オーバーヘッドを含むすべてのアクティブなcontextを再送します。
  • Bobはすでにロードされているすべてのものを送信のたびに再処理します。
  • Messagesが多い長いスレッドは、後のpromptほどコストがかかります。

ベスト・プラクティス

注:

context windowはストレージではありません。各ステップでBobが利用できるアクティブなtoken予算です。何が入るかをコントロールしてください。スレッドが古いコンテンツで埋まったらリセットまたはコンパクションしてください。Bobの返答だけでなく、テストで結果を確認してください。

taskと会話をスコープする

作業目標ごとに1つのtaskを使用し、的を絞ったpromptから始めてください。Bobにリポジトリーを探索させる前に、目標、期待される結果、制約を伝えてください。ファイルと関数を明示的に指定してください。「リポジトリー全体を読んで」や「バックエンドを確認して」といった漠然としたリクエストは避けてください。無関係なコンテンツがMessagesに入るとコストが増え、Bobを混乱させる可能性があるため、トピックが変わったら**+**(New task)をクリックしてください。

固定contextを軽く保つ

固定カテゴリーは入力する前からtokenを消費します。オーバーヘッドを低く抑えるには:

  • custom rulesとAGENTS.mdを短くしてください。セットアップ、テスト、スタイルのコマンドのみを含めます(例: pnpm test、mvn verify)。
  • 現在の作業に必要なMCPサーバー、ツール、skillsだけを接続してください。使っていないものは切断し、グローバルよりもプロジェクト・スコープのMCP設定を優先してください。
  • Messagesはこのtask固有の状況別証拠(バグ、ログ、関連ファイル)のために確保してください。固定のrulesをすべてのpromptで繰り返さないでください。

必要なときにcontextを追加する

大きなコンテンツ・ブロックをスレッドに貼り付けるのではなく、Bobに対象ファイルを検索・読み取りさせてください。context mentionsを使用して特定のファイルや行範囲を参照し、広いディレクトリーのメンションは避けてください:

✓ @/src/utils/validation.ts:45-67 Fix the email validation logic
✗ @/src @/tests @/docs Review everything and suggest improvements

エディターでテキストを選択し、Cmd + L(Mac)またはCtrl + L(Windows/Linux)を使ってチャットに直接追加することもできます。

段階的に作業してください: 可能性のあるファイルを見つけ、関連するものを調べ、計画し、変更し、検証する。広いリポジトリー読み取りにはsubagentsを使用して、すべてのread_file呼び出しがMessagesに溜まる代わりにコンパクションされた結果をtaskに渡してください。ソースが競合する場合は、古いコメントや古いREADMEのメモよりも実行中のコードとテストを信頼してください。

大きなリポジトリーに関するその他のヒントについては、Working with large projectsを参照してください。

Messagesが埋まったらリセットまたはコンパクションする

長い会話の中で、Messagesには繰り返されるファイルの内容、破棄されたプラン、古いツール出力が蓄積されます。作業目標が変わったり、スレッドが品質に影響するほど大きくなったりしたら、+(New task)で新しいtaskを開始してください。制約、証拠、未解決の質問を残し、それ以外は削除してください。

Bobは古いセグメントを自動的にコンパクションすることもできますが、コンパクションには損失が伴い、Messagesの初期にある詳細が残らない場合があります。大きな自律実行よりも小さく承認された変更を優先して、差分をレビュー可能に保ち、Bobが軌道を外れないようにしてください。

詳細を学ぶ

Create a new context windowでGalaxium Travelsサンプル・プロジェクトの内訳を開き、リセットの練習をしてください。

このトピックはいかがですか?