<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Agentic Harness Engineering on 67AI Lab</title>
    <link>https://67ailab.com/tags/agentic-harness-engineering/</link>
    <description>Recent content in Agentic Harness Engineering on 67AI Lab</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 13 May 2026 10:05:33 +0000</lastBuildDate>
    <atom:link href="https://67ailab.com/tags/agentic-harness-engineering/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>What Comes After MCP: The Next Layer of Agent Infrastructure</title>
      <link>https://67ailab.com/posts/harness-14-what-comes-after-mcp/</link>
      <pubDate>Wed, 13 May 2026 10:05:33 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-14-what-comes-after-mcp/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;. For this final post, I did &lt;strong&gt;not&lt;/strong&gt; change the repo before publishing; the codebase discussed here is the current public state at commit &lt;code&gt;7d01dae&lt;/code&gt;, the same commit introduced in the previous post when the repo gained a real blueprint export. That matters because this article is not about an imaginary next step. It is about what the current repo already makes obvious once you stop looking at MCP as the finish line.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A Reference Blueprint for a Production Agent Harness</title>
      <link>https://67ailab.com/posts/harness-13-reference-blueprint/</link>
      <pubDate>Tue, 12 May 2026 10:07:04 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-13-reference-blueprint/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new repo commit is &lt;code&gt;7d01dae&lt;/code&gt;, which adds a real &lt;code&gt;blueprint&lt;/code&gt; export to the demo so the architecture in this article is not just a hand-drawn diagram in prose. You can now run:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;PYTHONPATH&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;=&lt;/span&gt;src python3 -m harness_engineering.cli blueprint --pretty&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;PYTHONPATH&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;=&lt;/span&gt;src python3 -m harness_engineering.cli blueprint --format markdown&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#8be9fd;font-style:italic&#34;&gt;PYTHONPATH&lt;/span&gt;&lt;span style=&#34;color:#ff79c6&#34;&gt;=&lt;/span&gt;src python3 -m harness_engineering.cli blueprint --format mermaid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That feature lives mainly in:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cost, Latency, and Throughput Engineering for Agents</title>
      <link>https://67ailab.com/posts/harness-12-cost-latency-throughput/</link>
      <pubDate>Mon, 11 May 2026 10:07:23 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-12-cost-latency-throughput/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new repo commit is &lt;code&gt;b9a60e8&lt;/code&gt;, which adds per-step timing metadata, lightweight workload and token estimates, and performance/cost rollups to the harness traces and summaries.&lt;/p&gt;&#xA;&lt;p&gt;That change lives mainly in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/models.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/runner.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/tracing.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/store.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;tests/test_harness.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;README.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The core additions are:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;new timing and metrics fields on &lt;code&gt;StepResult&lt;/code&gt; in &lt;code&gt;models.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;wall-clock measurement inside &lt;code&gt;RetryPolicy.call()&lt;/code&gt; in &lt;code&gt;runner.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;step-level workload estimation in &lt;code&gt;HarnessRunner._estimate_step_metrics()&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;aggregated performance and cost rollups in &lt;code&gt;build_trace_summary()&lt;/code&gt; in &lt;code&gt;tracing.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;operator-facing rollups in &lt;code&gt;RunStore.build_summary()&lt;/code&gt; in &lt;code&gt;store.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;This is the right place for Post 12 to land, because cost and latency problems in agent systems almost never come from one bad prompt. They come from system shape:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Security, Auth, and Policy in Agent Harnesses</title>
      <link>https://67ailab.com/posts/harness-11-security-auth-policy/</link>
      <pubDate>Sun, 10 May 2026 10:05:23 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-11-security-auth-policy/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new repo commit is &lt;code&gt;3f2ec5d&lt;/code&gt;, which adds a checked-in baseline policy file at &lt;code&gt;policy/default.json&lt;/code&gt; and tightens &lt;code&gt;PolicyEngine&lt;/code&gt; so relative policy paths resolve from the policy file location rather than from the caller&amp;rsquo;s current working directory.&lt;/p&gt;&#xA;&lt;p&gt;That sounds like a small change. It is small in lines of code. It is not small in meaning.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Multi-Agent Systems Without the Theater</title>
      <link>https://67ailab.com/posts/harness-10-multi-agent-without-the-theater/</link>
      <pubDate>Sat, 09 May 2026 10:13:19 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-10-multi-agent-without-the-theater/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;dadf203&lt;/code&gt;, which adds a small but real multi-agent mode to the demo: the harness can now run with explicit &lt;code&gt;planner&lt;/code&gt;, &lt;code&gt;executor&lt;/code&gt;, and &lt;code&gt;reviewer&lt;/code&gt; roles, persist role activity, record handoffs, and expose those artifacts through the CLI and saved run files.&lt;/p&gt;&#xA;&lt;p&gt;The core changes are in:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sandboxing, Isolation, and Safe Execution</title>
      <link>https://67ailab.com/posts/harness-09-sandboxing-and-isolation/</link>
      <pubDate>Fri, 08 May 2026 10:15:48 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-09-sandboxing-and-isolation/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;98c6302&lt;/code&gt;, 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.&lt;/p&gt;&#xA;&lt;p&gt;The key code changes are in:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/policy.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/tools.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/runner.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/mcp.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/tracing.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/store.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;src/harness_engineering/workflow.py&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;sample_data/policy/restrictive.json&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tracing, Observability, and Evals for Agent Systems</title>
      <link>https://67ailab.com/posts/harness-08-tracing-observability-evals/</link>
      <pubDate>Thu, 07 May 2026 10:11:02 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-08-tracing-observability-evals/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;85c762c&lt;/code&gt;, which adds two concrete things the repo was missing:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;a persisted trace-summary surface for every run&lt;/li&gt;&#xA;&lt;li&gt;a lightweight eval runner with trace-aware fixtures&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The key changes are in &lt;code&gt;src/harness_engineering/tracing.py&lt;/code&gt;, &lt;code&gt;src/harness_engineering/store.py&lt;/code&gt;, &lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt;, and the new &lt;code&gt;src/harness_engineering/evals.py&lt;/code&gt; module, plus starter fixtures in &lt;code&gt;sample_data/evals/basic.json&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;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:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Human-in-the-Loop Done Properly</title>
      <link>https://67ailab.com/posts/harness-07-human-in-the-loop/</link>
      <pubDate>Wed, 06 May 2026 10:06:52 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-07-human-in-the-loop/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;352fba2&lt;/code&gt;, which adds a first-class pending-approval inspection surface to the existing approval-gated harness. The key changes are in &lt;code&gt;src/harness_engineering/runner.py&lt;/code&gt;, &lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt;, and &lt;code&gt;src/harness_engineering/store.py&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Memory Architecture for Agents: Context, Sessions, and State</title>
      <link>https://67ailab.com/posts/harness-06-memory-architecture/</link>
      <pubDate>Tue, 05 May 2026 10:07:53 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-06-memory-architecture/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;d20e352&lt;/code&gt;, which adds an explicit memory-layer model to the demo instead of treating every stored value as one blurry thing called “memory.”&lt;/p&gt;&#xA;&lt;p&gt;The core addition is &lt;code&gt;src/harness_engineering/memory.py&lt;/code&gt;, plus wiring in &lt;code&gt;src/harness_engineering/store.py&lt;/code&gt; and &lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt; so every run now emits a &lt;code&gt;memory.json&lt;/code&gt; snapshot and the CLI exposes a &lt;code&gt;memory&lt;/code&gt; command.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Durable Execution Is the Difference Between a Demo and a System</title>
      <link>https://67ailab.com/posts/harness-05-durable-execution/</link>
      <pubDate>Mon, 04 May 2026 10:25:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-05-durable-execution/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; change the repo before publishing. The new capability shipped in commit &lt;code&gt;9612b58&lt;/code&gt;, which adds persisted run summaries plus replay-oriented history inspection to the existing approval-gated harness. The key changes are in &lt;code&gt;src/harness_engineering/store.py&lt;/code&gt; and &lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Orchestration Patterns: Loops, Graphs, Managers, and Handoffs</title>
      <link>https://67ailab.com/posts/harness-04-orchestration-patterns/</link>
      <pubDate>Sun, 03 May 2026 10:20:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-04-orchestration-patterns/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; add a real repo capability before publishing. The repo now includes a workflow export layer in &lt;code&gt;src/harness_engineering/workflow.py&lt;/code&gt;, plus a &lt;code&gt;workflow&lt;/code&gt; CLI command in &lt;code&gt;src/harness_engineering/cli.py&lt;/code&gt; that renders the current harness orchestration as structured JSON or Mermaid. That change shipped in commit &lt;code&gt;a007c08&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tool Calling, Schemas, and the Rise of MCP</title>
      <link>https://67ailab.com/posts/harness-03-tool-calling-schemas-and-mcp/</link>
      <pubDate>Sat, 02 May 2026 10:15:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-03-tool-calling-schemas-and-mcp/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and for this post I &lt;strong&gt;did&lt;/strong&gt; add a real new capability before publishing. The repo now includes a small MCP-style adapter layer in &lt;code&gt;src/harness_engineering/mcp.py&lt;/code&gt;, plus CLI entry points to inspect tool descriptors and call tools through that boundary. The exact repo change shipped in commit &lt;code&gt;e21f361&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;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: &lt;strong&gt;what exactly is the boundary between your harness and the tool protocol?&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Agentic Harness Engineering White Paper</title>
      <link>https://67ailab.com/posts/agentic-harness-engineering-white-paper/</link>
      <pubDate>Fri, 01 May 2026 12:55:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/agentic-harness-engineering-white-paper/</guid>
      <description>&lt;p&gt;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.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Anatomy of an Agent Harness</title>
      <link>https://67ailab.com/posts/harness-02-anatomy-of-an-agent-harness/</link>
      <pubDate>Fri, 01 May 2026 10:20:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-02-anatomy-of-an-agent-harness/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;, and this post stays anchored to the code that exists there today. I did &lt;strong&gt;not&lt;/strong&gt; 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 &lt;code&gt;src/harness_engineering/&lt;/code&gt;, how the pieces fit together, and which parts are carrying the reliability burden.&lt;/p&gt;&#xA;&lt;p&gt;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.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Agentic Harness Engineering Matters More Than Prompt Engineering</title>
      <link>https://67ailab.com/posts/harness-01-why-agentic-harness-engineering-matters/</link>
      <pubDate>Thu, 30 Apr 2026 23:05:00 +0000</pubDate>
      <guid>https://67ailab.com/posts/harness-01-why-agentic-harness-engineering-matters/</guid>
      <description>&lt;p&gt;The live demo repo for this series is &lt;a href=&#34;https://github.com/67ailab/harness-engineering&#34;&gt;&lt;code&gt;67ailab/harness-engineering&lt;/code&gt;&lt;/a&gt;. This first post is grounded in the current public repo state rather than a made-up architecture diagram. For this article, I did &lt;strong&gt;not&lt;/strong&gt; add a new repo feature before publishing; the existing baseline already supports the core claim. At the time of writing, that baseline includes typed tools, checkpointed run state, resumable execution, an approval gate before writing artifacts, per-step traces, a planner/reviewer split, and optional local OpenAI-compatible model support.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
