まだ「続ける」だけで使ってる?
Claude Codeを使い始めてすぐ、気づいたことがある。
Claude Codeのやり取りが長くなってくると、なぜか回答の質が落ちる。前に話した内容を忘れる。同じミスを繰り返す。
原因は「コンテキストの汚れ」だった。
管理の方法を変えたら、出力品質が明らかに上がった。知らないのは損。全部書く。
コンテキストウィンドウ=AIの「今見えている黒板」
AIには人間みたいな記憶がない。
代わりに「今この瞬間に見えている情報の量」が決まっている。それがコンテキストウィンドウ。Claude Codeの黒板サイズは **100万トークン**。文庫本で約750冊分。
黒板に書かれているものは全部「見えている」。あなたの指示、AIの返答、読み込んだファイル、ツールの出力。全部。
黒板がいっぱいになってきたとき、AIは古い情報と新しい情報を同時に見ながら考える。当然、集中力が落ちる。
コンテキスト腐敗。300〜400kトークンで劣化が始まる。
「コンテキスト腐敗(Context Rot)」という概念がある。
コンテキストが増えるほど、モデルの注意力が分散する。古くて関係ない情報が邪魔をする。Claude Codeの場合、**300〜400kトークン付近から劣化が始まる** とされている。
100万トークンあっても、使い方が悪ければ意味がない。
むしろ長く使えるぶん、「汚れに気づかないまま使い続ける」リスクが上がる。
会話が終わるたびに、5つの選択肢がある
Claude Codeがひとつの作業を終えたとき、次に何を送るかの前に選択肢がある。
「続ける」だけじゃない。
| 選択肢 | 何が起きるか | 使うタイミング |
|---|---|---|
| 続ける | そのまま会話を続ける | 同じ作業の延長 |
| /rewind 最強 | 指定のメッセージに戻り、以降を削除 | 失敗した。やり直したい。 |
| /clear | 黒板を全消し。新しいセッションで開始 | 新しいタスクを始めるとき |
| compact | 会話をAIが要約して黒板を軽くする | 長い会話を続けたいとき |
| サブエージェント | 別のClaudeに作業を切り出す | 中間出力が大量に出るとき |
rewindが最強な理由。失敗を「なかったこと」にする。
一番変わったのはrewindの使い方を覚えてからだ。
Claude Codeで `esc` を2回押すか `/rewind` を使うと、過去のメッセージに戻って、それ以降を削除できる。
**よくある失敗パターン:**
Claudeが5つのファイルを読み込んで、あるアプローチで作業した。うまくいかなかった。
❌ 「うまくいかなかった。別の方法で試して」と続けて送る。
✅ rewindでファイル読み込み直後まで戻り、「方法Aはダメだった。最初から方法Bで」と再指示する。
失敗の記録を黒板に残すな、という話。失敗したやり取りは汚れになる。
「やり直した」記録ではなく、「最初から正しい方向で進んだ」記録を作る。それだけで出力精度が上がる。
compactとclearは「誰が整理するか」が違う。
長い会話を整理したいとき、2つの選択肢がある。
**compact:** ClaudeがAIが会話を要約する。
自分では何もしない。ただし、何を残すかはClaude任せ。 `/compact focus on the auth refactor` のように指示を渡せば方向は絞れる。
**clear:** 自分で「大事な情報」を書き出してから新セッションを始める。
手間はかかる。でも黒板に何が載るかを自分でコントロールできる。
非効率が嫌いだから基本はcompactを使う。ただし重要なタスクのときはclearで自分がまとめたものを渡す。判断基準は「AIに任せていいタスクか」だけ。
bad compactが起きるとき。コンパクトのタイミングを間違えるな。
compactがうまくいかないパターンがある。
たとえば長いデバッグセッションのあと、自動でcompactが走った。要約が完了。次のメッセージで「そういえばさっき見てたbar.tsの警告も直して」と送ったとする。
そのデバッグに集中していた要約から、bar.tsの警告は落ちている。
原因は「compactのタイミングが悪い」こと。コンテキストがいっぱいになってから自動compact、ではなく、**余裕のあるうちに自分からcompactを走らせる。** しかも次に何をするかの指示を一緒に渡す。
1Mトークンのメリットは、余裕があるうちに動けること。ギリギリまで使って詰まるのは非効率だ。
サブエージェント=「中間出力を汚染させない」技術。
Claude Codeはサブエージェントを自動で使うことがある。でも自分から明示的に指示する方が効果的だと気づいた。
サブエージェントは「別の新しいClaude」に作業を切り出す機能。そのClaudeが大量の中間作業を終えたあと、**まとめた結論だけ** が自分のセッションに戻ってくる。
判断基準はひとつ。「途中の出力が後でまた必要か、結論だけでいいか。」
結論だけでいいなら、サブエージェントに出す。
**実際に使っている指示の例:**
– 「サブエージェントを立ち上げてこの作業の結果を別のspec.mdで検証して、問題なければ報告だけ返して」
– 「別コードベースの認証実装をサブエージェントに調べさせて、同じやり方でここに実装して」
– 「git diffをもとにドキュメントをサブエージェントに書かせて」
自分のコンテキストを汚さずに成果だけ受け取る。それだけで黒板がきれいに保たれる。
非効率は罪。コンテキスト管理を怠るのも同じだ。
Claude Codeは「続けるだけ」でも動く。でも黒板が汚れたまま使い続けると、AIの出力品質が静かに落ちていく。
気づかないから怖い。
今日から変えるのはシンプルな習慣だ。
・新しいタスクに入るとき `/clear` で黒板をリセット
・失敗したら続けず `/rewind` で戻る
・compactは余裕のあるうちに先手で走らせる
・中間出力が大量に出る作業はサブエージェントに切り出す
道具の性能を最大限使い切れているか。それを問い続けることが、AIを使いこなすということだ。
で、あなたは今日、何を変える?