Claude-Codeトークンマネジメントの先へ

K
Kieu Xuan Dong

トークンマネジメントの先へ 現場で使えるコンテキスト掌握術 減らすのではなく、 載せるものを掌握する。

カテゴリー: テクノロジー
関連トピック:
スライド一覧 テクノロジー Claude-Codeトークンマネジメントの先へ

スライドのテキスト

1ページ目

CONTEXT MANAGEMENT

トークンマネジメントの
先へ

現場で使えるコンテキスト掌握術

GMOインターネットグループ株式会社
上田結大

減らすのではなく、
載せるものを掌握する。

01

2ページ目

WHY THIS TALK
この発表について

GOAL

AUDIENCE

PROBLEM

ゴール

対象者

課題感

LLM を業務に使うパートナー

コンテキストを
「運用できる対象」として
扱えるようになる

長い会話ほど精度が落ち、
対処が場当たりになる
トークンコストの増加

「詰めれば動く」の限界

原理観察設計運用

前提知識は最小限でOK

コンテキストを最適化し、最小限のトークンコストで高い成果を得られる状態にする

02

3ページ目

TODAY'S MAP
今日の地図

知る・見る・置く・整える。

01

02

03

04

コンテキストを知る

現状を見る

置き場所を分ける

机を整える

何が載り、どう埋まるか

いまの机上を把握する

必要十分な情報だけ読ませる

戻す量と順序を決める

中身・蓄積・効果と弊害

机・引き出し・倉庫・別の机

/contextstatusline

Tool出力・キャッシュ

1で課題を知り、24でアクション

03

4ページ目

CHAPTER

1
コンテキストを知る

机に何が載り、どう埋まり、何が起きるかを知る。

知る

見る

置く

整える

04

5ページ目

  1. コンテキストを知る

Q.そもそもコンテキストって何?

A.いまAIへ渡されている
資料の一式

会話・ファイル・指示・ツール結果・・・AIが読んだもの全部。

作業机に例えるなら

コンテキストウィンドウ

コンテキスト

トークン

机に広げた資料

机の広さ

資料量を数える単位

05

6ページ目

  1. コンテキストを知る

会話が続くたび、机の資料は積み上がる

新しい内容は末尾へ。次のターンでは、それまでの内容も一緒に渡される。

TURN 1

TURN 2

TURN 3

質問3

回答2

質問2

質問2

回答1

回答1

質問1

質問1

質問1

1

3

5

累積して再送される量

同じ量の会話でも、累積の負荷は加速して膨らむ。
06

7ページ目

  1. コンテキストを知る

机に載っているのはあなたのプロンプトだけではない

Claude Code公式ドキュメントのシミュレーション例

システムプロンプト

4,200

1,800

CLAUDE.md

自動メモリ

680

スキルの説明

450

グローバルCLAUDE.md

320

環境情報

280

MCPツール名

120

あなたの最初のプロンプト

45

07

8ページ目

  1. コンテキストを知る

足すのは一瞬。あとから一枚だけ抜けない

コンテキストが増える操作

プロンプト

ファイル・コマンド結果

一方・・・
×

「ここだけ抜く」

CLAUDE.md・スキル

という操作はない

MCP・自動メモリ

Etc…

/clear

/compact

/rewind

全消し

要約

巻き戻し

どれも、特定の一枚だけを正確に抜く操作ではない。

08

9ページ目

  1. コンテキストを知る

    公式が言っていること


コンテキストウィンドウはすぐ埋まり、

埋まるにつれて性能が落ちる。

管理すべき最も重要なリソースである。

Claude Code 公式ベストプラクティスの日本語要約

速度や費用だけではない。これは精度の話でもある。

09

10ページ目

  1. コンテキストを知る

よくある散らかり方と弊害

キッチンシンク

修正のループ

無限探索

同じ問題に対し、試行錯誤

無関係なタスクを
「ついでに」で混ぜる

範囲を切らず、
何百ものファイルを読む

誤った修正に引っ張られる悪循環

不要な情報による無駄なコスト

重要な情報が逆に埋もれる

粗悪なコンテキストは、コストと性能の両方に悪影響

10

11ページ目

  1. コンテキストを知る

少ないほどいい、というわけでもない

トークンマネジメント

その先
何を載せるか掌握する
必要なものは載せる

減らす・節約する

空っぽの机では仕事はできない。本当に必要なものだけを載せる。

11

12ページ目

CHAPTER

2
現状を見る

いま、机に何が載っているかを確かめる。

