Claude Code:セッション管理と100万コンテキスト
Anthropic社のClaude Codeは100万トークンの大規模コンテキストウィンドウを実装し、セッション管理のための/usageコマンド更新、コンテキスト圧縮、リワインド、サブエージェントなどの機能を提供することで、長い対話におけるモデルパフォーマンスの低下(コンテキスト減衰)を効果的に管理する実用的なガイドラインを提供している。
キーポイント
100万トークンの大規模コンテキストウィンドウ
Claude Codeが100万トークンのコンテキストウィンドウを実装し、より長く複雑なタスク(例:フルスタックアプリ構築)の実行を可能にしたが、同時にコンテキスト減衰(Context Rot)の管理が重要課題となった。
セッション管理戦略の多様化
継続(Continue)、リワインド(Rewind)、クリア(Clear)、圧縮(Compact)、サブエージェント(Subagents)の5つの選択肢を提供し、タスクの性質に応じた最適なコンテキスト管理を可能にしている。
リワインド機能の実用的価値
エスケープキー二度押しまたは/rewindコマンドで過去のメッセージに戻り、AIの誤りを効率的に修正する方法として推奨されており、「ここから要約(summarize from here)」機能と組み合わせることで学習成果の引き継ぎが可能。
コンテキスト圧縮の適切な活用
/compactコマンドで対話履歴を要約してコンテキストを整理する「有損」圧縮プロセスを説明し、悪い圧縮の例(例:重要なファイル参照の喪失)と指示による圧縮方向の制御方法を提示している。
/usageコマンドによる使用状況可視化
ユーザーのセッション管理習慣の多様性を背景に、使用状況を明確に把握するための/usageコマンドの更新が実施され、より効果的なコンテキスト管理を支援する。
影響分析・編集コメントを表示
影響分析
この記事は、大規模言語モデルの実用段階において、コンテキスト管理がユーザー体験とコスト効率に直接影響する重要な運用スキルであることを示している。100万トークンという技術的進歩を最大限活用するための具体的なプラクティスを提供することで、AIツールの実務応用における成熟度を高める教育的価値を持つ。
編集コメント
製品使用ガイドであり公式プロモーション色が強いが、100万トークン時代の実践的なセッション管理ノウハウとして開発者にとって高い実用性を持つ。コンテキスト減衰という根本課題への具体的対処法を体系化している点が価値。
著者: Thariq
本日、/usage コマンドに新たなアップデートを導入しました。これは、Claude Codeにおけるご自身の利用状況をより明確に把握していただくためのものです。この決定の背景には、最近ユーザーの皆様と行った数多くの深い対話があります。
これらの対話の中で、私たちは繰り返しある現象を耳にしました:セッション管理の習慣は実に多様だということです。特に最近、Claude Codeのコンテキストウィンドウ(Context Window)が100万トークンにアップグレードされたことで、この違いはさらに顕著になりました。
ターミナルで開いているセッションを1つか2つだけに保つのが習慣ですか?それとも、プロンプトを入力するたびに新しいセッションを開きますか?普段、いつ圧縮(Compact)、巻き戻し(Rewind)、またはサブエージェント(Subagents)を使用しますか?また、圧縮がうまくいかない原因は何でしょうか?
ここには実は重要なポイントがあります。これらの一見些細な詳細が、Claude Codeの使用体験に大きく影響しているのです。そして、このすべての核心は、一つのことに集約されます:コンテキストウィンドウをどのように管理するかということです。
クイック解説:コンテキスト、コンテキスト圧縮、コンテキスト劣化

