CLAUDE CODE 入門テキスト

Claude Code トークン節約の教科書
― 同じ作業を、ムダなく安く終わらせる ―

Anthropic 公式ブログ「Maximizing the value of your Claude Code sessions」(2026年8月14日・Lydia Hallie 著)をもとに、初心者の方がそのまま実行できるように再構成した学習用テキストです。専門用語はすべて本文中と巻末の用語集で説明します。

はじめに

なぜ「同じ作業」でも値段が変わるのか

むかし、プログラムを書く道具(エディタ)は、買い切りか無料でした。1日にテストを1個直しても50個直しても、道具の値段は同じ。つまり「作業1回あたりの値段」という考え方自体がなかったのです。

ところが Claude Code のような AIエージェント型のコーディングツールでは話が変わります。使った分(=トークンの量)だけ支払う仕組みなので、まったく同じ修正作業でも、やり方によって値段が変わるのです。

公式ブログでは、こんな対比が紹介されています。

✅ 上手なセッションの例

Claude がテストファイルと対象ファイルの2つだけを読み、修正して、数ターンで終了。読んだのは必要な2ファイルだけ。

❌ もったいないセッションの例

Claude がまずリポジトリ全体を検索(grep)し、関係ない十数個のファイルを開いてから、ようやく同じ2ファイルにたどり着く。しかも、そのあいだ毎ターン、朝から会話に溜まった全部の履歴を引きずったまま。結果は同じ修正なのに、消費トークンは何倍にもなります。

💡 この教科書の中心思想

「節約」とは、トークンの総量を減らすことではありません。使うトークンを、本当に頼んだ作業のためだけに使わせることです。ムダな検索・ムダな履歴・ムダな出力を減らせば、同じお金でより多くの作業ができます。

・・・
第1章

トークンとは何か(超基礎)

1-1. トークン=AIが読む「文字のかたまり」

AIは文章を1文字ずつではなく、「トークン」という小さなかたまり単位で読み書きします。英語なら単語の一部、日本語なら1〜2文字程度が1トークンになるのが目安です。Claude Code の料金(または利用枠の消費)は、このトークンの数 × 種類ごとの単価で決まります。

1-2. 本当に払っているのは「GPUの時間」

請求書には「トークン数」と書かれますが、実際に買っているのは推論(inference)の時間、つまり GPU などの計算機がモデルを動かす時間です。だから「大きいモデルほど高い」「出力は入力より高い」といった価格差が生まれます。ここは第2章で詳しく見ます。

1-3. いちばん大事な事実:「一度会話に入ったものは、毎ターン送り直される」

初心者が最初に驚くポイントがここです。Claude が読んだファイルや、実行したコマンドの出力は、会話に追加された瞬間から、そのセッションが終わるまで毎ターン、モデルに送り直され続けます

たとえるなら、会議のたびに過去の議事録を全部音読してから本題に入るようなものです。キャッシュ(後述)のおかげで再送は安くなりますが、タダではありませんし、モデルが毎回「考えなくていい情報」に気を取られる原因にもなります。

ミニクイズ:Claude が朝イチで読んだ 500 行のログファイルは、午後の 30 ターン目の会話にも影響しますか?

影響します。同じセッションを続けている限り、そのログは 30 ターン目のリクエストにも含まれて送信されます。だからこそ「不要になった履歴は捨てる」(第6章の /clear/compact)が効くのです。

・・・
第2章

トークンの値段を決める3つの要素

1トークンあたりの値段は、次の3つで決まります。

1
どのモデルを使うか

大きいモデルは、入力を読むのも出力を書くのも多くの計算をします。難しい・曖昧な問題には大きいモデル、決まりきった作業には小さいモデルが原則です。以降で学ぶすべての節約テクニックは、最終的にモデルの単価が掛け算されます。つまり「モデル選び」は節約の土台です。

2
入力トークンか、出力トークンか

リクエストは2段階で処理されます。まずプリフィル(prefill):システムプロンプト、CLAUDE.md、あなたのメッセージ、それまでに読んだファイルやコマンド出力……つまり「入力」をまとめて読み込む段階。次にデコード(decode):思考・ツール呼び出し・回答文といった「出力」を、1トークンずつ順番に生成する段階です。

