컨텍스트 윈도우 & 압축
모든 모델에는 컨텍스트 윈도우(모델이 볼 수 있는 최대 토큰 수)가 있습니다. 장기 실행 채팅은 메시지와 도구 결과가 누적되며, 윈도우가 빠듯해지면 OpenClaw가 이전 히스토리를 압축하여 한계 내에서 유지합니다.
압축이란
압축은 이전 대화를 요약하여 간결한 요약 항목으로 만들고 최근 메시지는 그대로 유지합니다. 요약은 세션 히스토리에 저장되므로 이후 요청은 다음을 사용합니다:
- 압축 요약
- 압축 시점 이후의 최근 메시지
압축은 세션의 JSONL 히스토리에 영속화됩니다.
설정
openclaw.json의 agents.defaults.compaction 설정으로 압축 동작(모드, 목표 토큰 수 등)을 구성합니다.
압축 요약은 기본적으로 불투명 식별자를 보존합니다 (identifierPolicy: "strict"). identifierPolicy: "off"로 오버라이드하거나 identifierPolicy: "custom"과 identifierInstructions로 사용자 정의 텍스트를 제공할 수 있습니다.
선택적으로 agents.defaults.compaction.model을 통해 압축 요약에 다른 모델을 지정할 수 있습니다. 기본 모델이 로컬이거나 소형 모델일 때 더 강력한 모델로 압축 요약을 생성하고 싶은 경우 유용합니다. provider/model-id 문자열을 지정하면 됩니다:
{
"agents": {
"defaults": {
"compaction": {
"model": "openrouter/anthropic/claude-sonnet-4-5"
}
}
}
}
로컬 모델에서도 작동합니다. 예를 들어 요약 전용 Ollama 모델이나 압축에 특화된 파인튜닝 모델을 사용할 수 있습니다:
{
"agents": {
"defaults": {
"compaction": {
"model": "ollama/llama3.1:8b"
}
}
}
}
설정하지 않으면 에이전트의 기본 모델이 압축에 사용됩니다.
자동 압축 (기본 활성화)
세션이 모델의 컨텍스트 윈도우에 근접하거나 초과하면 OpenClaw가 자동 압축을 실행하고, 압축된 컨텍스트로 원래 요청을 재시도할 수 있습니다.
다음과 같이 표시됩니다:
- verbose 모드에서
🧹 Auto-compaction complete /status에서🧹 Compactions: <count>표시
압축 전에 OpenClaw는 무음 메모리 플러시 턴을 실행하여 지속적인 메모를 디스크에 저장할 수 있습니다. 자세한 내용과 설정은 메모리를 참고하세요.
수동 압축
/compact (선택적으로 지시사항 포함)를 사용하여 압축을 강제 실행할 수 있습니다:
/compact Focus on decisions and open questions
컨텍스트 윈도우 출처
컨텍스트 윈도우는 모델에 따라 다릅니다. OpenClaw는 설정된 프로바이더 카탈로그의 모델 정의를 사용하여 한계를 결정합니다.
압축 vs 프루닝
- 압축: 요약하여 JSONL에 영속화합니다.
- 세션 프루닝: 이전 도구 결과만 요청별로 인메모리에서 제거합니다.
프루닝 세부사항은 /concepts/session-pruning을 참고하세요.
OpenAI 서버사이드 압축
OpenClaw는 호환 가능한 OpenAI 직접 모델에 대해 OpenAI Responses 서버사이드 압축 힌트도 지원합니다. 이는 로컬 OpenClaw 압축과 별개이며 함께 실행될 수 있습니다.
- 로컬 압축: OpenClaw가 요약하여 세션 JSONL에 영속화합니다.
- 서버사이드 압축:
store+context_management가 활성화된 경우 OpenAI가 프로바이더 측에서 컨텍스트를 압축합니다.
모델 파라미터와 오버라이드는 OpenAI 프로바이더를 참고하세요.
팁
- 세션이 오래되었거나 컨텍스트가 부풀어 올랐을 때
/compact를 사용하세요. - 큰 도구 출력은 이미 잘려 있으며, 프루닝으로 도구 결과 누적을 추가로 줄일 수 있습니다.
- 완전히 새로 시작해야 하면
/new또는/reset으로 새 세션 ID를 시작하세요.