トークン、コンテキスト、メモリ
3つの考え方が、多くの「なぜこうなったの?」という瞬間を解き明かしてくれます。それは トークン、コンテキストウィンドウ、そして メモリ です。これらを理解すれば、話のドリフト、忘却、想定外の請求に驚かなくなります。
- テキストをモデルと同じように読む — 単語や文字ではなくトークンで
- コンテキストウィンドウを有限のデスクとしてイメージし、いつ物が落ちるかを予測する
- 「コンテキストの腐敗(context rot)」を見抜く — なぜモデルは長い入力の中間を見失うのか
- 「メモリ」の4つの本当の出どころと、意図的にそれを与える方法を知る
トークン: モデルが思考する単位
モデルは文字や単語を読みません — トークン、つまり英語ではおよそ単語の¾ほどのテキストの塊を読みます。"Unbelievable" は 3〜4 トークンかもしれません。よく使う単語はそれぞれ 1 トークン。スペースやカンマ、コードの一部もそれぞれトークンを消費します。あなたの入力 も モデルの出力 も 両方カウントされ、トークンこそが 価格と上限 を測る単位そのものです。
手で数える必要はありませんが、おおまかな感覚があると役立ちます。約750語 ≈ 約1,000トークン。何か入力して観察してみてください。
あくまで大まかな目安です(おおよそ 文字数 ÷ 4、または 単語数 × 1.33)。トークン数はモデルごとに異なります — 別のモデルのトークナイザーは決して使わないでください。正確な数値が必要な場合は、Anthropicのトークンカウント用エンドポイントを使用してください。
:::tip なぜ比率が変わるのか 平易な英語はトークンあたり¾語くらいに収まります。コード、JSON、非ラテン文字、長いURL、まれな単語は より多くの トークンに分割されます — だから500行のファイルや中国語の段落は、語数から想像するよりコストがかかります。請求や上限に驚いたとき、たいていこれが理由です。 :::
コンテキストウィンドウ: ワーキングメモリ
コンテキストウィンドウ とは、モデルが一度に考慮できるトークンの最大数です — あなたのシステムプロンプト、これまでの会話すべて、添付したファイル、そして書いている途中の返信 が、すべてまとめて含まれます。これはモデルのデスクだと考えてください。大きいけれど有限です。ウィンドウのサイズはモデルによって異なり、増え続けています — 1つを暗記するのではなく、現在の数値は モデルと価格 を参照してください。
モデルがその瞬間に「知っている」ものはすべて、そのデスクの上にあります。
会話がウィンドウを超えて大きくなると、最も古い内容が落ちていきます。だから非常に長いチャットは、どう始まったかを「忘れた」ように見えたり、当初の指示からそれていったりするのです。
コンテキストの腐敗: 単に 満杯 か 空 かの問題ではない
もっと微妙な問題があります。すべてがまだ収まっている場合でも、モデルは長い入力の 先頭と末尾 を、中間 よりも確実に使う傾向があります。50ページの貼り付けの中央に、唯一重要な一文を埋め込むと、それは軽視されるかもしれません — しばしば 「中間で迷子(lost in the middle)」 と呼ばれる失敗モードです。
- 長いドキュメントを貼り付ける前に、実際の指示や質問を先に置く — その後ろに埋めない。
- 長い内容のあとに、重要な指示を1行で繰り返す。先頭+末尾の位置が最も強い。
- 無関係なセクションを落とす。中間のノイズが減れば、残ったシグナルにより多くの注意が向く。
- 非常に大きな入力では、すべてを投げ込むのではなく要約するかチャンクに分ける — もしくは新しいサブタスク用に新規チャットを始める。
以下は同じ依頼を、指示が強い位置に来るように構成したものです。
指示を先頭に、末尾で言い直す
Task: Find every place this contract caps our liability, and quote the exact clause. [... paste the full 40-page contract here ...] Reminder of the task: list only the liability-cap clauses, with exact quotes and section numbers. Ignore everything else.
:::tip Claude Code では 長いエージェントセッションも同じ天井にぶつかります。Claude Code はそれを意図的に管理します — 履歴をコンパクト化し、何を視界に留めるかをあなたが操れるようにします。コンテキスト管理 と コンテキストエンジニアリング を参照してください。 :::
メモリ: 与えない限り、存在しない
デフォルトでは、各会話は 白紙の状態 です。モデルはあなたの前回のチャットを覚えていません。メモリのように見えるものはすべて、次の4つのうちのどれかです。
| 出どころ | それは何か | あなたが制御する方法 |
|---|---|---|
| 再送される履歴 | チャットアプリは毎ターン会話を再送し、ウィンドウが満杯になるまで続ける | 新規チャットを始める。スレッドを焦点の絞られた状態に保つ |
| メモリ機能 | 一部の Claude のサーフェスはチャットをまたいで事実を引き継ぐ | チャット間のメモリ 設定 |
| あなたが与えるファイル | 意図的に添付する永続的なコンテキスト | プロジェクト、CLAUDE.md |
| あなた自身のコード | API は ステートレス — 過去のメッセージを再送する | 最初の API 呼び出し |
一貫した要点: モデルに何かを覚えていてほしいなら、それをデスクの上に置き続けなければなりません。
なぜこれが重要なのか
ほぼすべての「以前の指示を無視した」「話を見失った」という問題は、3つのうちの1つにたどり着きます。ウィンドウが満杯になった、新しいセッションが冷たい状態で始まった、あるいは重要な詳細が長い貼り付けの死んだ中間に座っていた、のいずれかです。これを知っていれば、重要なものを 視界に 保つようにプロンプトとセッションを構成できます。
確認しよう
Check yourself
0/3重要な用語
:::note 要点
- トークン は思考と請求の両方の単位 — 英語750語あたり約1,000、コードや他の文字ではより多い。
- コンテキストウィンドウ は有限のデスク。長いチャットが忘れるのは、古い内容がそこから落ちるから。
- ウィンドウ内であっても、指示を先頭に置き、末尾で言い直す — 中間は十分に使われない。
- デフォルトでは メモリは存在しない。ファイル、プロジェクト、CLAUDE.md、または履歴の再送によって、意図的に与える。 :::