200トークンの返答は、モデルを200回連続で動かすことを意味します。1トークンあたりのGPU占有時間がずっと長いため、出力は入力の約5倍の価格になっています。

出力トークンの多くは「思考(thinking)」に使われます。1ターンあたりどれだけ考えるかは /effort コマンドで調整でき、選んだ値は次のセッションにも引き継がれます。

3
キャッシュされているか

直前に見たリクエストと先頭からまったく同じトークン列なら、サーバーは前回の計算結果を使い回せます。これがプロンプトキャッシュです。キャッシュからの読み出しは通常入力の 0.1 倍という激安価格。書き込みは最大 2 倍かかりますが、書き込みは1回きり、読み出しは以降の全ターンで発生するので、トータルでは圧倒的に得です。第3章でじっくり見ます。

🖐 やってみよう(セッション開始時の儀式)

新しいセッションを開いたら、まず次の2つを打って「いま自分が何に乗っているか」を確認しましょう。どちらも前回選んだ値を覚えているので、無自覚に高い設定のまま走らないためのチェックです。

/model   ← いまのモデルを確認(例:軽作業なのに大型モデルになっていないか)
/effort  ← いまの思考量レベルを確認

さらに、単純作業だと最初から分かっているセッションなら、起動時に思考を切る方法もあります(Fable 5 を除く)。

MAX_THINKING_TOKENS=0 claude  ← そのセッションだけ thinking をオフ。/effort low のさらに下
・・・
第3章

プロンプトキャッシュのしくみを実例で理解する

この章がこの教科書の心臓部です。「fix the failing test in utils.test.ts(utils.test.ts の失敗テストを直して)」と入力したとき、裏側で何が起きるかを1リクエストずつ追いかけます。

💡 前提

Claude Code はキャッシュを全自動で管理します。何かをオンにする必要はありません。あなたがすべきことは「キャッシュを壊さない使い方」を覚えることだけです(第4章)。

3-1. 1つの修正の裏側で起きる「5回のリクエスト」

1
最初のリクエスト:全部を新規で読み込む

Claude Code は、システムプロンプト(ツール定義を含む)+ CLAUDE.md + あなたのメッセージをまとめて送信します。キャッシュはまだ空なので、全部がフル価格でプリフィルされ、同時にキャッシュへ書き込まれます

2
2回目:ファイルを読む

モデルは「見たことのないテストは直せない」ので、少し考えて utils.test.ts の Read(読み取り)を要求します(ここは出力トークン)。Claude Code がファイルを会話に追加して、全体をもう一度送信。ただし今度は、リクエスト1の分はキャッシュから 0.1 倍の価格で読み出され、フル価格なのは新しく増えた部分(Read 呼び出しとファイル本文)だけです。

3
3回目:テスト対象のファイルも読む

同じパターンの繰り返しです。リクエスト1〜2の内容はキャッシュから、2つめのファイルだけがフル価格。

4
4回目:修正を適用する

モデルが Edit(編集)を返し、Claude Code が適用して結果を追記、また全体を送信。新しいのは Edit とその結果だけ。それより前は全部キャッシュ読み出しです。

5
5回目:テストを走らせて確認

npm test を実行し、その出力を追記して送信。テストが通れば、モデルは短いまとめを返して終了。ツール呼び出しがなければ次のリクエストは発生しません。

3-2. ここから読み取れる「毎ターンの請求書」

たった1つの小さな修正で5回のリクエストが飛び、そのどれもが「会話の全履歴」を含んでいました。典型的なターンは極端に偏っていて、入っていくのは数万トークン、出てくるのは数百トークン。それでもフル価格で処理されるのは「そのターンで新しく増えた部分」だけです。

項目価格発生するもの
過去の履歴0.1倍(キャッシュ読み出し)毎ターン、履歴全体
そのターンの新規部分フル価格(入力)新しく読んだファイル、コマンド出力など
モデルの返答約5倍(出力)思考・ツール呼び出し・回答文
💡 サブスク利用者にも関係あります

