Fix OpenClaw Slowdown in Long Sessions: contextInjection continuation-skip for llama.cpp Cache

✍️ OpenClawRadar📅 Published: June 30, 2026🔗 Source
Fix OpenClaw Slowdown in Long Sessions: contextInjection continuation-skip for llama.cpp Cache
Ad

If your self-hosted OpenClaw with llama.cpp gets progressively slower as sessions grow past 90k tokens, the culprit might be a single OpenClaw setting that silently invalidates the prompt cache every turn. A user on r/openclaw traced the issue and found a simple fix.

The Setup

  • Qwen3.6-27B-Q8_0 on dual RTX 3090s (tensor parallel)
  • llama-server with --cache-prompt, --ctx-size 400000, --parallel 2
  • OpenClaw connecting over LAN

The Symptoms

llama-server logs showed on every turn:

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 tokens re-processed from scratch each turn — 130 seconds. The cache was enabled, checkpoints existed, but llama.cpp found zero matches and fell back to full re-processing.

The Root Cause

OpenClaw's setting contextInjection, default always, re-injects all workspace bootstrap files (AGENTS.md, SOUL.md, USER.md, TOOLS.md, MEMORY.md, HEARTBEAT.md, ~15kb) into the system prompt on every turn — including continuation turns. This changes the token sequence, so llama.cpp's prompt cache (which relies on exact prefix matching) cannot be reused.

Ad

The Fix

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

Then restart the gateway. continuation-skip only injects bootstrap files on new user messages, not on continuation turns, keeping the prompt stable and the cache valid.

The Results

Before: 91,403 tokens re-processed per turn, 130s prompt eval, 0% cache reuse, 2+ min per reply.

After: 513 new tokens per turn, 1.3s prompt eval, 99.7% cache reuse, ~5 seconds per reply. 100x faster.

How to Diagnose

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

Broken cache signs: forcing full prompt re-processing due to lack of cache data, erased invalidated context checkpoint repeated, prompt processing over 30 seconds. Healthy cache signs: restored context checkpoint, f_keep = 0.99+, graphs reused = large number, prompt processing under 5 seconds.

Also tune --ctx-size to 400k (200k per session), OpenClaw contextTokens to 200k, and memoryFlush.softThresholdTokens from 30k to 10k for additional improvements.

📖 Read the full source: r/openclaw

Ad

👀 See Also