Qwen Codeの長いセッションを続ける方法:圧縮とコンテキスト設定

Qwen Codeのセッションがコンテキスト上限に近づいたとき、いきなり履歴を消したりウィンドウ値を大きくしたりしてはいけません。コードとタスク状態を保存し、要約ベースまたは高速圧縮を選び、継続性を確認してから、autoCompactThresholdとcontextWindowSizeを実際に有効な設定階層へ置きます。

目次
Qwen Codeの長いセッションを続ける方法:圧縮とコンテキスト設定

Qwen Codeの長いセッションが埋まりかけても、最初に /clear を実行したり、contextWindowSize を根拠なく大きくしたりしないでください。安全な順序は、コンテキスト容量とアカウントの利用枠を切り分け、コードとタスク状態を保存し、圧縮方法を選び、圧縮後に継続性を確認してから、自動圧縮しきい値とモデルウィンドウを修正することです。

以下は、2026年10月11日に確認したQwen Codeのコマンド文書、設定リファレンス、Model Providersリファレンスに基づきます。インストール済みバージョンによって差があるため、まず手元の状態を確認します。

先に「コンテキスト不足」と「利用枠不足」を分ける

症状可能性が高い原因次にすること
/context の使用率が高い、またはリクエストが長すぎる現在のセッションのコンテキスト容量状態を保存して圧縮する
プロバイダーが残高、契約、クォータ、レート、アカウント制限を示すサービスまたはAPIの利用枠プロバイダーの管理画面を確認する。圧縮では枠は増えない
/context の総ウィンドウが実際の上限と大きく違うQwen Codeが誤ったウィンドウを想定しているcontextWindowSize の値と配置を直す
圧縮後に使用率は下がったが、利用枠エラーは続くコンテキスト以外の問題APIキー、残高、契約、rate limitを確認する

contextWindowSize は、Qwen Codeが計算や圧縮判定に使う想定値です。モデルやAPIサーバーの実際の上限を広げる設定ではなく、契約や残高も回復しません。

バージョンと現在の使用量を確認する

次を順に実行します。

/status
/help
/model
/doctor
/context detail

各コマンドが完了して入力待ちに戻るまで待ちます。バージョンは /status、現在のモデル選択は /model、認証と環境は /doctor、コンテキスト内訳は /context detail で確認してください。

/summary、/compress-fast、または後述の設定が見つからない場合は、先に公式のインストール手順を確認します。現在のビルドが知らないキーを何度編集しても有効にはなりません。

圧縮前に「コード」と「タスク」の両方を保存する

圧縮は会話履歴を変えます。未コミットのコードを自動保存するものではなく、生成された要約が暗黙の制約をすべて保持する保証もありません。

コード状態を保存する

Gitプロジェクトでは次を実行します。

!git status --short
!git diff --stat

必要なら完全なdiffを確認するか、残してよいチェックポイントコミットを作成します。変更済みファイル、未追跡ファイル、未実行のテストを把握してください。

タスク状態を保存する

これ以上ファイルを変更させず、明示的な引き継ぎを作らせます。

ファイルを変更せず、現在のタスクのチェックポイントを作成してください。
- 最終目標
- 完了済みの作業
- 変更したファイルと主要な変更
- 変えてはいけない制約
- 実行済みの検証と結果
- 未解決の問題
- 次に行う一つの操作と検証コマンド

内容を確認してから実行します。

/summary

パスを指定しない場合、文書化された保存先は次です。

.qwen/PROJECT_SUMMARY.md

/summary は非破壊的で、現在の会話履歴を置き換えません。ファイルを再投入して読み取り専用で監査できます。

@.qwen/PROJECT_SUMMARY.md 目標、制約、変更ファイル、検証結果、次の手順を確認し、不足だけを示してください。コードは変更しないでください。

welcome-back機能を使う場合は既定パスを維持します。公式文書では、任意のパスに保存した要約はこの機能に検出されません。

/compress、/compress-fast、/summary、/clear の選び方

