きっかけ:Codexデスクトップではコンテキスト管理ができてない!
Claude CodeはiTerm2で使い、/statuslineで画面下にコンテキストの使用率を表示しています。
自分はコンテキストの使用率が50%あたりになったら、手動で/compactしています。
一方、Codexはデスクトップアプリで使っています。Claude Codeのように使用率を常に見ながら作業していなかったので、あるとき気づきました。
Codexデスクトップを利用しているときは、コンテキスト管理ができてない!
気になって調べたところ、/compactがあるのはCodex CLIでした。普段使っているCodexデスクトップと、Codex CLIを混ぜて考えていました。
同じCodexでも、使っている画面が違った。
この記事で扱う/compactは、Claude CodeとCodex CLIのコマンドです。Codexデスクトップで同じコマンドを実行できる、という意味ではありません。
そこで、せっかくなので改めて/compactについてまとめることにしました。
存在は知っているけど使っていない人、そもそも/compactを知らなかった人に向けて、何をするコマンドなのか、なぜ自動圧縮に任せず手動で実行するのかを整理します。
そもそも/compactって?
AIとの会話では、次のような情報がコンテキストに入ります。
- これまでの会話
- 読み込んだファイル
- コマンドやツールの実行結果
-
CLAUDE.mdやAGENTS.mdなどの指示 - AI自身が返した回答
コンテキストは、AIがそのセッションで参照できる作業机のようなものです。
会話を続け、ファイルやログをズラズラ並べていくと、机の上が埋まっていきます。上限へ近づくほど、古い情報をそのまま置いておけなくなります。
そこで使うのが/compactです。
/compact
/compactを実行すると、長くなった会話を要約し、続きを進めるために必要な情報を残したままコンテキストを小さくします。
過去を全部捨てる/clearとは違います。
/compact → 必要な情報を要約して、同じ仕事を続ける
/clear → 会話をリセットして、別の仕事を始める
部屋を全部引き払うのではなく、必要な荷物だけ持って次の部屋へ移る感じです。
Claude Codeでは、残したい内容も指定できます。
/compact 採用した方針、変更したファイル、未完了タスクを重点的に残して
Claude Codeには、コンテキストが上限へ近づくと自動圧縮する仕組みがあります。OpenAIのモデルやAPIにも、長い会話を続けるためのコンパクション機能があります。そのため、毎回人間が/compactしないと突然すべて止まる、というわけではありません。
では、なぜ手動でやるのか。
ここが今回いちばん書きたかったところです。
使用率50%を目安に、手動で/compactする理由
自分はClaude Codeのステータスラインを見て、コンテキストの使用率が50%あたりになったら手動で/compactしています。
使用率50%は、公式の推奨値ではありません。自分で決めた運用上の目安です。
Claude Codeの公式ベストプラクティスでは、コンテキストが埋まるほど性能が低下し、以前の指示を忘れたりミスが増えたりする可能性があるため、積極的なコンテキスト管理を勧めています。一方、OpenAIの公式ガイドでは、使用量を監視しつつ、毎ターンではなく大きな節目のあとにコンパクションするのがよいとされています。
早すぎると、それまでの詳しい会話をすぐ要約することになります。遅すぎると、コンテキストがかなり埋まってから慌てて整理することになります。その間を取って、使用率50%前後、または仕事の区切りを自分なりの目安にしています。
自動圧縮を待たずに手動で実行する理由は、まだ自分が会話の流れを把握しているうちに、区切りのよいタイミングで圧縮できることです。
区切りのよい場所で圧縮できる
自動圧縮が発生するタイミングと、仕事の区切りが同じとは限りません。
たとえば調査の途中で自動圧縮されるより、調査が終わって方針が決まったところで手動圧縮したほうが、その後の実装へつなげやすいです。
自分なら、次のようなタイミングで実行します。
- 調査が終わり、これから実装へ入るとき
- 大量のログやファイルを読ませたあと
- 実装が終わり、レビューやテストへ移るとき
- コンテキストの使用率が50%あたりになったとき
/compactは、限界直前の緊急ボタンというより、仕事の区切りで机の上を片付けるコマンドとして使うほうがわかりやすいです。
手動なら、必ず多く残るわけではない
ここは勘違いしやすいところです。
手動の/compactも自動圧縮も、長い会話を要約します。手動で実行すれば、会話の細部が一言一句そのまま保存されるわけではありません。
自動圧縮が雑で、手動圧縮なら完璧という話でもないです。
Claude Codeで手動実行するメリットは、情報の保存量そのものよりも、圧縮するタイミングと、残す情報の優先順位を自分で決められることです。
短い作業なら自動圧縮に任せてもよい。長い作業や、途中の判断が重要な仕事では、コンテキストの使用率50%あたりや工程の区切りで手動圧縮する。
自分はこの使い分けが合っています。
まとめ
Codexデスクトップでコンテキスト使用率が見えていなかったことをきっかけに、/compactについて改めて調べました。今回確認できたのは、Claude CodeとCodex CLIの/compactです。
/compactは、長くなった会話を要約し、必要な文脈を引き継いで同じ仕事を続けるためのコマンドです。
自動圧縮に任せることもできます。それでも手動で実行すれば、仕事の区切りを選び、残してほしい決定事項や未完了タスクを指定できます。
自分はClaude Codeのコンテキスト使用率が50%あたりになったとき、または調査から実装へ移るときに/compactします。
短い作業 → 自動圧縮に任せる
長い作業・重要な判断がある作業 → 区切りを見て /compact
話題が完全に変わる → 新しいセッション
見えていないところで自動的に片付けてもらうだけでなく、大事な作業では自分から机を整理する。
これからは、Codex CLIを使うときも/compactをもう少し意識して使います。Codexデスクトップとは分けて考えます。
参考
- OpenAI公式: Model guidance - Compaction
- OpenAI公式APIリファレンス: Compact conversation
- Claude Code公式: Customize your status line
- Claude Code公式: Best practices for context management
関連記事
- Claude Code新出力スタイル「Concise」で、Claudeが結果ファーストの有能な相棒になった … 長い作業のあと、Claude Codeから結論を先に受け取る設定を試した話です
- 丁寧すぎるClaude Codeを原始人にしたら、トークン使用量が3割減った … 出力の言葉数を減らすと、トークン使用量がどう変わるか検証しました
告知
最後にお知らせとなりますが、イーディーエーでは一緒に働くエンジニアを
募集しております。詳しくは採用情報ページをご確認ください。
みなさまからのご応募をお待ちしております。
