压缩无法修复从未出现在转录中的上下文:诊断OpenClaw上下文溢出

最近のr/openclawのレポートは重要な区別を浮き彫りにしている:コンテキストと会話履歴は同じものではない。ユーザーのセッションはコンパクションのループに陥った——"Compacting context (0 messages)"——なぜなら、会話が始まる前にモデルのプロンプトがすでに予算を超えていたからだ。システムプロンプトが約34,500文字で、トークン予算が8,000トークンしかない場合、事前推定で約10,700トークンだった。コンパクションは要約する会話メッセージを見つけられず、再試行するたびにまったく同じオーバーフロー状態に戻った。
OpenClawのコンテキストはチャットのターンだけではない。完全なプロンプトには、システムプロンプト、注入されたワークスペースファイル(AGENTS.md、SOUL.md、IDENTITY.md、USER.md)、スキルのメタデータ、ツール定義とスキーマ、ツール呼び出し/結果、添付ファイルが詰め込まれている。コンパクションは古い会話ターンのみを要約する——もし主要なコストが常時ロードされるシステムプロンプトにあるなら、空のトランスクリプトを圧縮しても決して減らない。
組み込みコマンドで診断する
モデルを切り替えたりコンパクション設定を調整したりする前に、実際のコンテキストの内訳を調べよう:
/status
/context list
/context detail
/context map
/context map は、少なくとも1回通常のモデル実行後に実行すると、キャプチャされたレポートを可視化できる。
本当の原因を見つける
内訳がわかったら、主要なカテゴリに対して対策を講じよう:
- 会話履歴が大半を占める → コンパクションまたは古いツール結果の刈り込みが有効。
- 注入されたワークスペースファイルが大半を占める → 重複した指示を削除し、背景参考資料を常時ロードされるファイルから移動する。スキルの完全な指示はオンデマンドでロードされるように設計されている——注入ファイルに保持しないこと。
- ツールスキーマが大半を占める → そのエージェントが本当に必要とするツールを監査する。スキーマはプロンプトテキストとして表示されなくてもコンテキストを消費する。
- ベースシステムプロンプト+出力予約済みバジェットがすでに利用可能なモデル予算を超えている → トランスクリプトを変更するのは間違ったレイヤー。これはモデルウィンドウ、予約バジェット、またはツールサーフェスの問題になる。
修正を元に戻せるようにする
著者は、現在の設定を保持する反復的なアプローチを推奨している:
- 現在の設定を保存する。
- 一度に1つのカテゴリを変更する。
- 新しいセッションを開始し、同じ小さなタスクを繰り返す。
- 変更前後で
/context detail、Gatewayのコンパクションログ、実際のタスク結果を比較する。
トークン数が減っても、エージェントが必要な指示やツールを失ったら成功ではない。検証には次の3つすべてが必要だ:
- プロンプトが利用可能な予算内に収まる
- コンパクションループが再発しない
- 同じ有界タスクが正しく完了する
/context detail を実行しましたか?あなたのOpenClawコンテキストで実際に支配しているのは何ですか:ワークスペースファイル、ツール/スキル、それとも会話履歴?スレッドであなたの調査結果を共有してください。
📖 完全なソースを読む: r/openclaw
👀 See Also

8ヶ月間毎日使って見つけた9つの実用的なClaude活用法(コーディング以外)
Redditユーザーが8ヶ月間毎日Claudeを使い、ライティングやリサーチ(コーディング以外)で培った9つの実践的な教訓を共有。編集、コンテキスト管理、スタイル設定、そしてClaudeを思考パートナーとして活用する方法を紹介。

GitHub Copilot Pro+から直接Anthropic APIへの切り替え:コスト分析
ある開発者がコスト比較を行い、ソロ開発者にとってはGitHub Copilot Pro+よりもAnthropicの直接APIの方が安くなる可能性があり、Sonnet 4.6でOpusの使用事例の80%をカバーできることが示された。

OpenClawをローカルLLMの力で強化:GLM-4.7-Flashの導入
GLM-4.7-FlashとOpenClawの統合は、シームレスなローカルデプロイメントと高度なコード実行を可能にすることで、AIオートメーションに革命をもたらしています。

VSCode/Cursor統合ターミナルでClaude Codeを実行してワークフローを改善
VSCodeやCursorの統合ターミナルでClaude Codeを実行すると、外部ターミナルではなく、ウィンドウを切り替えることなくgit diffパネルやデバッガーにすぐにアクセスでき、設定も不要です。