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

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 tokens91k 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.
The Fix
openclaw config set agents.defaults.contextInjection continuation-skip --mergeThen 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
👀 See Also

iOS Developer Shares Claude Code Best Practices After Shipping Multiple Apps
An iOS developer with cybersecurity background outlines specific practices for using Claude Code effectively, including environment separation, observability setup, and avoiding technical debt accumulation.

Slash Claude costs 60x by offloading mechanical tasks to DeepSeek V4 Flash via MCP
A Reddit user cut Claude API spend 60x by routing file classification, JSON reformatting, and field extraction to DeepSeek V4 Flash via a simple MCP tool and a CLAUDE.md deny-list rule.

Bug Hunt: WireGuard Crashes and MTU Mismatch in GKE
Lovable engineers traced user errors to anetd crashes from a concurrent map access panic in Google's WireGuard integration, then found a secondary MTU mismatch after disabling encryption.

Practical OpenClaw Setup Insights from Docker/Windows Experience
A developer shares specific lessons from running OpenClaw on Docker with Windows 11/WSL2, covering persistence issues, Discord bot configuration, memory management approaches, and browser automation workarounds.