Defining an “Agent Harness”

I’ve recently been asked to explain what an “agent harness” is (particularly after I wrote about my favorite app of the year so far, Open Minis). I realized it was one of those concepts I could understand intuitively but not quite articulate. Thankfully, other people have done a better job of explaining it than I have.

Drew Breunig calls them “situated agents”:

Harrison Chase once excitedly shared an insight that agents are comprised of 4 things: a system prompt, a planning tool, a file system, and subagents. In the year-plus since he said that, I think this remains largely true. (Though you might tweak it to have general tools, etc.)

[…]

Imagine the simplest coding agent, and you at the keys. Let’s slowly zoom out and consider all the elements the harness can manage:

The Session: The current task and context, as both a trajectory and a durable, branchable log. You can zoom backwards, fork, and replay it.

The Environment: The instance, defined as a sandbox, terminal, worktree, computer, and/or container.

The Repo: The project. Versioned with Git, it contains your code, history, current work, AGENTS.md, guides, and hooks.

Memory: The person’s predilections, accrued over time, managing progress and past decisions.

Skills: The domain, artifacts describing reusable workflows or domain knowledge worth wielding in this situation.

The Team: Your colleagues and counterparts. Shared rooms, shared traces, project tracking tools, issues, and bug reports.

The Organization: The policies and audits, defined by legal, leadership, and procurement.

The Model: The LLMs themselves, the common artifact shared by all. Stochastic blobs we all poke trying to evoke positive outcomes. Log or train on their quirks and adjust.

I also thoroughly enjoyed this explanation and excellent visualization by Ted Spare, Dexter Storey, and Sarim Malik, writing for Rubric Labs:

A harness is the software that translates a model into a system that can affect its environment.

[…]

Functionally, a harness makes a model agentic, meaning it can take action.

And:

As coding agents begin to run for longer, and deploy more intelligence through dispatch, they are owning larger and more complex problems end to end, and the developer is less in the loop to steer the agent. The value of high quality planning increases as agents implement the plans more autonomously. Harnesses like Claude Code and Codex ship with a native planning mode, where the agent must first create a detailed Plan.md file with feedback from the user before executing. These harnesses then place a reference to the plan and the todo list into a top level state (system prompt) so that the agent doesn’t forget what it’s working on across long runs.

Given the multi-model, hybrid structure of the new Siri AI, we should probably assume Apple also made a lightweight “Siri harness” to aid the on-device orchestration of the entire system.