定額プラン(Pro など)では価格を直接見ることはありませんが、同じ仕組みで利用枠(リミット)が消費されます。節約テクニックはそのまま「リミットが長持ちする」に置き換えて読んでください。

・・・
第4章

キャッシュを「壊してしまう」5つの操作

キャッシュはリクエストの先頭から順に一致していないと使えません。送信順はいつも「ツール定義 → システムプロンプト → 会話(先頭に CLAUDE.md)」。この列の前のほうが変わると、そこから後ろが全部フル価格で再計算になります。会話の末尾に追記されるツール結果が理想形(後ろに何もないから)で、逆に前方を変える操作が危険です。

4-1. 危険な操作一覧

操作何が起きるか
/model(途中でモデル変更)モデルごとにキャッシュが別なので、次のターンで会話全体がフル価格で再プリフィル。plan モードの出入りで毎回モデルが切り替わる opusplan も同じ。
/effort(途中で思考量変更)effort もキャッシュのキーの一部。変更すると同じく全再計算。だから途中変更時に確認を求められる。
fast mode を途中でオンこれもキーの一部。しかも再プリフィルは fast mode 価格。使うならセッションの最初からオンに。(オフに戻すのはキャッシュ的には無料)
/compact(会話の要約圧縮)会話が短い要約に置き換わるので、以前の会話とは一致しなくなる(前にあるシステムプロンプトは生き残る)。要約の作成自体は、元の会話がまだキャッシュにあるうちなら安い
時間経過(放置)キャッシュの有効期限はサブスクで1時間、APIキーで5分ENABLE_PROMPT_CACHING_1H=1 で1時間に延長可)。毎ターンで時計はリセットされるが、それ以上空けて戻ると次のターンで全再プリフィル。古いセッションの再開(resume)もほぼ確実にキャッシュ切れ。

4-2. 「切り替えるな」ではなく「安いタイミングで切り替えろ」

誤解しないでください。モデルや effort を変えてはいけない、という話ではありません。変えるのが安い瞬間高い瞬間がある、という話です。

✅ 安いタイミング

セッションの開始直後、または /clear の直後。まだキャッシュに大した量が入っていないので、壊れても被害が小さい。

❌ 高いタイミング

長い会話のど真ん中。数万トークンの履歴が全部フル価格で再計算されます。

4-3. 覚えて得する裏ワザ:/rewind

「直近の数ターン、変な方向に行っちゃったな。ここだけ無かったことにしたい」——そんなときに /compact で全体を要約し直すのはもったいない。/rewind なら会話の末尾を切り落とすだけなので、それより前のキャッシュはそのまま生きていて、コストはゼロです。

# 使い分けの目安
/rewind   ← 直近の失敗ターンだけ捨てたい → キャッシュ無傷・コストゼロ
/compact  ← 会話全体を短くまとめたい → 必ずいくらかコストがかかる
🖐 やってみよう(離席前の儀式)

昼休みや外出など、1時間以上キーボードを離れる前/compact を打つ習慣をつけましょう。理由:要約を作る作業は「元の会話がまだキャッシュにあるうち」なら格安ですが、キャッシュが切れた後だと会話全体をフル価格で読み直してから要約することになるからです。同じ操作でも、打つタイミングで値段が変わります。

ミニクイズ:長い会話の途中で「速くしたい」と思い立ち、fast mode をオンにしました。何が起きるでしょう?

fast mode はキャッシュのキーの一部なので、会話全体が再プリフィルになり、しかもその再計算は fast mode 価格で請求されます。fast mode を使うと決めているなら、セッションの最初からオンにしましょう。ちなみにオフへ戻す方向はキャッシュ的には無料です。

・・・
第5章

コンテキストに入るものを減らす技術

セッションの総コストは、突き詰めるとこの3つで決まります:①コンテキストに何トークン入るか、②それが何ターン居座るか、③同時にいくつのコンテキストを走らせるか。この章は①、次章が②、第7章が③です。

5-1. 打つ前から入っているもの:/context で棚卸し

