Длинная сессия Qwen Code: сжатие, автокомпактация и окно контекста

Когда сессия Qwen Code приближается к пределу контекста, не стоит сразу очищать историю или завышать размер окна. Сначала сохраните код и состояние задачи, выберите обычное или быстрое сжатие, проверьте продолжение работы, а затем разместите autoCompactThreshold и contextWindowSize на уровне конфигурации, который действительно применяется.

Содержание
Длинная сессия Qwen Code: сжатие, автокомпактация и окно контекста

Если длинная сессия Qwen Code почти заполнила контекст, не начинайте с /clear и не увеличивайте contextWindowSize наугад. Надёжный порядок другой: сначала выяснить, упёрлись ли вы в контекст или в квоту аккаунта, затем сохранить код и состояние задачи, выбрать способ сжатия, проверить результат и только после этого исправлять порог автокомпактации и размер окна модели.

Команды и параметры ниже сверены 11 октября 2026 года с документацией команд Qwen Code, справочником настроек и описанием Model Providers. Возможности зависят от установленной версии, поэтому сначала проверьте свой клиент.

Сначала отделите переполненный контекст от исчерпанной квоты

Обе ситуации прерывают работу, но лечатся по-разному.

ПризнакВероятная причинаЧто делать
/context показывает высокую загрузку, либо запрос не помещается в контекстЗаполнено окно текущей сессииСохранить состояние и выполнить сжатие
Провайдер сообщает о балансе, тарифе, квоте, частоте запросов или ограничении аккаунтаКвота сервиса или APIПроверить кабинет провайдера; сжатие квоту не увеличит
Общий размер окна в /context явно не совпадает с реальным лимитом сервисаQwen Code использует неверное предположение об окнеИсправить значение и уровень contextWindowSize
После сжатия контекст уменьшился, но ошибка квоты осталасьПроблема не в контекстеПроверить ключ, баланс, тариф и rate limit

contextWindowSize влияет на расчёты Qwen Code и момент запуска сжатия. Он не расширяет реальный лимит модели или API и не восстанавливает лимиты подписки.

Проверьте версию и текущую загрузку

До любых изменений выполните:

/status
/help
/model
/doctor
/context detail

Дождитесь завершения каждой команды. Версию проверьте через /status, текущий выбор модели — через /model, авторизацию и окружение — через /doctor, а разбивку контекста — через /context detail.

Если в вашей версии нет /summary, /compress-fast или нужного ключа, сначала сверьтесь с официальной инструкцией установки Qwen Code. Настройка, которой ещё нет в установленном клиенте, не заработает от повторного редактирования JSON.

Перед сжатием сохраните код и смысл задачи

Сжатие меняет историю диалога. Оно не сохраняет за вас незакоммиченный код и не гарантирует, что в итоговый конспект попадёт каждое неявное ограничение.

Зафиксируйте состояние кода

Для 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-fastБез AI удаляются старые tool output и thinking-фрагментыСессию раздули логи и результаты инструментов, а цель уже записанаВ удаляемых старых tool output могут быть сведения, нужные позже; сначала внесите их в checkpoint и проверьте
/clearИстория полностью очищаетсяВы сознательно начинаете заново из внешнего чекпойнтаСтарый контекст исчезает

Для сложной разработки используйте последовательность: /summary → ручная проверка → /compress. /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. Снижайте порог только если сжатие систематически запускается слишком поздно. Не повышайте его лишь ради более долгой истории.

Выберите правильный scope настройки

Два основных файла:

  • ~/.qwen/settings.json — для всех проектов текущего пользователя;
  • .qwen/settings.json в корне репозитория — только для этого проекта, с приоритетом над пользовательским файлом.

Общую модель и одинаковую политику храните на пользовательском уровне. Особый лимит конкретного репозитория или более раннюю автокомпактацию — на уровне проекта.

Документированный порядок приоритета: значения по умолчанию, системные defaults, пользовательский файл, проектный файл, системные overrides, переменные окружения и аргументы командной строки. Если пользовательский файл «не работает», ищите более высокий слой.

Команда /config меняет простые значения, например:

/config context.autoCompactThreshold=0.85

Но она записывает изменения в ~/.qwen/settings.json. Для проектного значения редактируйте .qwen/settings.json напрямую.

Проверить синтаксис можно так:

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

Вторая команда нужна только при наличии проектного файла.

Разместите contextWindowSize на реально используемом уровне

Указывайте фактический лимит выбранной модели у конкретного провайдера, а не рекламный максимум и не желаемое число. Завышенное значение задерживает сжатие; заниженное вызывает преждевременные предупреждения.

Модель выбрана из modelProviders

Тогда значение должно находиться в соответствующей записи провайдера. 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-compatible endpoint — например, для BetterToken как одного из возможных API-сервисов — после проверки поддержки клиента, ресурса и выбранной модели.

Модель не выбрана из modelProviders

Только для runtime-модели без provider-записи используйте верхний уровень:

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

Не записывайте разные значения в оба места. Проверьте текущую модель через /model, авторизацию — через /doctor, определите источник модели и оставьте один правильный вариант.

Типичные сбои и порядок проверки

СимптомПричинаИсправление и проверка
/compress-fast неизвестнаСтарая версия/status, обновление по официальной инструкции, затем /help
Старый порог ничего не меняетУстаревший ключ игнорируетсяПеренести в context.autoCompactThreshold
Пользовательская настройка не действуетЕё перекрывает проектный или системный слойПроверить .qwen/settings.json, системную политику и параметры запуска
При 0.85 сжатие начинается раньшеМалому окну нужен резерв под резюмеПроверить реальное окно и нагрузку через /context
/context показывает слишком большое окноНеверный contextWindowSize или уровеньЗаписать эффективный лимит в generationConfig выбранного provider
Сервер всё равно отклоняет длинный запросНастройка выше реального серверного лимитаУменьшить до эффективного значения и повторить проверку
После сжатия остаётся ошибка квотыБаланс, тариф или rate limitПроверить кабинет провайдера, не менять контекст
Модель не помнит следующий шагЧекпойнт неполон или резюме потеряло деталиПодключить PROJECT_SUMMARY.md, сверить Git и тесты

Четыре правила для длинных сессий

  1. Не путайте контекст с квотой. Сжатие уменьшает историю, но не добавляет лимит аккаунта.
  2. Сохраняйте до сжатия. Git фиксирует код, /summary — состояние задачи.
  3. Для сложной преемственности выбирайте /compress, для раздутых tool output — /compress-fast. После обоих вариантов нужна проверка.
  4. Настройки должны лежать на действующем уровне. Используйте context.autoCompactThreshold, а окно provider-модели задавайте внутри её записи modelProviders.

Начните с /status, /model, /doctor, /context detail и /summary, проверьте файл состояния и лишь затем запускайте сжатие. Даже если резюме окажется несовершенным, у вас останутся проверяемые код и план продолжения.

Готовы оптимизировать LLM workflow?

Подключите единый API, управляйте ключами и контролируйте расходы на AI-модели в BetterToken.

Начать бесплатно