This preprint, by authors affiliated with Wavestone AI Lab and Inclusive Brains, sets out to give Harness Engineering a reference grounded in production source code. It starts from the definition “an agent is a model plus a harness”, treating the Agent Harness as everything except the model — the runtime that couples a language model to the world through its loop, tools, context, safety controls, orchestration and extension surfaces. The corpus is eleven systems pinned to July 2026 releases: the four provider-native flagships (Claude Code, OpenAI Codex, Gemini CLI and Mistral Vibe CLI) and seven open-source systems (OpenHands, Aider, Mini-SWE-Agent, Hermes Agent, Pi, OpenCode and OpenClaw), with Omnigent analysed separately as a Meta-Harness. The Claude Code analysis draws on a circulated source snapshot from March 2026 rather than an official release, which the authors call the weakest link on reproducibility.

The paper states that it does not benchmark or rank the systems; it describes how they are built. Each system is dissected along seven subsystems — agent loop, LLM integration, tools and actions, memory and context, safety and permissions, orchestration, and extensibility — each with the minimal and maximal implementation observed in the corpus. Because eight of the systems had already been audited in an April 2026 edition of the study and were re-pinned rather than replaced, the paper also reports a quarter-long longitudinal comparison of the same harnesses. It closes with 18 design recommendations and a roughly 90-line minimum-viable-harness scaffold in Python that the authors say implements ten of them directly.

Key Points

  • The seven subsystems are presented as the canonical anatomy of a harness, alongside two cross-cutting surfaces: an interface layer (TUI, CLI, IDE protocol, HTTP server, SDK) and a session substrate (transcripts, persistence, resume and fork).
  • The paper distinguishes a harness from four things it is often confused with: a scaffold (a near-synonym it uses for the structural code, such as the loop and registries — see Agent Scaffold), an agentic framework (a library imported to build an agent, as opposed to a runtime worked inside), an evaluation harness such as SWE-bench’s (which wraps an agent rather than a model), and an orchestrator or meta-harness (which coordinates harnesses from above and implements no editing loop of its own).
  • Across roughly four million lines of Python, TypeScript and Rust, the authors report that no agent runtime imports a general-purpose agentic framework such as LangChain, LangGraph or AutoGen, and that none retrieves code with vector embeddings; retrieval relies on ripgrep, tree-sitter, glob and auto-discovered Markdown context files. The authors describe this finding as structurally conservative: it rests on dependency manifests and import searches, not on tracing dynamic imports or internal forks.
  • Skills in the SKILL.md format are reported in nine of the eleven systems and MCP in eight, so the paper concludes that skills now lead MCP in adoption; it attributes the change from an April tie to Pi, which implements skills while rejecting MCP.
  • Seven of the eleven systems are reported to use threshold-triggered LLM compaction, and the paper argues that persistent memory, where designs diverge on who writes and who reviews the memory, has replaced compaction as the frontier of context management.
  • OS-level sandboxing is described as among the most code-expensive capabilities in the corpus but as a choice rather than a consequence of scale: two of the largest systems, Hermes and OpenCode, ship no OS-level isolation primitives.
  • The Agent Client Protocol is reported in six systems and to have acquired a third role — hosting whole harnesses, as when OpenHands runs Claude Code, Codex or Gemini CLI as interchangeable backends — while A2A remains, in the corpus, a Gemini CLI capability alone.
  • The longitudinal comparison is described as showing convergence turning into imitation — Codex adopting Claude Code’s hook event vocabulary verbatim and shipping an importer for its sessions and settings, OpenHands reading Claude Code’s plugin format — and behavioural policy migrating from prompt prose to configuration. Three observations from the April edition were revised in place.
  • The paper’s thesis is that in the first half of 2026 the coding harness completed a turn from tool to platform: harnesses became importable SDKs while framework vendors shipped harnesses, marketplaces and governance layers appeared, and a meta-harness now orchestrates vendor harnesses behind one API.
  • The authors propose a “scaffold–capability frontier” — a roughly concave relation between scaffold complexity and task success for a fixed model and task distribution — explicitly as a guiding intuition to be tested, not as a result.

Notes

The authors list their own threats to validity: the analysis rests on reading source code rather than runtime measurement, the qualitative scoring involves judgement calls, benchmark figures quoted are the systems’ own self-reported numbers on different models and dates, and the mapping between Anthropic’s published agent-design guidance and the observed architectures is described as suggestive rather than causal. They also separate inventory claims such as tool counts and version pins, which they expect to decay within weeks, from structural claims about loop taxonomy, subsystem anatomy and the absences, which they expect to endure. The paper discloses that it was written with substantial assistance from Anthropic’s Claude via the Claude Code CLI, used both for the source-code analysis and for drafting, with the findings verified against the referenced codebases.