Qwen Code 긴 세션을 계속하는 법: 압축과 컨텍스트 설정
Qwen Code 세션이 컨텍스트 한도에 가까워졌을 때 기록을 바로 지우거나 창 크기를 임의로 늘리면 안 됩니다. 코드와 작업 상태를 먼저 저장하고 요약 기반 압축 또는 빠른 압축을 선택한 뒤 연속성을 검증하고, autoCompactThreshold와 contextWindowSize를 실제로 적용되는 설정 계층에 둡니다.
목차

Qwen Code의 긴 세션이 거의 찼더라도 먼저 /clear를 실행하거나 contextWindowSize를 임의의 큰 값으로 바꾸지 마세요. 더 안전한 순서는 컨텍스트 용량 문제와 계정 할당량 문제를 구분하고, 코드와 작업 상태를 저장하고, 알맞은 압축 방식을 선택하고, 결과를 검증한 다음 자동 압축 임계값과 모델 창 설정을 바로잡는 것입니다.
아래 명령과 설정은 2026년 10월 11일에 확인한 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 또는 아래 설정이 없다면 먼저 공식 설치 안내를 확인하세요. 설치 버전이 모르는 키는 여러 번 수정해도 적용되지 않습니다.
압축 전에 코드 상태와 작업 상태를 모두 저장하세요
압축은 대화 기록을 바꿉니다. 커밋되지 않은 코드를 대신 저장하지 않고, 생성된 요약이 모든 암묵적 제약을 보존한다고 보장할 수도 없습니다.
코드 상태 저장
Git 프로젝트라면 다음을 실행합니다.
!git status --short
!git diff --stat
필요하면 전체 diff를 확인하거나 유지 가능한 체크포인트 커밋을 만드세요. 어떤 파일이 변경됐고, 추적되지 않으며, 어떤 테스트가 남았는지 알아야 합니다.
작업 상태 저장
추가 파일 변경을 막고 명시적인 인계 기록을 요청합니다.
파일을 변경하지 말고 현재 작업 체크포인트를 작성하세요.
- 최종 목표
- 완료한 작업
- 변경 파일과 핵심 변경
- 바꾸면 안 되는 제약
- 실행한 검증과 결과
- 해결하지 못한 문제
- 다음 한 가지 작업과 검증 명령
내용을 검토한 뒤 실행합니다.
/summary
사용자 경로를 지정하지 않으면 문서화된 저장 위치는 다음입니다.
.qwen/PROJECT_SUMMARY.md
/summary는 현재 대화 기록을 교체하지 않는 비파괴 작업입니다. 파일을 다시 넣어 읽기 전용으로 점검할 수 있습니다.
@.qwen/PROJECT_SUMMARY.md 목표, 제약, 변경 파일, 검증 결과, 다음 단계를 점검하고 누락만 알려 주세요. 코드는 수정하지 마세요.
welcome-back 흐름을 사용한다면 기본 경로를 유지하세요. 공식 문서에 따르면 사용자 지정 경로의 요약은 이 흐름이 자동으로 찾지 못합니다.
어떤 명령을 선택해야 하나요
| 명령 | 동작 | 적합한 상황 | 주요 위험 |
|---|---|---|---|
/summary | 기록을 바꾸지 않고 프로젝트 상태를 파일로 저장 | 압축, 작업 중단, 새 세션 전 | 요약을 사람이 검토해야 함 |
/compress | 대화 기록을 요약으로 교체 | 결정, 제약, 의존관계가 많은 작업 | 기존 기록에 파괴적이며 세부사항 누락 가능 |
/compress-fast | AI 없이 오래된 도구 출력과 thinking 내용을 제거 | 로그와 tool output이 크고 목표가 이미 명확함 | 삭제되는 오래된 도구 출력에 나중에 필요한 정보가 있을 수 있으므로 먼저 체크포인트에 기록하고 확인 |
/clear | 대화 기록을 모두 삭제 | 외부 체크포인트에서 의도적으로 다시 시작 | 이전 컨텍스트 소실 |
복잡한 개발 작업에는 /summary → 수동 검토 → /compress 순서를 권합니다. 일반 압축이 끝나지 않거나 공급자 호출이 일시적으로 불가능하거나 오래된 tool output이 창 대부분을 차지하면, 체크포인트를 저장한 뒤 /compress-fast를 사용하세요.
/summarize는 파일 저장 명령이 아닙니다. 현재 문서에서는 /compress의 별칭으로 정의되어 대화 기록을 교체합니다.
검증 가능한 전체 압축 절차
1. 입력 준비
압축 전에 목표, 변경 불가 제약, Git 상태, 완료·미완료 검증, 다음 작업과 성공 조건, 검토한 .qwen/PROJECT_SUMMARY.md가 있는지 확인하세요.
2. 압축 실행
복잡한 작업:
/compress
도구 출력이 많은 세션이며 체크포인트가 충분할 때:
/compress-fast
명령이 끝나고 프롬프트가 돌아올 때까지 기다리세요. 압축 중에는 새 코드 수정 지시를 보내지 않습니다.
3. 출력 보관
두 가지 결과를 독립적으로 보관합니다.
- 작업 상태를 담은
.qwen/PROJECT_SUMMARY.md - 실제 코드 변경을 담은 작업 트리와 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로 옮기고 우선 기본값을 관찰하세요. 압축이 반복적으로 너무 늦게 시작한다는 사실을 확인한 경우에만 낮추고, 기록을 더 오래 유지하려고 무작정 높이지 마세요.
사용자 범위와 프로젝트 범위를 구분하세요
~/.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·테스트와 대조 |
기억할 네 가지 규칙
- 컨텍스트와 할당량은 다릅니다. 압축은 기록을 줄이지만 계정 한도를 늘리지 않습니다.
- 압축 전에 저장하세요. Git은 코드 상태를,
/summary는 작업 상태를 보호합니다. - 복잡한 연속성에는
/compress, tool output 비대화에는/compress-fast. 둘 다 이후 검증이 필요합니다. - 실제 적용 계층에 설정하세요.
context.autoCompactThreshold를 사용하고 provider 모델의contextWindowSize는 해당modelProviders항목에 둡니다.
현재 세션에서 /status, /model, /doctor, /context detail, /summary부터 실행하고 체크포인트를 확인한 뒤 압축 방식을 선택하세요. 요약이 완벽하지 않아도 추적 가능한 코드와 작업 상태에서 복구할 수 있습니다.