知る

見る

置く

整える

12

13ページ目

  1. 現状を見る

画面に見えているのは、操作の一行だけ

全文が見える
プロンプト・回答

Read auth.ts

実際に机へ載ったもの

一行だけ見える
ファイル読込・コマンド実行

まったく見えない
システム指示・自動メモリ

auth.ts 全文
2,400 tokens

見ているのは記録。机そのものではない。

13

14ページ目

  1. 現状を見る

コンテキストの確認方法

普通のチャット
標準UIでは、現在の内訳を細かく見られない

Cowork
画面上の内訳は限定的。必要ならログから補う

Claude Code
/context で内訳を見る、Statuslineを使う(CLI)

14

15ページ目

  1. 現状を見る

気づく前から見えている仕組みを置く

見に行く

常に見える

CONTEXT 62% ▓▓▓▓▓▓░░░░

/context

打とうと思った時には、

Statusline
気づく前に、視界へ入る

もう散らかりに気づいている

コンテキストを把握するのが第一歩

15

16ページ目

  1. 現状を見る

16

17ページ目

CHAPTER

3
置き場所を分ける

必要になるタイミングに合わせ、情報を四つの場所へ分ける。

知る

見る

置く

整える

17

18ページ目

  1. 置き場所を分ける

必要な情報は増える。窓の大きさは変わらない

作業が複雑になるほど情報は積み上がるが、コンテキストウィンドウは有限である。

01

02

03

04

作業が複雑になる

必要な情報が増える

窓の上限は固定

全部は載らない

扱う対象が増え、判断
の前提も長くなる。

履歴・仕様・データ、
どれも手放せない。

入れ続ければ、いずれ
何かが押し出される。

コンテキストウィンドウ
は広いが有限。

だから、量を減らすのではなく置き場所を分ける。

18

19ページ目

  1. 置き場所を分ける

情報は、四つの置き場所へ分ける

捨てるのではなく、必要になるタイミングを設計する。

01

02

03

04

机の上

引き出し

倉庫

別の机

今すぐ使う入力
CLAUDE.md

必要な時だけ出す
SKILL.mdMCP

別文脈で働く
結果だけ戻す
サブエージェント

AIから隠す
人が取り寄せる
Docs, script

量ではなく、置き場所を工夫する。

19

20ページ目

  1. 置き場所を分ける

    机の上

情報は、四つの置き場所へ分ける

捨てるのではなく、必要になるタイミングを設計する。

01

02

03

04

机の上

引き出し

倉庫

別の机

今すぐ使う入力
CLAUDE.md

必要な時だけ出す
SKILL.mdMCP

別文脈で働く
結果だけ戻す
サブエージェント

AIから隠す
人が取り寄せる
Docs, script

量ではなく、置き場所を工夫する。

20

21ページ目

  1. 置き場所を分ける

    机の上|入力側

その入力、全部必要?

入力欄へ貼る
全文が、今回の判断に必要

ファイルへ置く
一部だけ必要。ファイルを指定して検索させ、必要箇所だけ読ませる

今回は載せない
今回は不要、または特定の作業でだけ使う

入力欄へ貼った時点で、全文が机に載る。

ファイルにしても、全文を読ませれば同じなので注意。

21

22ページ目

  1. 置き場所を分ける

    机の上|入力側

CLAUDE.mdは、毎回いちばん上に載る

TURN 1

TURN 2

TURN 3

CLAUDE.md

CLAUDE.md

CLAUDE.md

質問1

質問1

質問1

回答1

回答1

質問2

質問2

回答2

CLAUDE.mdの文量はダイレクトにコンテキストに響く

目安は200行以下

22

23ページ目

  1. 置き場所を分ける

    机の上|入力側


一行ごとに問う。

「これを削ったら、Claudeは間違えるか?」

否なら削る。

Claude Code 公式ベストプラクティスの日本語要約

守らせたくて足したルールが、別のルールを埋もれさせる。

23

24ページ目

  1. 置き場所を分ける

    机の上|出力側

AIが書いた長文も、次のターンへ残る

TURN 1

TURN 2

TURN 3

回答1

回答1

回答1

回答2

回答2

回答3

長い説明のコストは、一回では終わらない。

24

25ページ目

  1. 置き場所を分ける

    机の上|出力側

出力の長さと形式を、先に指定する

出力スタイル
会話全体の詳しさを切り替える(OutputStyle:Concise
例)「結論から3行。前置きと復唱はなし」を既定にする