「コンテキストウィンドウ(Context Window)」とは、モデルが次の回答を生成する際に、同時に「見る」ことができるすべての情報のことです。これには、システムプロンプト(System Prompt)、これまでのチャット履歴、すべてのツール呼び出し(Tool Call)とその出力結果、さらには読み込んだすべてのファイルが含まれます。現在、Claude Codeは100万トークン(Token)(注:トークンは大規模言語モデルがテキストを処理する基本単位で、通常、英単語1語が約1トークン、漢字1文字が1〜2トークンを占めます)という超大容量のコンテキストウィンドウを備えています。
しかし残念ながら、コンテキストを使用するには少し代償が伴います。私たちは通常、これをコンテキスト劣化(Context Rot)(注:会話履歴が長くなるにつれて、モデルが処理する情報量が大きくなり、注意が散漫になり、初期の重要な情報を忘れたり、無関係な内容に干渉されたりする現象)と呼びます。コンテキストが長くなるにつれて、モデルのパフォーマンスは低下する傾向があります。これは、モデルの注意がより多くのトークンに分散されるためです。初期に残された、すでに関係のない内容が、モデルが現在実行しているタスクを妨げ始めるのです。
コンテキストウィンドウには厳格な容量上限があります。そのため、ウィンドウがいっぱいになりそうなときは、現在取り組んでいるタスクを短い説明にまとめ、その説明を持って新しいコンテキストウィンドウで作業を続ける必要があります。私たちはこのプロセスをコンテキスト圧縮(Compaction)(注:メモリ空間を空けるために、超長い履歴を要約して凝縮するプロセス)と呼びます。もちろん、この圧縮プロセスはいつでも手動で開始することもできます。

想像してみてください。あなたはClaudeに何かをさせ、それが完了しました。今、あなたのコンテキストにはいくつかの情報(例えばツール呼び出し、ツールの出力結果、あなたが与えた指示)が詰め込まれています。次に何をすべきでしょうか?あなたは、自分にこれほど多くの選択肢があることに驚くかもしれません:
継続(Continue) — 同じセッション内で、直接次のメッセージを送信する
巻き戻し(/rewind または Escキーを2回連打) — 時間を巻き戻し、以前のメッセージに戻り、そこから再試行する
クリア(/clear) — 通常、直前の会話から抽出した短い要約を持って、全く新しいセッションを開始する
圧縮(Compact) — 現在の会話を要約し、その要約に基づいて作業を続ける
サブエージェント(Subagents) — 次の段階の作業を、自身のクリーンなコンテキストを持つ別のAIエージェント(AI Agent)に委任し、最終的な作業結果のみを取得する
直接「継続」するのが最も自然な反応ですが、他の4つのオプションは、コンテキストをよりよく管理するために設けられています。

いったいいつ長い古いセッションを維持し、いつ新しく始めるべきでしょうか?私たちの経験則は:新しいタスクを始めるときは、新しいセッションも始めるべきだということです。
100万トークンのコンテキストウィンドウは、より長く、より複雑なタスクを非常に確実に完了できることを意味します。例えば、Claudeにゼロからフルスタックアプリケーションを構築させることなどです。
しかし時には、前後に関連するタスクを行っているかもしれません。この場合、以前のコンテキストの一部を保持する必要がありますが、全部ではありません。例を挙げると、あなたは新しい機能を書き終えたばかりで、それを使用するためのドキュメントを作成しようとしています。もちろん新しいセッションを開くこともできますが、それはClaudeがあなたが書いたすべてのコードファイルを再び読み込まなければならないことを意味します。これは速度が遅く、コストも高くなります。

もし私が「優れたコンテキスト管理能力」を代表する良い習慣を一つ選ばなければならないなら、それは間違いなく「巻き戻し(Rewind)」をうまく使うことです。
Claude Codeでは、Escキーをダブルクリックすることで巻き戻しが可能です。
AIの誤りを修正する際、「巻き戻し」はより賢明な方法であることが多いです。例を挙げます:Claudeが5つのファイルを読み、ある方法を試みましたが、失敗しました。あなたの本能的な反応は、チャットボックスに「この方法はうまくいかない、X方法を試してみて」と打ち込むことかもしれません。しかし、より賢い方法は、Claudeがちょうどその5つのファイルを読み終えた時点に巻き戻し、あなたが学んだ教訓を持って「A方法を使わないでください。fooモジュールはそれをサポートしていません。直接B方法を試してください」と指示し直すことです。
あなたは「ここから要約(summarize from here)」機能を使用して、Claude自身に学んだ教訓を「引き継ぎメッセージ」としてまとめさせることもできます。これは、ちょうど失敗を経験した「未来のClaude」が、まだ行動を始めていない過去の自分自身にメモを残したような感覚です。