コマンド動作向いている状況主なリスク
/summary履歴を置き換えず、プロジェクト状態をファイルへ保存本格的な圧縮、作業中断、新規セッションの前要約の人手確認が必要
/compress会話履歴を要約に置き換える判断・制約・依存関係が多いタスク旧履歴に対して破壊的で、詳細が抜ける可能性がある
/compress-fastAIを使わず、古いツール出力やthinking内容を削るログやツール出力が大きく、目標は既に明文化済み削除される古いツール出力に後で必要な情報が含まれる場合があるため、先にチェックポイントへ記録して確認する
/clear会話履歴を消去する外部チェックポイントから意図的にやり直す以前のコンテキストが失われる

複雑な開発では、/summary → 人手確認 → /compress が基本です。通常の圧縮が完了しない、プロバイダー呼び出しが一時的に使えない、古いtool outputが大半を占める場合は、チェックポイントを保存したうえで /compress-fast を検討します。

/summarize はファイル保存用ではありません。現在の文書では /compress の別名で、履歴を置き換えます。

検証できる圧縮手順

1. 入力を準備する

圧縮前に、目標、変更不可の制約、Git状態、完了済み・未完了の検証、次の操作と成功条件、確認済みの .qwen/PROJECT_SUMMARY.md が揃っていることを確認します。

2. 圧縮を実行する

複雑なタスクでは:

/compress

ツール出力が中心でチェックポイントが十分なら:

/compress-fast

処理が終わって入力待ちに戻るまで待ちます。圧縮中に新しいコード変更指示を送らないでください。

3. 出力を保存する

残すべき出力は二つです。

  1. タスク状態を保存する .qwen/PROJECT_SUMMARY.md
  2. 実際のコード変更を保存する作業ツリーとGit diff

圧縮済みの会話だけを事実の根拠にしないでください。ファイル、テスト結果、diffが実際の変更を示します。

4. 成功を確認する

再度実行します。

/context

使用量が明確に下がっていることを確認します。続いて、ファイルを変更させずに継続性を確認します。

まだファイルを変更しないでください。次に答えてください。
1. 現在の唯一の目標は何ですか。
2. 変えてはいけない制約は何ですか。
3. どのファイルを変更しましたか。
4. どの検証が成功し、何が未実行ですか。
5. 次の一つの操作と成功の合図は何ですか。

回答を PROJECT_SUMMARY.md、git status、実際のテスト記録と比較します。三つが一致したら、小さな次の一手だけを実行し、最も関連する検証を行います。

5. 失敗してもタスクを失わない

  • チェックポイント保存後に /compress が失敗したら /compress-fast を試し、それも失敗したら新しいセッションで @.qwen/PROJECT_SUMMARY.md を読み込みます。
  • 圧縮後に制約が抜けたら、要約を再投入して不足を修正し、再度チェックポイントを復唱させてから編集を許可します。
  • 使用量が下がっても呼び出しが失敗する場合は、残高、契約、rate limit、認証に関するエラーかを確認します。
  • サーバーがまだコンテキスト超過を返す場合は、contextWindowSize が実効上限より大きい可能性があります。

自動圧縮しきい値を修正する:旧キーは無効

現在のキーは次です。

{
  "context": {
    "autoCompactThreshold": 0.85
  }
}

値は 0 より大きく 1 以下で、既定値は 0.85 です。これは上限であり、すべてのモデルが正確に85%で圧縮されるという意味ではありません。小さいウィンドウでは、要約用の余白を残すため早く実行される場合があります。

置き換えられ、警告なしで無視される完全な旧パスは model.chatCompression.contextPercentageThreshold です。

{
  "model": {
    "chatCompression": {
      "contextPercentageThreshold": 0.7
    }
  }
}

移行時は context.autoCompactThreshold に移し、まず既定の 0.85 を観察します。圧縮が繰り返し遅すぎることを確認した場合だけ下げ、単に履歴を長く残す目的で上げないでください。

ユーザー設定とプロジェクト設定を使い分ける

  • ~/.qwen/settings.json:現在のユーザーの全プロジェクト
  • プロジェクト直下の .qwen/settings.json:そのプロジェクトだけ。ユーザー設定より優先

文書化された優先順位は、既定値、システム既定、ユーザー、プロジェクト、システム設定、環境変数、コマンドライン引数です。ユーザーファイルを変えても反映されない場合は、上位レイヤーを調べます。

/config は単純な値を変更できます。

/config context.autoCompactThreshold=0.85

ただし、書き込み先は ~/.qwen/settings.json です。リポジトリ固有の値は .qwen/settings.json を直接編集します。

必要ならJSON構文を検証します。

!python3 -m json.tool ~/.qwen/settings.json >/dev/null
!python3 -m json.tool .qwen/settings.json >/dev/null

contextWindowSize を実際に使われる階層へ置く

設定するのは、選択したモデルに対するプロバイダーの実効上限です。宣伝上の最大値や希望値ではありません。大きすぎる値は圧縮を遅らせ、小さすぎる値は警告と圧縮を早めます。

modelProviders から選ぶモデル

この場合は、対応するproviderエントリーの中に置きます。128000 は構造例です。

{
  "modelProviders": {
    "openai": [
      {
        "id": "your-model-id",
        "name": "Your model",
        "baseUrl": "https://provider.example/v1",
        "envKey": "OPENAI_API_KEY",
        "generationConfig": {
          "contextWindowSize": 128000
        }
      }
    ]
  },
  "security": { "auth": { "selectedType": "openai" } },
  "model": { "name": "your-model-id" }
}

providerモデルの設定は閉じており、上位の model.generationConfig は不足フィールドを補いません。同じ配置規則は任意のOpenAI互換カスタムEndpointにも当てはまります。たとえばAPIサービス候補としてBetterTokenを使う場合も、クライアント、リソース、選択モデルの対応を確認してから設定します。

modelProviders を使わないruntimeモデル

その場合だけ上位設定を使います。

{
  "model": {
    "generationConfig": {
      "contextWindowSize": 128000
    }
  }
}

二つの場所に異なる値を書いて推測しないでください。現在のモデルは /model、認証方式は /doctor で確認し、モデルの選択元に合う一か所だけを使います。

よくある症状の確認順

症状原因修正と確認
/compress-fast が不明バージョンが古い/status、更新、/help で確認
旧しきい値が効かない旧キーが無視されるcontext.autoCompactThreshold へ移行
ユーザー設定が効かないプロジェクトまたはシステムが上書き.qwen/settings.json、ポリシー、起動引数を確認
0.85より前に圧縮される要約用の余白が必要/context で実際の窓と使用量を確認
/context の窓が大きすぎる値または階層が誤りactive providerの generationConfig に実効上限を設定
サーバーがoverflowを返す設定値が実上限を超える実効値まで下げて再確認
圧縮後もクォータエラー残高、契約、rate limitプロバイダー管理画面を確認
次の手順を説明できないチェックポイント不足PROJECT_SUMMARY.md を注入し、Gitとテストを照合

最後に覚える四つのルール

  1. コンテキストと利用枠は別問題です。 圧縮は履歴を減らしますが、アカウント枠は増やしません。
  2. 圧縮前に保存します。 Gitがコード状態を、/summary がタスク状態を守ります。
  3. 複雑な継続には /compress、tool outputの肥大化には /compress-fast。 どちらも後で検証します。
  4. 有効な階層に設定します。 context.autoCompactThreshold を使い、providerモデルの contextWindowSize は対応する modelProviders 内に置きます。

まず現在のセッションで /status、/model、/doctor、/context detail、/summary を実行し、チェックポイントを確認してから圧縮を選んでください。要約が不完全でも、追跡可能なコード状態とタスク状態から復旧できます。

LLM ワークフローを最適化しませんか?

単一 API でモデルを接続し、キーと AI コストを管理できます。

無料で始める