Technical illustration of planner, executor, and reviewer components connected by explicit handoffs and an approval gate before a final file write

Multi-Agent Systems Without the Theater

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit dadf203, which adds a small but real multi-agent mode to the demo: the harness can now run with explicit planner, executor, and reviewer roles, persist role activity, record handoffs, and expose those artifacts through the CLI and saved run files. The core changes are in: ...

May 9, 2026 · 67 AI Lab
Technical illustration of an agent workflow passing through a policy gate before a filesystem write inside an allowed directory boundary

Sandboxing, Isolation, and Safe Execution

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit 98c6302, which adds an explicit policy layer to the harness: tools now carry action categories, risky writes are checked against allowed output roots before execution, and policy decisions are persisted in traces and summaries. The key code changes are in: src/harness_engineering/policy.py src/harness_engineering/tools.py src/harness_engineering/runner.py src/harness_engineering/cli.py src/harness_engineering/mcp.py src/harness_engineering/tracing.py src/harness_engineering/store.py src/harness_engineering/workflow.py sample_data/policy/restrictive.json That matters because “sandboxing” gets used too loosely in agent conversations. Sometimes people mean a real OS sandbox. Sometimes they mean a container. Sometimes they mean “the model only has a few tools.” Those are not the same thing. ...

May 8, 2026 · 67 AI Lab
Technical illustration of an agent workflow feeding event traces into a compact observability panel and evaluation checklist

Tracing, Observability, and Evals for Agent Systems

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit 85c762c, which adds two concrete things the repo was missing: a persisted trace-summary surface for every run a lightweight eval runner with trace-aware fixtures The key changes are in src/harness_engineering/tracing.py, src/harness_engineering/store.py, src/harness_engineering/cli.py, and the new src/harness_engineering/evals.py module, plus starter fixtures in sample_data/evals/basic.json. That matters because a lot of agent writing still treats observability as an afterthought and evals as a benchmark spreadsheet. In practice, most production pain shows up somewhere else: ...

May 7, 2026 · 67 AI Lab
Technical illustration of an agent workflow paused at an approval gate while a human reviewer decides whether to continue

Human-in-the-Loop Done Properly

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit 352fba2, which adds a first-class pending-approval inspection surface to the existing approval-gated harness. The key changes are in src/harness_engineering/runner.py, src/harness_engineering/cli.py, and src/harness_engineering/store.py. That matters because most writing about “human in the loop” in agent systems is still weirdly sloppy. A model says “should I proceed?”, a human types “yes”, and the demo declares the governance problem solved. It is not solved. In production, approval is not a vibe, not a chat convention, and not a magical hidden boolean inside the runtime. It is a workflow boundary with state, context, inspection, and recovery semantics. ...

May 6, 2026 · 67 AI Lab
Layered agent memory diagram showing working context, session state, and retrieval memory around a checkpointed workflow

Memory Architecture for Agents: Context, Sessions, and State

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit d20e352, which adds an explicit memory-layer model to the demo instead of treating every stored value as one blurry thing called “memory.” The core addition is src/harness_engineering/memory.py, plus wiring in src/harness_engineering/store.py and src/harness_engineering/cli.py so every run now emits a memory.json snapshot and the CLI exposes a memory command. ...

May 5, 2026 · 67 AI Lab
Engineering workflow diagram with checkpoints, event history, approval gate, and pause-resume arrows

Durable Execution Is the Difference Between a Demo and a System

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did change the repo before publishing. The new capability shipped in commit 9612b58, which adds persisted run summaries plus replay-oriented history inspection to the existing approval-gated harness. The key changes are in src/harness_engineering/store.py and src/harness_engineering/cli.py. That addition matters because durable execution is where most agent demos quietly stop being honest. It is easy to show a model calling tools in one uninterrupted run. It is much harder to explain what happens when execution pauses for approval, the process dies, the machine reboots, the reviewer returns malformed output, or an operator needs to understand what state the run is actually in. ...

May 4, 2026 · 67 AI Lab
Systems diagram showing an agent harness with workflow nodes, approval gates, manager-worker branches, and handoff arrows

Orchestration Patterns: Loops, Graphs, Managers, and Handoffs

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did add a real repo capability before publishing. The repo now includes a workflow export layer in src/harness_engineering/workflow.py, plus a workflow CLI command in src/harness_engineering/cli.py that renders the current harness orchestration as structured JSON or Mermaid. That change shipped in commit a007c08. That may sound like a documentation flourish. It is not. The point of an orchestration post is not to wave vaguely at boxes and arrows. It is to make the runtime’s control structure explicit enough that you can inspect it, reason about it, and argue about whether it is the right one. ...

May 3, 2026 · 67 AI Lab
Diagram of JSON schemas and MCP tool descriptors feeding into an agent harness with approvals and traces

Tool Calling, Schemas, and the Rise of MCP

The live demo repo for this series is 67ailab/harness-engineering, and for this post I did add a real new capability before publishing. The repo now includes a small MCP-style adapter layer in src/harness_engineering/mcp.py, plus CLI entry points to inspect tool descriptors and call tools through that boundary. The exact repo change shipped in commit e21f361. That addition matters because this is the first point in the series where the demo has to answer a question the broader ecosystem now forces on every agent builder: what exactly is the boundary between your harness and the tool protocol? ...

May 2, 2026 · 67 AI Lab
Systems diagram of an AI agent connected to tools, observability, approval gates, memory, and policy guardrails

Agentic Harness Engineering White Paper

Artificial intelligence is entering a new engineering phase. For the last two years, the dominant conversation centered on prompt engineering: how to ask better questions, structure better instructions, and squeeze more reliable output from large language models. That work mattered, and still matters. But as models have become capable of planning, tool use, coding, browsing, testing, and acting over many steps, the practical bottleneck has shifted. The central production problem is no longer simply how to prompt the model. It is how to build the runtime around the model so that the model can act effectively, safely, durably, and measurably. ...

May 1, 2026 · 67 AI Lab
Blueprint-style diagram of an agent runtime surrounded by tools, state, traces, approvals, and outputs

Anatomy of an Agent Harness

The live demo repo for this series is 67ailab/harness-engineering, and this post stays anchored to the code that exists there today. I did not add a new repo capability for this article. The point of this installment is to dissect the current harness as it actually stands: what lives in src/harness_engineering/, how the pieces fit together, and which parts are carrying the reliability burden. That matters because “agent” is now a dangerously overloaded word. Many teams still mean either a model that can call functions or a prompt loop with some memory and tool wrappers. Those are ingredients, not a runtime anatomy. ...

May 1, 2026 · 67 AI Lab