プロンプト
長さ・形式・返してほしい項目を指定する
例)「500字以内、箇条書き5点、各点に根拠と反証を1行ずつ」

常設ルール
何に詳しさを使うか、方針として決める
例)「コードは差分のみ提示。解説は聞かれた時だけ書く」

外部ツール
同じ指定をスキル・プラグインとして常時読み込む
例)caveman=返答を短くする/ponytail=作る量を抑える

25

26ページ目

  1. 置き場所を分ける

    机の上|出力側

短くしていいのは説明。判断材料は削らない

短くしていい

短くしてはいけない


前置き


できなかったこと


仕組みの長い説明


根拠・出典


丁寧な言い回し


但し書きと前提


逐一の進捗報告


確認が必要な操作


エラー・失敗の要点

短い返事が「全部できた」に見えたら、節約ではなく不可視化。

26

27ページ目

  1. 置き場所を分ける

    引き出し

情報は、四つの置き場所へ分ける

捨てるのではなく、必要になるタイミングを設計する。

01

02

03

04

机の上

引き出し

倉庫

別の机

今すぐ使う入力
CLAUDE.md

必要な時だけ出す
SKILL.mdMCP

別文脈で働く
結果だけ戻す
サブエージェント

AIから隠す
人が取り寄せる
Docs, script

量ではなく、置き場所を工夫する。

27

28ページ目

  1. 置き場所を分ける

    引き出し

段階的に読むという概念

MCPツール
名前を先に。詳しいスキーマは必要になってから

スキル
説明を先に。本体は使うときだけ

検索
まずパス。中身は必要なものだけ

最初から全てを知っておく必要は無い

28

29ページ目

  1. 置き場所を分ける

    引き出し

SKILL.md は、必要なときだけ読む手順書

会議録
作り方と書式

SKILL.md

リリース
確認手順

AIに必要なときだけ読ませる、自分専用の手順書

特定API
参照資料

会話を切っても、引き出しの中身は残る。

常時必要ではない手順は、常設ルールから分ける。

29

30ページ目

  1. 置き場所を分ける

    引き出し

常時必要時さらにその先へ

name / description
常時コンテキストに載る。利用候補を選ぶため

SKILL.md 本体
スキルを使うとき

参照ファイル、スクリプト
本体からさらに必要になったとき

道具がしていた段階読みを、自分の手順書でも使う。

30

31ページ目

  1. 置き場所を分ける

    引き出し


説明が曖昧なら、

間違ったスキルを読む。

必要なスキルを見落とす。

Claude Code 公式ドキュメントの日本語要約

description は「何をするか」より「いつ使うか」。

31

32ページ目

  1. 置き場所を分ける

    引き出し

常時必要かどうかで、書く場所を分ける

スキル

CLAUDE.md


毎セッション自動で読み込み


必要なときだけ読み込み


常に守る短いルール


参照資料・手順書


呼び出し不要


自動選択または/名前で呼ぶ

毎回いらないものは、引き出しへ。

32

33ページ目

  1. 置き場所を分ける

    スコープ

実はCLAUDE.mdは複数あってもいい

読み込まれる順番

ディレクトリ構成の例


~/.claude/CLAUDE.md … 全プロジェクト共通

my-app/

CLAUDE.md 全体の約束事


プロジェクト直下チーム共有ルール

frontend/


サブディレクトリその配下の作業時だけ

CLAUDE.md React の規約


下の階層が、上の内容を上書き・追加

backend/


読ませたい範囲=置く場所

CLAUDE.md API / DB の規約

必要な階層に置けば、必要なときだけ効く。

33

34ページ目

  1. 置き場所を分ける

    倉庫

情報は、四つの置き場所へ分ける

捨てるのではなく、必要になるタイミングを設計する。

01

02

03

04

机の上

引き出し

倉庫

別の机

今すぐ使う入力
CLAUDE.md

必要な時だけ出す
SKILL.mdMCP

別文脈で働く
結果だけ戻す
サブエージェント

AIから隠す
人が取り寄せる
Docs, script

量ではなく、置き場所を工夫する。

34

35ページ目

  1. 置き場所を分ける

    倉庫

倉庫からは、人が場所を指定して取り寄せる

参照資料
docs/runbooks/

必要なファイルだけ読む

実行スクリプト
scripts/validate.sh

コードを載せず、結果だけ戻す

過去の記録
GitPR・ログ

IDや検索条件を指定して取得

AIに選ばせないものは、名前と場所を人が渡す。

自動参照の導線を張らず、必要なときだけ取り出す。

