🎯 Core Goals
- Understand that harnesses come in different families — not stages on a ladder.
- Learn the two key axes that define where a harness sits: session scope and project scope.
- See real-world examples from each family.
Harnesses aren’t one thing — they come in different families. A thin script that wraps a single LLM call. A coding agent that reads your project. An autonomous agent that runs for hours. These aren’t stages to climb — they’re different tools for different jobs. Two axes define where any harness sits: how long the context persists (session-scoped vs. session-less) and how much of your world it can see (project folder vs. whole computer).
The Two Axes
Every harness sits somewhere on two spectrums:
The Harness Spectrum
Two axes define where any harness sits
Session-scoped means the context lives for one conversation. When the session ends, the context is gone — unless something external persists it. Session-less means the agent maintains state across multiple interactions, tasks, or even days.
Project folder means the harness sees only a specific directory — your codebase, your documents, your notes. Whole computer means it can browse the web, access your email, move files, and operate any software on your machine.
Three Families
Lightweight Wrappers — the “just wrap it” family
A thin script that calls an LLM API, adds a system prompt, maybe retries once on failure. Session-scoped, project-folder level.
Example: A Python script that takes your CSV data, sends each row to an LLM for classification, and writes the results back. Or a “pi”-style assistant that reads a single file and answers questions about it.
Harness components: Minimal — maybe a retry loop and a response parser. That’s it.
Character: Quick to build, easy to throw away. Good for one-off tasks and experiments. But don’t mistake “lightweight” for “easy” — getting reliable results from a thin wrapper still requires careful prompt design and error handling.
Coding Agents — the “project-aware pair programmer” family
Tools like Claude Code, OpenCode, Cursor, or Windsurf. Project-folder scoped, session-based context. They read your codebase, maintain conversation state within a session, write files, run commands.
Harness components: System prompt with project conventions, file reading tools, terminal access, conversation memory within the session, sometimes a CLAUDE.md or AGENTS.md convention file that persists project knowledge between sessions.
Character: Powerful for focused work within a project. The context is rich during the session but gone when it ends — unless you’ve set up convention files or project-level instructions that persist. The harness here is mostly invisible — it feels like talking to a very capable colleague who happens to have read your entire codebase.
Autonomous Agents — the “runs while you sleep” family
Software that runs an LLM continuously over hours or days. Session-less or multi-session. Whole-computer scope. They pick up tasks, execute multi-step work, use multiple tools, and report back without you being involved at every step.
Projects like OpenClaw, Hermes Agent, and Manus are examples of this pattern.
These aren’t stages to climb. A lightweight wrapper is the right choice for many tasks. A coding agent is the right choice for focused project work. An autonomous agent is the right choice when you need continuous, large-scale operation. Each family has its own strengths and its own requirements — pick the one that fits the job, not the one that sounds most impressive.
📝 Key Concepts
- Three families: Lightweight wrappers, coding agents, autonomous agents — same LLM, different shapes
- Two axes: Session-scoped ↔ session-less, project-folder ↔ whole-computer
- Lightweight wrappers: Simple scripts, session-scoped, project-folder scope
- Coding agents: Claude Code, OpenCode, Cursor — project-scoped, session-based
- Autonomous agents: OpenClaw, Hermes, Manus — session-less, whole-computer scope
- Not a ladder: Pick the family that fits the job — don’t build an autonomous agent when a script will do