あなたが1文字も打つ前から、コンテキストにはツール定義・システムプロンプト・CLAUDE.md・起動時に読み込まれる各種設定が入っています。まずこれを見える化しましょう。

🖐 やってみよう(月に一度の大掃除)

新規セッションで /context を実行してください。「何も頼んでいないのに、すでに何が載っているか」が一覧できます。そのうえで:

CLAUDE.md はスリムに ― 具体的で常時必要な指示だけを残し、特定作業でしか使わない手順は スキル(skills)に移す。スキルは使うときだけ読み込まれるので、普段のコンテキストを圧迫しません。
使わない MCP サーバーはオフ ― このセッションで不要な MCP サーバーがあれば /mcp で無効化。ツール定義の分だけ毎ターンが軽くなります。

5-2. 「探させない」だけで数ファイル分の節約:@メンション

セッション中にコンテキストへ入るものの大半はツールの結果、つまり Claude が読んだファイルと、実行したコマンドの出力です。Claude がどれだけ読むかは、あなたの指示がどれだけ具体的かでほぼ決まります。

指示の仕方Claude の動きコスト
「テストが失敗してる」どのテストか分からないので grep で検索 → 候補ファイルを何個も開く → やっと特定。開いた無関係ファイルは全部その後も居座る。高い
utils.test.ts の失敗テストを直して」検索は不要。ただしファイルを読むための Read 呼び出しが1回。
@utils.test.ts の失敗テストを直して」@メンションすると送信前にファイルが添付されるので、Read 呼び出しすら不要。最初のリクエストに最初から入っている。最安
⚠️ @メンションの注意点

ファイル本文がコンテキストを占める量は、どの方法でも同じです。そして同じ会話で同じファイルを2回 @メンションすると、2部目のコピーが添付されてしまうのが一般的な挙動です。@メンションは1会話につき1回で十分。一度入れたファイルはずっとそこにいます。

5-3. うるさいコマンド出力を黙らせる

もうひとつコンテキストを埋めるのが、コマンドの出力です。テスト・ビルド・git log ……画面に出たものは、読んだファイルと同じように会話へ追記され、同じだけの期間居座ります。

面白いことに、巨大すぎる出力はむしろ安全です。30,000文字を超えると Claude Code が自動で出力をファイルに書き出し、会話には短いプレビューとファイルパスしか入れません(しきい値は BASH_MAX_OUTPUT_LENGTH で変更可)。

危険なのはしきい値未満の「中途半端に長い」出力です。たとえば「400件のテストがすべて合格」を1行ずつ律儀に印刷するテストランナー。この400行は自動退避の対象外なので、残りの全ターンにくっついてきます。

🖐 やってみよう(CLAUDE.md に「静かな呪文」を書く)

毎日使う2〜3個のコマンドを、静音フラグ込みの完成形で CLAUDE.md に書いておきましょう。たとえば:

# CLAUDE.md に書く例
テストを1ファイルだけ実行するときは次のコマンドを使うこと:
npx vitest run <file> --reporter=dot

--reporter=dot は結果を「.」の羅列で表示する静音オプションです。これだけで、毎セッション数百行ぶんの出力と、Claude が試行錯誤するターンが1つ消えます。Claude 自身がフラグや tail で出力を絞ってくれることも多いですが、任せきりにしたくない場合は、実行前にコマンドを書き換えるフック(hook)の例が公式ドキュメントにあります。

・・・
第6章

セッションを短く・きれいに保つ技術

6-1. 長い1本より、短い数本

同じ量の仕事なら、1本の長いセッションより、数本の短いセッションのほうが安くつきます。しかも想像以上に差が出ます。なぜなら40ターン目のリクエストは、その前の39ターンぶんの履歴も一緒に読み直しているからです。

原則はシンプル:1つのタスクの文脈を、次のタスクへ持ち込まない

/clear    ← 新しい別のタスクを始めるとき(会話を空にする)
/compact  ← 同じタスクの前半が終わり、要点だけ残して続けたいとき
/rewind   ← 直近の失敗ターンだけ捨てたいとき(第4章参照・コストゼロ)

6-2. 便利な小ワザ3つ

