It’s tokens, not words or seconds.
“Context” means the chunk of text the model can see at once: system prompt, AGENTS/SOUL instructions, current conversation, tool results, file snippets, logs, images metadata, and the model’s own reply budget. Every model has a maximum context window.
reserveTokensFloor: 20000 does not mean “limit the conversation to 20,000 tokens.” It means: when OpenClaw compacts old conversation history, keep at least ~20,000 tokens of free headroom so the next model call has space for the summary, tool output, and reply.
Rough scale: 1 token is about 3-4 English characters, or around 0.75 words on average. So 20,000 tokens is roughly 15,000 words, but code/logs/JSON can tokenize differently.
Why it still matters: if your active session already contains a very large transcript or huge tool/log outputs, compaction can still fail even with a 20k reserve. In that case, start a fresh session with /new or reset the current one with /reset, then the reserve helps prevent the next session from getting wedged the same way.