35

36ページ目

  1. 置き場所を分ける

    別の机

情報は、四つの置き場所へ分ける

捨てるのではなく、必要になるタイミングを設計する。

01

02

03

04

机の上

引き出し

倉庫

別の机

今すぐ使う入力
CLAUDE.md

必要な時だけ出す
SKILL.mdMCP

別文脈で働く
結果だけ戻す
サブエージェント

AIから隠す
人が取り寄せる
Docs, script

量ではなく、置き場所を工夫する。

36

37ページ目

  1. 置き場所を分ける

    別の机

サブエージェントは、別の机で働くAI

別の机

自分の机

結果だけ戻す

100ファイル

結論3

調査・テスト・比較

判断に必要な情報

テスト実行
独立レビュー
並列実装
比較・検証

独立して進められ、戻す結果を小さく定義できる仕事を出す。

37

38ページ目

  1. 置き場所を分ける

    別の机

6,100 tokens 読んでも、戻すのは420

6,100


420

読んだトークン

親へ返ったトークン

価値は読んだ量ではなく、戻す量を小さくできること。

公式例の数値。何を返すかの指示により結果は変わる。

38

39ページ目

  1. 置き場所を分ける

    別の机

呼び方と返し方を設計する

呼ぶ|任せる
指示の例:``「サブエージェントでauth の実装を調べて」
既定の動作:ExplorePlangeneral-purpose は定義なしで登録済み

呼ぶ|渡す
指示の例:``対象・範囲・並列を明示し、必要な材料をプロンプトに全部書く
既定の動作:親から子への通り道はプロンプト文字列のみ。他は引き継がれない

返す|受け取る
指示の例:findings only file:line /最大5件/300字以内
既定の動作:途中の読み込みは子に残り、親へ返るのは最終メッセージ1通だけ

最重要:戻す形式と上限を、呼ぶ前に決める

39

40ページ目

  1. 置き場所を分ける

    別の机

同じ机を繰り返すなら、専用の机を作れる

置く
.claude/agents/code-reviewer.md(このリポジトリ用)
~/.claude/agents/ に置けば、どのプロジェクトからでも呼べる

書く
name / description +本文(=そのエージェントの指示)
必須はname description 2つだけ。toolsmodel は絞りたいときに追記

効かせる
description に「いつ使うか」を書くと、自動で任せてくれる
例:「コード変更のあとにレビューする」。ここが曖昧だと呼ばれない

まず既定の机で試す。型が固まったものだけ、ファイルにする

40

41ページ目

  1. 置き場所を分ける

    まとめ

Chapter 3 のまとめ

机の上
常設ルール、入力、出力はいずれも簡潔に。判断材料は削らない

引き出し
必要なときだけ読む情報

倉庫
AIに見せなくていいものは隠す

別の机
サブエージェントを活用。戻す形式と上限を、呼ぶ前に決める

量を削るのではなく、置き場所を決める。

41

42ページ目

CHAPTER

4
机を整える

キャッシュとツール出力の工夫

知る

見る

置く

整える

42

43ページ目

  1. 机を整える

再掲:会話が続くたび、机の資料は積み上がる

新しい内容は末尾へ。次のターンでは、それまでの内容も一緒に渡される。

TURN 1

TURN 2

TURN 3

質問3

回答2

質問2

質問2

回答1

回答1

質問1

質問1

質問1

1

3

5

累積して再送される量

同じ量の会話でも、累積の負荷は加速して膨らむ。
43

44ページ目

  1. 机を整える

    並べ方|順番

不変部分を再利用する仕組み:キャッシュ

1
システムプロンプト
中核の指示、ツール定義、出力スタイル
変わりにくい

2
プロジェクト文脈
CLAUDE.md、自動メモリ、ルール
ときどき変わる

3
会話
あなたのメッセージ、Claudeの応答、ツール結果
毎ターン変わる

キャッシュ=同じ前半を、毎回ゼロから計算しない仕組み。

先頭から完全一致分は再利用。途中が変われば、その後ろは作り直し。

44

45ページ目

  1. 机を整える

    並べ方|費用

作るのは2倍、読むのは0.1

キャッシュは、作成と再利用で20倍の差がある。

書き込み(1時間分)

20×

2.0

読み取り
0.1

作成÷読み取り

基準入力1.0

5分書き込み1.25

Claude Opus 5 API単価基準。サブスクでは金額ではなく利用枠の消費として現れる。

たくさんキャッシュヒットするほどお得

45