セッションがどんどん長くなるにつれて、それを「軽くする」ための2つの方法があります:/compact を使用するか、/clear を使用するかです。
圧縮(Compact)は、モデルにこれまでの会話を要約させ、その要約で冗長な履歴を置き換えることです。このプロセスは「損失あり」で、あなたは「何が重要か」を決定する権限をClaudeに委ねていることを意味します。利点は、あなたが何も書く必要がなく、Claudeが重要な教訓やファイル記録を保持する際に、あなたが考えるよりも適切に行う可能性があることです。また、指示を与えることで圧縮の方向性をコントロールすることもできます(例:/compact 認証モジュールのリファクタリングに焦点を当て、テストデバッグに関する内容は捨てる)。


もしあなたが頻繁に超長いセッションを開いたままにしているなら、おそらく「圧縮」の効果が極めて悪い状況に遭遇したことがあるでしょう。私たちは、このような「失敗」が通常、特定の瞬間に起こることを発見しました:それは、大規模言語モデル(LLM)があなたの次の作業の方向性を予測できないときです。
例を挙げると、長いコードデバッグの後、システムが自動圧縮を開始し、以前の調査プロセスをまとめました。その直後、あなたが「さて、前にbar.tsで見た別の警告も修正しよう」と発言したとします。
しかし、直前のセッションの焦点が前のバグのデバッグに完全に当てられていたため、まだ修正されていない警告は、おそらくすでに無関係な情報として扱われ、要約時に直接捨てられてしまったのです。
これは非常に厄介な問題です。なぜなら、コンテキスト劣化の制限により、モデルが圧縮を行う瞬間は、しばしばその「知能」が最も低下しているときだからです。幸いなことに、100万トークンのコンテキスト容量があれば、あなたは今、より豊富なスペースを持ち、「次に何をしたいか」の説明を積極的に添えて、事前に /compact を実行することができます。

サブエージェントもまた、コンテキストを管理する優れた手段です。あなたが事前に、ある作業が大量の「使い捨て」(後で二度と使わない)中間結果を生み出すと予測するとき、この方法は特に有効です。
Claudeがエージェントツール(Agent tool)を通じてサブエージェントを派生させるとき、この小さな存在は完全に新しいコンテキストウィンドウを獲得します。それはその中で自由に作業し、いくらでも作業を行うことができます。作業が完了すると、結果を抽出し、最終的なレポートのみを「親」Claudeに返します。
私たちがサブエージェントを使用すべきかどうかを判断する「核心的な問い」は:今後、これらのツール実行の詳細な出力を見る必要があるか、それとも最終的な結論だけが欲しいか?です。
Claude Codeは背後で自動的にサブエージェントを呼び出すことがありますが、時にはあなたが非常に明確に指示することもできます。例えば、次のように言うことができます:
「サブエージェントを派遣して、以下の仕様ファイルに基づいて、私たちが行った作業が正しいかどうかを検証させてください」
「サブエージェントを派遣して、別のコードベースを読み通し、それがどのように認証フローを実装しているかをまとめさせ、それからあなた自身がそれを参考に、こちらでも実装してください」
「サブエージェントを派遣して、私のGit変更履歴に基づいて、この新機能の説明ドキュメントを作成させてください」
要するに、Claudeが一連の回答を完了し、あなたが新しいメッセージを送信しようとしているとき、あなたは決断の岐路に立っています。
私たちは将来、Claudeが十分に賢くなり、これらすべてをあなたに代わって管理してくれることを期待しています。しかし現時点では、これらの決断を習得することこそが、Claudeを導いて高品質の結果を生み出すための必須の道なのです。

