Claude Codeを使っていると、会話を続けるうちに返答が遅くなったり、以前伝えた内容を忘れたような噛み合わなさを感じたりすることがあります。じつにその正体は『コンテキスト』と呼ばれる、会話を保持する容量にあります。公式ドキュメントでも、コンテキストが埋まるとClaudeが以前の指示を忘れ始めると説明されており、何をいつ整理するかによって使うべきコマンドは変わります。長く使い続けたいなら、/context・/compact・/clear・/btw・/forkの役割を知っておきましょう。ここでは、それぞれの使い分けと、重さを防ぐための運用の工夫を解説します。
Claude Codeの「コンテキスト」とは?非エンジニア向けに仕組みを解説
Claude Codeの「コンテキスト」とは、ここまでのやり取りをClaudeが覚えておける範囲のことです。この範囲には上限があり、使い切ると返答の質が落ちます。「コンテキストウィンドウ」という名前のせいで難しく感じますが、仕組み自体はシンプルです。
コンテキストウィンドウとは何か
コンテキストウィンドウとは、Claudeが一度に保持できる会話やファイルの情報量の枠のことです。公式ドキュメントでは、Best practicesにおいて、この枠は管理すべき最も重要なリソースだと位置づけられています。
イメージとしては、メモ用紙の面積に近いものです。やり取りが増えるほど、この枠の中に書き込む文字が増えていきます。枠が埋まってくると、新しく書き込むスペースを作るために、古い内容を押し出したり要約したりする必要が出てきます。
この枠には、次のようなものが入っています。
| 入っているもの | 内容 |
|---|---|
| これまでの会話 | 質問と回答のやり取りすべて |
| 読み込んだファイル | CLAUDE.mdなど、Claudeが参照した資料 |
| 実行結果 | 作業の途中経過や出力内容 |
枠が埋まってくると、Claude Codeは自動で内容を要約し、空きを作る動きをします。これは/compactコマンドを手動で打ったときと同じ仕組みだと、Explore the context windowで説明されています。
会話が長くなると何が起きるか
会話が長くなり枠が埋まってくると、Claudeは以前の指示を忘れたり、ミスを増やしたりし始めます。Best practicesでは、Claude Codeの推奨される使い方の多くが、枠がすぐ埋まり性能が落ちるという制約を前提に作られていると説明されています。
古い会話は、次に必要なファイルの情報を押し出してしまいます。そのうえ、毎回のメッセージでやり取りする情報量自体も増え、処理に時間がかかる原因になります。これが、「返答が遅い」「話が噛み合わない」と感じ始める理由です。
つまり、コンテキストが重くなる仕組み自体は、エンジニア向けの難しい話ではありません。枠に入る情報が増えすぎている、というだけの現象です。次の章では、この原因を実際に確かめた記録をもとに、何が枠を圧迫しやすいのかを見ていきます。
重くなる原因の9割は「会話の長さ」だった【実録】
枠が埋まると性能が落ちる仕組みは分かっても、自分の会話の何が枠を圧迫しているのかは、見た目だけでは判断できません。原因を確かめる方法が用意されています。
/contextコマンドで内訳を確認する
/contextは、いま保持しているコンテキストの内訳を表示するコマンドです。Commandsでは、会話が長くなったときに何が枠を占めているかを示す機能として案内されています。
Explore the context windowによると、/contextではカテゴリ別の使用量に加えて、CLAUDE.mdや自動メモリの読み込み状況、最適化の提案までその場で確認できます。入力するだけで、見た目では分からなかった内訳が表に出てきます。
| 確認できる項目 | 分かること |
|---|---|
| カテゴリ別の使用量 | 会話・ファイル・実行結果の内訳 |
| CLAUDE.mdの読み込み状況 | 設定ファイルがどれだけ枠を使っているか |
| 自動メモリの状況 | 自動で保持されている情報の量 |
| 最適化の提案 | 枠を空けるための具体的な案 |
原因を推測するのではなく、まず打ってみることで、重さの正体が見えてきます。
代表の旭は、重さの原因を切り分けるために/contextを実際に使い、何が枠を占めているかを確認しました。
実録代表・旭の一次体験
原因の9割は会話を長く続けすぎていたこと
自分の場合にどれが当てはまるかは、/context というコマンドで確認できます。打つと、いま保持しているコンテキストの内訳が表示されます。私の場合、原因のほとんどは長い会話そのものでした。
原因の9割は、会話を長く続けすぎていることでした。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
公式ドキュメントは、古い会話が枠を占めることで性能が落ちる仕組みを説明していますが、実際に何割がその原因になるのかまでは書かれていません。代表の旭が/contextで内訳を確かめたところ、原因のほとんどは会話の長さそのものでした。
モデル選択や拡張思考、サーバー側の負荷、ブラウザ拡張との干渉なども原因の候補として挙げられています。次の章では、この原因に対して実際にどのコマンドを使い分けているかを見ていきます。
/compactと/clearの違いは?場面での使い分け方
原因が会話の長さだと分かれば、次に必要なのは対処です。コマンドは/compactと/clearの2つが中心になります。
/compact:同じ会話のままコンテキストを要約して空ける
/compactは、これまでの会話を要約し、コンテキストの枠に空きを作るコマンドです。Commandsでは、会話が長くなったときに/contextで中身を確認し、/compactで要約して空きを作る流れとして紹介されています。
要約されるのは会話の中身であって、会話そのものは終了しません。同じ会話を続けながら、枠だけを軽くする操作です。いま進めている作業の続きをそのまま話したいときに向いています。
/clear:プロジェクトの記憶を残して新しい会話を始める
/clearは、CLAUDE.mdなどプロジェクトの記憶を保ったまま、新しい会話を始めるコマンドです。Commandsでは、同じ会話のまま枠を空けたいだけなら/compactを使うよう案内されており、/clearとは役割が分かれています。
Explore the context windowでは、無関係な作業に切り替えるときは/clearを使うよう推奨されています。古い会話が次に必要な情報を押し出してしまう仕組みは前述のとおりです。プロジェクトの前提は引き継がれるので、設定をやり直す手間はかかりません。
| コマンド | 会話の扱い | 向いている場面 |
|---|---|---|
| /compact | 同じ会話のまま要約する | 今の作業を続けながら枠を空けたいとき |
| /clear | 新しい会話を始める(記憶は保持) | 話す内容が別の作業に切り替わるとき |
テーマが変わったらclear、同じテーマで増えたらcompact
公式ドキュメントが示す役割の違いは分かっても、実際の作業中にどちらを選ぶかで迷う場面は残ります。代表の旭は、この迷いに対して自分なりの判断基準を使っています。
テーマが変わったタイミングでclearを使い、同じテーマの中でコンテキストが増えてきたらcompactを使う、という使い分けをしています。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
判断の軸は「話しているテーマが変わったかどうか」の一点です。同じテーマの作業を続けているなら/compact、別のテーマに移るなら/clear、という具合に選べます。
次の章では、テーマの切り替えがさらに複雑になる場面、本筋から外れた質問や、別の話題を並行して進めたいときの対処を見ていきます。
本筋から外れた質問は/btw、話題を分けたいときは/forkを使う
テーマが変わったかどうかで/clearと/compactを選べても、実際の会話では判断に迷う場面がもう2つあります。ひとつは、作業の途中でふと浮かぶ質問です。もうひとつは、ひとつのチャットの中で複数の話を同時に進めたくなる場面です。
/btw:会話履歴に残らないサイドクエスチョン
/btwは、いま進めている作業について、会話の履歴に追加しない形で質問できるコマンドです。Interactive modeでは、サイドクエスチョン専用の仕組みとして案内されています。
この質問はファイルの読み込みやコマンドの実行といった操作を行わず、すでに枠の中にある情報だけをもとに回答します。直近20件のやり取りをその都度参照でき、/clearで消すまでは一連の履歴として扱われます。
つまり、作業の本筋には積み上がらない質問専用の窓口です。代表の旭は、この仕組みを次のように使っています。
わからない言葉や、本筋から外れた質問はbtwで聞きます。会話の履歴に残らない形で質問できるコマンドで、コンテキストを消費せずに済みます。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
見慣れない言葉が出てきたときや、ふと気になった周辺知識を確認したいときに向いています。本筋の会話を進めながら、枠を圧迫せずに疑問を解消できます。
/fork:ひとつのチャットで複数テーマを扱わない工夫
/forkは、いまの会話をコピーして、新しいセッションとして分岐させるコマンドです。Commandsでは、分岐後も元のセッションで作業を続けられる仕組みとして説明されています。
分岐した会話は、分岐した時点までの前提や文脈をそのまま引き継ぎます。ゼロから説明し直す必要がなく、別の話題として枠を分けられます。
代表の旭は、重さが再発しやすい条件を振り返る中で、この運用にたどり着きました。
長い会話を続けているとき、あるいは、ひとつのチャットの中で複数のテーマを行き来しているときに起きやすかったのです。
まず、同じチャットの中で複数のテーマを話しません。プロジェクトAの話をしている途中でプロジェクトBの話をしたくなったら、/fork で会話を分岐させます。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
ひとつのチャットの中で複数のテーマを行き来すると、重さの原因になりやすくなります。話題が変わりそうだと感じた時点で分岐させれば、それぞれの会話は単一の話題を保ったまま進みます。
ここまでの使い分けを整理すると、次のようになります。
| 場面 | 使うコマンド |
|---|---|
| 作業と関係ない一時的な質問 | /btw |
| 別の案件・別の話題を始めたい | /fork |
/compactや/clearが会話全体の重さに対する操作だとすれば、/btwと/forkは会話の中身を単一の話題に保つための操作といえます。テーマ管理をCLAUDE.mdの設計から見直したい場合は、CLAUDE.mdの書き方もあわせて参考になります。次の章では、これらのコマンドだけに頼らない運用の工夫を見ていきます。
コマンドだけに頼らない。運用を変えたら体感9.5割、重さが起きなくなった
/compact・/clear・/btw・/forkはいずれも、重くなった状態をその場で軽くする操作です。ただ、これらを使いこなしていても、重さ自体が再発する場面は残ります。その再発を防ぐには、コマンドの外側に手を打つ必要がありました。
チャットの外にCLAUDE.md・議事録・意思決定ログを置く
代表の旭は、コマンドによるその場しのぎとは別に、チャットの外にコンテキストを貯める場所を作りました。
チャットの外にコンテキストを貯める場所も作りました。CLAUDE.md、議事録.md、意思決定ログ.mdです。チャットの履歴には頼りません。これらのファイルを読み返せば、会話を再開できます。
分断というより、記録を介した引き継ぎだと考えています。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
/clearや/forkで会話を分けると、それまでの流れが途切れたように感じます。しかし前提や決定事項をファイルに残しておけば、新しい会話を始めても文脈をすぐ復元できます。会話の記憶ではなく、ファイルの記録に文脈を持たせる考え方です。
3つのファイルの役割は、次のように分けられます。
| ファイル名 | 役割 |
|---|---|
| CLAUDE.md | プロジェクトの前提・ルールを記録する |
| 議事録.md | 話し合った内容・経緯を記録する |
| 意思決定ログ.md | 決まったこと・その理由を記録する |
CLAUDE.mdの具体的な書き方や、業務ごとのフォルダへの置き方は、フォルダ構成の決め方で扱っています。ここでは、チャットの外に記録を置くという考え方だけ押さえておけば十分です。
運用を変えてからの体感の変化
コマンドの使い分けに加えて、この記録を置く運用に変えたことで、どのくらい変化があったのでしょうか。
中長期的にClaude Codeが重くならないよう対策をするために、運用を変えたら、体感9.5割問題が起きなくなりました。
絶対に起きなくなる、という保証ではありません。頻度を大きく減らせる、という記録です。実際、この運用に変えてからGOROの環境では、文字化けや文字消失の話を聞かなくなりました。
出典:Claude Code 重いときの原因と対策。文字も消える不具合と、再発させない運用ルール(代表・旭俊成のnote)
ここで明記されているとおり、これは絶対に起きなくなるという保証ではなく、頻度を大きく減らせたという記録です。コマンドだけでは消えなかった重さの問題が、記録を置く運用を足すことで起きにくくなったという結果になります。
/compactや/clearは目の前の重さを軽くする操作、CLAUDE.mdや議事録・意思決定ログは重さの再発そのものを起きにくくする操作です。両方を組み合わせることで、長く使い続けても安定した状態を保ちやすくなります。
/context・/compact・/clear・/btw・/forkの使い分け早見表
ここまで、5つのコマンドの役割と、記録を残す運用について見てきました。最後に、判断の基準を一覧にまとめます。
5つのコマンドの役割と使うタイミング
迷ったときは、次の表を見返してください。判断の軸は「会話の長さ」「テーマが変わったか」「質問の種類」の3つです。
| コマンド | 役割 | 使うタイミング |
|---|---|---|
| /context | 枠の内訳を確認する | 返答が遅い・噛み合わないと感じたとき |
| /compact | 同じ会話のまま要約して空ける | 同じテーマでやり取りが増えてきたとき |
| /clear | 記憶を保ったまま新しい会話を始める | 話すテーマが別の作業に切り替わるとき |
| /btw | 履歴に残らない質問をする | 本筋から外れた一時的な疑問が浮かんだとき |
| /fork | 会話をコピーして分岐させる | ひとつのチャットで別の話題も進めたいとき |
前述のとおり、/compactと/clearは会話全体の重さを操作するコマンド、/btwと/forkは話題をひとつの会話に混ざらないようにするための操作です。/contextは、その手前でどちらを使うべきかを判断するための確認手段です。
チームで使う場合・ひとりで使う場合の工夫
チームで使う場合は、この早見表をそのまま共有できます。誰が使っても判断基準が揃っていれば、新しく使い始めたメンバーが毎回「これはclearかcompactか」で迷う必要がなくなります。CLAUDE.mdや議事録.mdのような記録ファイルを使う運用も、チームで共有するほど効果が出やすい工夫です。これらのファイルの置き場所や権限の考え方は、Claude Codeの設定ファイルの置き場所で扱っています。
ひとりで使う場合は、記録ファイルを自分用のメモとして最小限に留めても構いません。案件ごとにCLAUDE.mdだけ分けておき、話題が変わったら/clearか/forkで分けるというルールだけでも、重さの再発は減らせます。
会話が長く続いた結果として枠が埋まり、返答が重くなるという仕組みさえ理解していれば、どのコマンドを選ぶべきかは表を見るだけで判断できます。見慣れない言葉に身構える必要はなく、仕組みと判断基準さえ押さえれば、あとは普段の業務の中で試していくだけです。
この記事と合わせて読みたい
- CLAUDE.mdの書き方とは?非エンジニアが最初に書くべき内容と注意点を解説 — コンテキストを会話の外に逃がす記録ファイルとしてCLAUDE.mdを紹介したため、具体的な書き方を知りたくなる読者に応える
- Claude Codeのフォルダ構成の決め方とは?非エンジニア向けに業務単位での切り方を解説 — 議事録や意思決定ログをどこに置くか迷う読者のために、業務単位でのフォルダ構成の決め方を知りたくなる疑問に応える
- Claude Codeの設定とは?許可の出し方と設定ファイルの置き場所を解説 — CLAUDE.mdなどの設定ファイルをどこに置き、どう許可を出すか気になる読者の疑問に応える
Claude Codeを業務で使いたい方へ
自分の業務を題材に試したい方には、1対1で進めるClaude Code マンツーマン講座があります(オンライン・回数制)。部署やチームで導入する場合は、業務に合わせて内容を設計するClaude Code法人研修をご覧ください。