세션 프루닝
세션 프루닝은 각 LLM 호출 전에 컨텍스트에서 오래된 도구 결과를 정리합니다. 일반 대화 텍스트를 다시 쓰지 않고 누적된 도구 출력 (exec 결과, 파일 읽기, 검색 결과)으로 인한 컨텍스트 비대화를 줄입니다.
INFO
프루닝은 인메모리 전용입니다 -- 디스크의 세션 트랜스크립트를 수정하지 않습니다. 전체 히스토리는 항상 보존됩니다.
중요한 이유
긴 세션은 컨텍스트 창을 팽창시키는 도구 출력을 누적합니다. 이는 비용을 증가시키고 필요 이상으로 일찍 컴팩션을 강제할 수 있습니다.
프루닝은 Anthropic 프롬프트 캐싱에 특히 유용합니다. 캐시 TTL이 만료된 후, 다음 요청은 전체 프롬프트를 다시 캐시합니다. 프루닝은 캐시 쓰기 크기를 줄여 비용을 직접 낮춥니다.
작동 방식
- 캐시 TTL이 만료될 때까지 기다립니다 (기본값 5분).
- 일반 프루닝을 위한 오래된 도구 결과를 찾습니다 (대화 텍스트는 그대로 유지됨).
- 소프트 정리 과도한 크기의 결과 -- 헤드와 테일을 유지하고
...를 삽입합니다. - 하드 클리어 나머지 -- 플레이스홀더로 대체합니다.
- TTL을 재설정하여 후속 요청이 새 캐시를 재사용하도록 합니다.
레거시 이미지 정리
OpenClaw는 또한 히스토리에 원시 이미지 블록을 유지했던 오래된 레거시 세션에 대해 별도의 멱등성 정리를 실행합니다.
- 가장 최근 3개의 완료된 턴을 바이트 단위로 보존하여 최근 후속 조치의 프롬프트 캐시 접두사가 안정적으로 유지됩니다.
user또는toolResult히스토리의 오래된 이미 처리된 이미지 블록은[image data removed - already processed by model]로 대체될 수 있습니다.- 이는 일반 캐시-TTL 프루닝과 별개입니다. 반복된 이미지 페이로드가 나중 턴에서 프롬프트 캐시를 무효화하는 것을 방지하기 위해 존재합니다.
스마트 기본값
OpenClaw는 Anthropic 프로필에 대해 프루닝을 자동으로 활성화합니다:
| 프로필 유형 | 프루닝 활성화 | 하트비트 |
|---|---|---|
| Anthropic OAuth/토큰 인증 (Claude CLI 재사용 포함) | 예 | 1시간 |
| API 키 | 예 | 30분 |
명시적인 값을 설정하면 OpenClaw는 이를 오버라이드하지 않습니다.
활성화 또는 비활성화
프루닝은 비Anthropic 프로바이더에 대해 기본값으로 꺼져 있습니다. 활성화하려면:
json5
{
agents: {
defaults: {
contextPruning: { mode: "cache-ttl", ttl: "5m" },
},
},
}비활성화하려면: mode: "off"를 설정하십시오.
프루닝 대 컴팩션
| 프루닝 | 컴팩션 | |
|---|---|---|
| 대상 | 도구 결과 정리 | 대화 요약 |
| 저장 | 아니오 (요청별) | 예 (트랜스크립트에) |
| 범위 | 도구 결과만 | 전체 대화 |
이 둘은 서로 보완적입니다 -- 프루닝은 컴팩션 사이클 사이에 도구 출력을 간결하게 유지합니다.