1
/clear する前に /rename

あとでそのセッションに戻る可能性があるなら、消す前に分かりやすい名前を付けておきましょう。

2
/compact には「残してほしいもの」を伝える

要約時に何を残すか指示できます。毎回同じ指示になるなら、CLAUDE.md に「Compact instructions」というセクションを作って書いておけば自動で効きます。

3
1Mコンテキストのモデルで自動圧縮を復活させる

コンテキスト100万トークンのモデルでは自動 compact の発動が遠くなります。以前の位置に安全網を戻したいなら /autocompact 200k(Claude Code v2.1.221 以降)。

6-3. 見落としがちな罠:/loop(自動繰り返し)

キーボードを触っていない間に走るターンにも注意しましょう。/loop設定したセッションの中でフルターンとして発火し、そのたびに会話全体を引きずります。さらに前回のターンから1時間以上空いていれば、キャッシュミス(全再プリフィル)まで重なります。

✅ 正しいやり方

ループを回したいときは、別のターミナルで新しいまっさらなセッションを開いて、そこから実行する。履歴ゼロのセッションなら、毎回引きずる荷物がありません。

・・・
第7章

サブエージェントで「別の部屋」を使う

7-1. サブエージェントとは何か

自分のコンテキストに入れたくない作業を、別のコンテキストで実行してもらう仕組みがサブエージェントです。サブエージェントは自分専用のコンテキストウィンドウを持ち、システムプロンプト・ツール・あなたの CLAUDE.md は引き継ぎますが、あなたの会話履歴は持っていきません。自分のターンを回して作業し、メインの会話に返ってくるのは最終的な答えだけ。途中で読んだものは、終わったら全部捨てられます。

7-2. 得する場面・損する場面

場面判定理由
巨大なログを調べて原因の1行を見つける◎ 得ログ全文はサブエージェント側で消化され、メインには結論だけが返る。メインのコンテキストが汚れない。
小さな1回きりの作業△ 損会話履歴を知らないので、メインがすでに読んだものを読み直すことがあり、その分のターン代も払う。ただのオーバーヘッド。

Claude はログ調査のような作業では自分からサブエージェントを使うことが多いですが、使ってくれないときは自分で頼めます。

# 頼み方の例(日本語でOK)
このログをサブエージェントで調べて、エラーの原因だけ報告して
⚠️ 注意

メインセッションが受け取るのはサブエージェントが報告しようと選んだ内容だけです。詳細が必要なら「〜も含めて報告して」と最初に指定しましょう。

7-3. 定番作業には「専用の安いサブエージェント」を作る

何度も投げる決まった雑務(ログ整形、定型チェックなど)があるなら、サブエージェント定義を作って model: haiku(または sonnet)を指定しておきましょう。指定しないと、メインセッションと同じ(高い)モデルで走ってしまいます。雑務を小型モデルに固定するだけで、恒常的な節約になります。

・・・
第8章

今日から使える実践チェックリスト

8-1. 公式が挙げる6つの基本動作(TL;DR)

タイミングやること効果
タスクの切れ目/clear を打つ前のタスクの無関係な履歴を送り続けない
セッション開始時モデルと effort を先に決める(/model /effort で確認)途中変更によるキャッシュ全壊を防ぐ
ファイルを指すときファイル名を書かず @ファイル名 で添付(1会話1回)Read 呼び出しや検索のターンを丸ごと省略
コマンド実行時静音フラグを付ける/サブエージェントで実行数百行の出力が全ターンに居座るのを防ぐ
新規セッションで一度/context で棚卸し(CLAUDE.md・MCP の整理)「打つ前から重い」状態を解消
離席の前/compact を打つキャッシュ失効(1時間)前なら要約が格安で済む

8-2. コストへの影響が大きい順に見る場所

記事の締めくくりは「どこから手を付けるか」でした。優先順位はおおむね次のとおりです。

1
モデルと effort の選択

すべての単価に掛け算される土台。難しい問題にだけ大きいモデルを。

2
キャッシュを壊す操作の回避

途中の /model/effort・fast mode、1時間超の放置。