原文を表示
作者:Thariq 原文:Using Claude Code: Session Management & 1M Context
【注:Thariq 是 Anthropic 员工,Claude Code 的核心对外布道者。这篇本质是产品使用指南,有官方推广成分,但操作建议确实实用。】
今天,我们为 /usage 命令推出了一项全新更新,旨在帮助你更清晰地了解自己在 Claude Code 中的使用情况。这个决定的背后,是我们近期与用户进行的多次深入交流。
在这些交流中,我们反复听到了一个现象:大家在管理会话时的习惯可谓是五花八门。尤其是最近 Claude Code 将上下文窗口(Context Window)升级到了 100 万大关,这种差异就更明显了。
你是习惯在终端里只保持一两个开着的会话?还是每次输入提示词都重新开个新会话?你通常在什么时候会用到压缩(Compact)、回溯(Rewind)或者子智能体(Subagents)?又是什么原因导致了一次糟糕的压缩呢?
这里头其实大有学问。这些看似不起眼的细节,极大地影响着你使用 Claude Code 的体验。而这一切的核心,都归结于一件事:如何管理你的上下文窗口。
快速科普:上下文、上下文压缩与上下文衰减

所谓“上下文窗口(Context Window)”,就好比模型在生成下一次回答时,眼前能同时“看到”的所有信息。它包括了你的系统提示词(System Prompt)、到目前为止的聊天记录、每一次的工具调用(Tool Call)及其输出结果,甚至还有它读过的每一个文件。现在,Claude Code 拥有高达 100 万个词元(Token)(注释:Token 是大模型处理文本的基本单位,通常一个英文单词约为 1 个 Token,一个汉字可能占 1-2 个 Token) 的超大上下文窗口。
但遗憾的是,使用上下文是需要付出一点代价的,我们通常称之为上下文衰减(Context Rot)(注释:指随着对话历史越来越长,模型需要处理的信息量过大,导致其注意力分散,遗忘早期重要信息或被无关内容干扰的现象)。随着上下文越来越长,模型的表现往往会变差,这是因为它的注意力被分散到了更多的 Token 上。那些早期遗留的、已经无关紧要的内容,会开始干扰模型当前正在执行的任务。
上下文窗口是有硬性容量上限的。所以,当你快要把窗口撑满时,你必须把你正在做的任务总结成一段简短的描述,然后带着这段描述在一个新的上下文窗口里继续工作。我们把这个过程称为上下文压缩(Compaction)(注释:为了腾出内存空间,将超长历史记录提炼成精简摘要的过程)。当然,你也可以随时手动触发这个压缩过程。

想象一下,你刚刚让 Claude 帮你做了一件事,并且它已经完成了。现在,你的上下文里已经塞进了一些信息(比如工具调用、工具的输出结果、你给的指令)。接下来该怎么做?你可能会惊讶地发现,自己竟然有这么多种选择:
继续(Continue) — 在同一个会话里,直接发送下一条消息
回溯(/rewind 或连按两次 Esc 键) — 时光倒流,退回到之前的一条消息,从那里重新开始尝试
清空(/clear) — 开启一个全新的会话,通常带上你从刚才对话中提炼出的简短总结
压缩(Compact) — 把目前的对话做个总结,然后在这个总结的基础上继续干活
子智能体(Subagents) — 把下一阶段的工作委派给另一个拥有自己干净上下文的 AI 智能体(AI Agent),并且只把它最终的工作结果拉取回来
虽然直接“继续”是最顺理成章的反应,但其他四个选项的设定,正是为了帮你更好地管理你的上下文。

到底什么时候该维持一个漫长的老会话,什么时候又该另起炉灶呢?我们的经验法则是:当你开始一项新任务时,你也应该开启一个新会话。
100 万的上下文窗口,意味着你现在可以非常靠谱地完成更长、更复杂的任务。比如,让 Claude 从零开始为你搭建一个全栈应用。
但有时候,你可能在做一些前后关联的任务。这时候,你需要保留一部分之前的上下文,但不是全部。举个例子,你刚写完一个新功能,现在要为它写一份使用文档。你当然可以开个新会话,但这意味着 Claude 必须把你刚才写过的所有代码文件重新读一遍——这不仅速度更慢,而且花费也更高。

如果非要我挑出一个能代表“优秀上下文管理能力”的好习惯,那一定是用好“回溯(Rewind)”。
在 Claude Code 里,双击 Esc
在纠正 AI 的错误时,“回溯”往往是更高明的做法。举个例子:Claude 读了五个文件,尝试了一种方法,结果失败了。你的本能反应可能是在对话框里敲下:“这招不管用,换 X 方法试试。”但更聪明的做法是,回溯到它刚读完那五个文件的时刻,然后带着你刚学到的教训重新对它说:“别用 A 方法了,foo 模块根本不支持那个——直接去试 B 方法。”
你甚至可以使用“从这里开始总结(summarize from here)”的功能,让 Claude 自己把它学到的教训总结成一段“交接信息”。这感觉就像是那个刚刚踩了坑的“未来版 Claude”,给过去那个还没开始行动的自己留下了一张字条。

