The context window runs out
A long conversation, a full window - what does the harness throw away, what does it keep, and who decides?
Why this is hard
Every call sends the whole history along. The window grows with every turn, and at some point it no longer fits - or it still fits, but costs more per call and degrades the model long before the provider throws an error. So the question is not whether to cut, but when, how, and what must survive.
Three layers work on the same spot: the message history decides what a history even is and what happens when it gets too long; compaction is the method that turns older turns into a summary; and memory is the place something can move to so it survives compaction. Looking at only one of the three shows half the decision.
From Pro: the matrix per challenge, all eleven topics with citations, and the architecture portrait of every harness. Freely visible are the six short portraits:
- OpenClaw - The multi-channel personal agent - a half-million-line estate of gateway, channels and tooling whose loop core shares its lineage with Pi.
- Hermes - Nous Research's Python harness - deterministic loop, a skill system, and an error path that escalates in stages instead of just giving up.
- Pi - The coding agent with a deliberately small core - every layer hand-built and kept readable, from the provider package to the session file.
- HybridClaw - The enterprise runtime - sandboxed execution, approvals, and credentials that travel through context as references instead of plain text.
- DeepSeek Harness - The plugin radical - “everything is a plugin” is meant literally here: providers, tools and the loop itself are modules on the Cordis core.
- NanoClaw - The minimalist - small enough to understand in full: the model layer moves behind the Claude Agent SDK, isolation into a container.