3
コンテキストに入る量の管理

@メンション・静音フラグ・/context 棚卸し・サブエージェント。

4
セッションの長さの管理

タスクごとに /clear、区切りで /compact、失敗ターンは /rewind

8-3. 総復習クイズ

Q1. 「トークンを節約する」の正しい意味は?

総量を減らすことではなく、使うトークンを、頼んだ作業そのものに向けること。ムダな検索・履歴・出力を削るのが本質です。

Q2. 出力トークンが入力の約5倍高いのはなぜ?

出力は1トークンずつ逐次生成されるから。200トークンの返答=モデルを200回連続で回すことなので、GPUの占有時間が入力処理よりはるかに長くなります。

Q3. 昼食に出て90分後に戻り、そのまま会話を続けました。何が起きた?

キャッシュの有効期限(サブスクで1時間)を過ぎているため、次のターンで会話全体がフル価格で再プリフィルされました。離席前に /compact しておけば、短い要約だけの再読み込みで済んだはずです。

Q4. 「@main.py を直して」と頼んだあと、3ターン後にもう一度「@main.py のここも」と書きました。問題は?

2回目の @メンションで同じファイルの2部目のコピーが添付されがちです。一度添付したファイルは会話に残り続けるので、2回目以降は普通に「main.py のここも」とファイル名だけで指せば十分です。

・・・
付録

用語集

トークン(token)
AIが文章を読み書きする最小単位。日本語なら1〜2文字程度が目安。課金・利用枠消費の単位。
推論(inference)
学習済みモデルを実際に動かして答えを作ること。あなたが払っているのは実質この計算時間。
コンテキスト(context)
モデルが1回のリクエストで参照できる情報の全体。システムプロンプト、CLAUDE.md、会話履歴、読んだファイル、コマンド出力などが入る。
プリフィル(prefill)/デコード(decode)
プリフィル=入力をまとめて読み込む段階。デコード=出力を1トークンずつ生成する段階。デコードのほうが単価が高い(約5倍)。
プロンプトキャッシュ(prompt caching)
直前のリクエストと先頭が完全一致する部分の計算結果を使い回す仕組み。読み出しは通常入力の0.1倍、書き込みは最大2倍。Claude Code が自動管理。
キャッシュミス
先頭一致が崩れて(モデル変更・時間切れなど)、履歴全体をフル価格で計算し直すこと。
CLAUDE.md
プロジェクトごとの指示書ファイル。会話の先頭に毎回読み込まれるため、スリムに保つほど毎ターンが軽くなる。
スキル(skills)
特定の作業手順をまとめた部品。使うときだけ読み込まれるので、常時読み込みの CLAUDE.md から手順を移す先として最適。
MCP サーバー
外部ツールを Claude に接続する仕組み。接続中はツール定義がコンテキストに常駐するため、不要なものは /mcp でオフに。
サブエージェント(subagent)
独立したコンテキストで作業する別働隊。会話履歴は持たず、答えだけをメインに返す。model: haiku 指定で安く運用できる。
effort(思考量レベル)
1ターンあたりモデルがどれだけ「考える」(thinking トークンを使う)かの設定。/effort で変更。前回の値が次セッションにも引き継がれる。
fast mode
高速応答モード。キャッシュのキーに含まれるため、使うならセッション開始時からオンにする。
出典

出典・参考

本テキストは以下の記事の内容を、初学者向けに再構成・翻訳・補足したものです。数値(0.1倍・約5倍・1時間/5分・30,000文字など)はすべて原典に基づきます。仕様は今後変更される可能性があるため、最新情報は原典と公式ドキュメントを確認してください。

・Lydia Hallie, “Maximizing the value of your Claude Code sessions” (Claude Blog, 2026-08-14)
https://claude.com/blog/maximizing-the-value-of-your-claude-code-sessions

・関連記事:“Choosing a Claude model and effort level in Claude Code”
https://claude.com/blog/claude-model-and-effort-level-in-claude-code

積み上がる履歴と新しい一行で毎ターンのトークン消費を表した表紙画像
FUJIKAWA LAB SPECIMEN 34 / 34