当一个会话变得越来越长时,你有两种方法可以给它“减负”:使用 /compact
压缩(Compact) 是让模型把到目前为止的对话总结一下,然后用这份摘要替换掉冗长的历史记录。这个过程是“有损”的,意味着你把决定“什么内容重要”的权力交给了 Claude。好处是你什么都不用写,而且 Claude 在保留重要的经验教训或文件记录时,可能比你想得更周到。你也可以通过给它下达指令来掌控压缩的方向(比如:/compact 将重点放在身份验证模块的重构上,丢掉那些关于测试调试的内容


如果你经常挂着超长的会话,你大概率遇到过“压缩”效果极其糟糕的情况。我们发现,这种“翻车”通常发生在一个特定的时刻:那就是大语言模型(LLM)无法预测你下一步工作方向的时候。
举个例子,在一段漫长的代码调试之后,系统触发了自动压缩,把之前的排查过程总结了一番。结果你紧接着发了一句:“现在,把我们之前在 bar.ts 里看到的另一个警告也修了吧。”
可是,由于刚才的会话重点全在调试前一个 Bug 上,那个没来得及修的警告很可能早就被当成无关紧要的信息,在总结时被直接丢弃了。
这是一个相当棘手的问题。因为受限于上下文衰减,模型在进行压缩的那一刻,往往是它“智商”最不在线的时候。好在有了 100 万的上下文容量,你现在有了更充裕的空间,可以主动带上“我接下来想做什么”的描述,去提前执行 /compact

子智能体也是一种管理上下文的绝佳手段。当你提前预知某一项工作会产生大量“阅后即焚”(以后再也用不上)的中间结果时,这招特别管用。
当 Claude 通过智能体工具(Agent tool)衍生出一个子智能体时,这个小家伙会获得一个完全崭新的上下文窗口。它可以在里面肆意折腾,做多少工作都行。等到大功告成,它会把结果提炼出来,只把最终的报告交还给“父级”Claude。
我们判断是否该用子智能体的“灵魂拷问”是:以后我还需要看这些工具运行的详细输出吗,还是我只想要一个最终结论?
虽然 Claude Code 会在背后自动调用子智能体,但有时候你也可以非常明确地指挥它。比如,你可以对它说:
“派个子智能体去,根据下面这份规范文件,验证一下我们刚才做的工作对不对”
“派个子智能体去通读一下另一个代码库,总结出它是怎么实现身份验证流程的,然后你自己照猫画虎,在这边也实现一遍”
“派个子智能体去,根据我的 Git 修改记录,给这个新功能写份说明文档”
总而言之,当 Claude 完成了一轮回答,而你正准备发送一条新消息时,你就站在了一个决策的路口。
我们期望在未来,Claude 能足够聪明,自己帮你打理好这一切。但就目前而言,熟练掌握这些决策,正是你引导 Claude 产出高质量结果的必经之路。

関連記事
2026年3月6日 Frontier Red TeamによるClaudeのCVE-2026-2796エクスプロイトのリバースエンジニアリング
Frontier Red Teamが、Claudeの脆弱性CVE-2026-2796を悪用するエクスプロイトをリバースエンジニアリングした。
フロンティア・レッドチーム、Firefoxのセキュリティ向上のためにMozillaと提携
フロンティア・レッドチームは、Firefoxのセキュリティを向上させるため、Mozillaと提携した。
59%のユーザーがより安価なモデルを選択:Sonnet 4.6の詳細解説
Anthropic社がClaude Sonnet 4.6をリリースし、Claude Codeテストで70%のユーザーが前世代モデルより好み、59%がフラッグシップモデルOpus 4.5よりも選択した。コーディング、コンピュータ利用、100万トークンコンテキストなど6次元で全面アップグレードされ、価格は据え置き。