46ページ目

  1. 机を整える

    並べ方|時間

時間制限がある

Claude サブスクリプション
既定で1時間

APIキー/Bedrock Google Cloud Foundry
既定で5

キャッシュに当たるたび、タイマーはリセットされる。追加料金はなし。

席を立っても、一時間なら誰も机を片付けない。

離席後の最初の一手は重い

46

47ページ目

  1. 机を整える

    並べ方|行動

キャッシュが壊れる操作と、壊れない操作

壊す

保つ


モデルの切り替え


ファイルの編集


effort の変更


スキル・コマンドの呼び出し


fast mode の有効化


権限モードの切り替え


MCPサーバーの接続・切断


/recap


/rewind


ツール全体のdeny ルール追加


/compact


サブエージェントの起動


Claude Code のアップグレード

一度机に載せたものは動かさない方が良い

47

48ページ目

ツール出力の細かい工夫

48

49ページ目

  1. 机を整える

    ツール出力

Claude Code は、最初から全部読まない

Grepripgrepベース)

既定のoutput_mode: files_with_matches

戻るのは、一致したファイルパス

paths

count / content

Read

answer

場所

件数・一致行

対象だけ読む

答えへ使う

まず「どこにあるか」だけを見る。

glob / type で、探す場所も先に絞れる。

49

50ページ目

  1. 机を整える

    ツール出力

利用者は、範囲と返却条件を決める

伝える

止める


対象のディレクトリやモジュール


範囲なしの探索


何を見つけたいか


同じ場所の読み直し


何を、どの粒度で返すか


独立して出せる大きな探索別の机へ

組み込みフィルターがない出力だけ、自分で絞る

繰り返す処理

フックで

大量ログ
ERROR・失敗テスト

API / MCP
limitfilterfields

だけ抽出

を指定

自動化

独自CLI
JSON出力を
jq などで加工

Grepは任せる。巨大出力は、載る前に絞る。

50

51ページ目

  1. 机を整える

    ツール出力

絞るのは、コマンド側で

まず形だけ見る

項目を名指しする

件数・パス・統計だけを先に取る。
中身は、必要な対象にだけ。
grep -cwc -l--stat--name-only

--format / --query / -o があるなら、
既定出力は使わない。
ページャも切る(--no-pager)。

机に載る量を、コマンド側で決める

| head / wc -l
読む前に件数、

--stat / --oneline
git は差分の形から

--json <fields>
ghdockerkubectl

終端で切る

入る

は項目を指定

-q / --bail
失敗だけ、
最初の一件だけ

既定の出力は、人が見る用。机に載せる用ではない。Hookも使える

51

52ページ目

WRAP-UP
まとめ

知る・見る・置く・整える、を振り返る。

01

02

03

04

コンテキストを知る

現状を見る

置き場所を分ける

机を整える

不変部分は前へ、出力は絞る

机は、放っておくと勝手に積
み上がる

見えているのは、操作の一行
だけ

捨てるのではなく、必要な時
に出す

机の上・引き出し・倉庫・別の机

キャッシュ・範囲と粒度の指定

/contextstatuslineで常時可視化

埋まるほど精度が落ち、コストも
増える

量を削るのではなく、置き場所を掌握する。

52

53ページ目

終わりに


良い出力のときは、自分が何をしたかを見る。

苦戦したときは、なぜかを問う。

Claude Code 公式ベストプラクティスの日本語要約

真に最適な運用は環境によって異なる。

53

54ページ目

付録

54

55ページ目

付録

同じ問題で修正が二回失敗したら、やり直す

同じ問題で、修正が二回失敗した?

→ /clear して、学びを入れたプロンプトでやり直す

誤った修正も残り、その後の判断を引っ張り続ける。

Claude Code 公式ベストプラクティス

55

56ページ目

付録

別の机

タスクが変わるなら、会話履歴を切る

/clear

Claude Code CLIで、空のコンテキストから始める

個人的には、要約するくらいなら

引き継ぎ資料を作らせて始め直す方が好き

無関係な次の仕事へ、前の会話は持ち込まない。

56

57ページ目

付録

机の上|入力側

効かないときは、長さ・曖昧さ・競合を疑う

ルールがあるのに従わない
長すぎる、または別ルールと競合しているかもしれない

書いてあることを聞き返す
曖昧で、使う条件が伝わっていないかもしれない

削った内容は、どこへ移す?

下の階層か、SKILL

57

スライドから自動抽出したテキストです。画像内の文字などが一部含まれない場合があります。