Skip to content

[Feature]: 🚀 [Performance Insight] Unlocking 26.7k Context Window on M4 Pro: Fixing the 8k Compaction Lag (64GB RAM Only) #55888

Description

@Vic-HA

Summary

Optimization report for OpenClaw 2026.3.24 (cff6dc9) on Mac Mini M4 Pro (64GB RAM). Identified a hidden ~4k token system buffer in the memoryFlush logic that causes unnecessary background compaction (20-30s latency) at only 8k tokens. Successfully increased usable context to 26.7k tokens with <1,000ms latency.

Target Model Details:

Model: ollama/qwen2.5-coder:7b (High-performance coding model)

Quantization: Q4_K_M (Standard Ollama default)

Native Context Window: 32,768 tokens

Actual Performance: On M4 Pro 64GB, this model is capable of near-instant inference, but was throttled by OpenClaw's 8k compaction threshold.

Problem to solve

Default compaction thresholds are too conservative for 64GB RAM machines, triggering frequent summarization loops that ignore the hardware's unified memory capacity.

The Discovery (Triple-Deduction Formula):
Through black-box testing, I've decoded the internal Threshold calculation:
Actual Threshold = ContextWindow (32768) - reserveTokensFloor - SystemBuffer (~4000).
This fixed 4k buffer prevents high-spec users from reaching the physical limit unless they understand this specific offset.

Proposed solution

Crucial: The configuration MUST start with the agents header to ensure it correctly overrides global defaults for the specific environment.

Recommended openclaw.json Structure:
JSON
{
"agents": {
"defaults": {
"compaction": {
"mode": "safeguard",
"reserveTokensFloor": 2000,
"keepRecentTokens": 20000
}
}
}
}

Alternatives considered

Tuning within models or providers block: Often ignored or results in Unrecognized key errors in version 2026.3.24.

Auto Mode: Prematurely triggers at 8k, wasting M4 Pro's 64GB Unified Memory.

Impact

Latency: Dropped from 22,000ms+ to <1,000ms.

Hierarchy Clarity: Using the agents header prevents configuration conflicts and "ghost" settings.

Performance: 200% increase in usable context (26.7k vs 8.7k).

Evidence/examples

Target Model & Hardware:

Model: ollama/qwen2.5-coder:7b (32k Context)

RAM: 64GB Unified Memory (M4 Pro)

Verification via Terminal Logs:

Test (Floor 2000 at agents level): Log Result -> threshold=26768.
(See attached screenshot for log proof)

⚠️ Requirement: This tuning is for 32GB/64GB RAM machines. Low-RAM users should avoid these settings to prevent OOM.

Additional information

  1. Configuration Snapshot & Persistence
    It is important to note that modifying openclaw.json may not take immediate effect if the agent's snapshot is already active. Users should synchronize the changes to their active agent's model configuration:
    cp ~/.openclaw/openclaw.json ~/.openclaw/agents/main/agent/models.json
    Followed by a gateway restart to ensure the new threshold is reflected in the logs.

  2. Scaling for Larger Models
    While this optimization works flawlessly for Qwen2.5-Coder-7B, users scaling up to 32B or 72B models on the same M4 Pro (64GB RAM) should consider increasing the reserveTokensFloor slightly (e.g., to 4000) to account for the larger KV cache memory footprint.

  3. Environment Context
    These observations are based on OpenClaw 2026.3.24 (cff6dc9) running on macOS 16 (Sequoia). Results may vary on Linux/Docker environments where memory management (swap) differs from macOS Unified Memory.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low-priority cleanup, docs, polish, ergonomics, or speculative work.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.enhancementNew feature or requestimpact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions