장기 세션에서 OpenClaw 느려짐 수정: llama.cpp 캐시에 대한 contextInjection continuation-skip

✍️ OpenClawRadar📅 게시일: June 30, 2026🔗 Source
장기 세션에서 OpenClaw 느려짐 수정: llama.cpp 캐시에 대한 contextInjection continuation-skip
Ad

자체 호스팅 OpenClaw와 llama.cpp를 사용할 때 세션이 90k 토큰을 넘어가면서 점점 느려진다면, 원인은 매 턴마다 프롬프트 캐시를 조용히 무효화하는 단일 OpenClaw 설정일 수 있습니다. r/openclaw의 한 사용자가 문제를 추적하고 간단한 해결책을 찾았습니다.

환경 설정

  • 듀얼 RTX 3090에서 Qwen3.6-27B-Q8_0 (텐서 병렬)
  • llama-server: --cache-prompt, --ctx-size 400000, --parallel 2
  • LAN을 통해 연결된 OpenClaw

증상

llama-server 로그에 매 턴마다 다음과 같이 표시되었습니다:

forcing full prompt re-processing due to lack of cache data
erased invalidated context checkpoint (pos_min = 57172)
erased invalidated context checkpoint (pos_min = 60139)
erased invalidated context checkpoint (pos_min = 91076)
prompt eval time = 130511 ms / 91403 tokens

매 턴마다 91k 토큰을 처음부터 다시 처리 — 130초. 캐시는 활성화되어 있고 체크포인트는 존재했지만, llama.cpp는 일치하는 항목을 찾지 못해 전체 재처리로 대체되었습니다.

근본 원인

OpenClaw의 설정 contextInjection (기본값 always)은 모든 워크스페이스 부트스트랩 파일(AGENTS.md, SOUL.md, USER.md, TOOLS.md, MEMORY.md, HEARTBEAT.md, ~15kb)을 연속 턴을 포함한 모든 턴의 시스템 프롬프트에 다시 주입합니다. 이로 인해 토큰 시퀀스가 변경되어 정확한 접두사 일치에 의존하는 llama.cpp의 프롬프트 캐시를 재사용할 수 없게 됩니다.

Ad

해결책

openclaw config set agents.defaults.contextInjection continuation-skip --merge

그런 다음 게이트웨이를 재시작하세요. continuation-skip은 연속 턴이 아닌 새 사용자 메시지에서만 부트스트랩 파일을 주입하여 프롬프트를 안정적으로 유지하고 캐시를 유효하게 만듭니다.

결과

전: 턴당 91,403 토큰 재처리, 130초 프롬프트 평가, 캐시 재사용 0%, 답변당 2분 이상.

후: 턴당 513 새 토큰, 1.3초 프롬프트 평가, 캐시 재사용 99.7%, 답변당 약 5초. 100배 더 빠름.

진단 방법

ssh your-server "journalctl -u llama.service --no-pager -n 50 | grep -iE 'cache|re-process|checkpoint'"

캐시 손상 신호: forcing full prompt re-processing due to lack of cache data, erased invalidated context checkpoint 반복, 프롬프트 처리 30초 초과. 건강한 캐시 신호: restored context checkpoint, f_keep = 0.99+, graphs reused = 큰 숫자, 프롬프트 처리 5초 미만.

또한 추가 개선을 위해 --ctx-size를 400k(세션당 200k)로, OpenClaw contextTokens를 200k로, memoryFlush.softThresholdTokens를 30k에서 10k로 조정하세요.

📖 전체 소스 읽기: r/openclaw

Ad

👀 See Also