Fetching from the wire…
Public story · 2026-08-17 · high
Fowler, Osmani and LangChain converge on the same five-layer definition, built around one hard rule: models never call tools directly.
Why now: Four independent sources land on the same term and definition in the coverage dated August 17, a sign the vocabulary has settled rather than one blogger coining it.
Harness engineering has consolidated into a named third phase of agent design, after prompt engineering and context engineering, per Martin Fowler.
The shift matters because it turns a vague goal, "make the agent reliable," into five checkable layers. Those layers are tool orchestration, verification loops, context and memory, guardrails, and observability, per Fowler's write-up.
The term didn't stay Fowler's alone. He traces the same five-layer idea through Addy Osmani's writing and into LangChain's shorthand, Agent = Model + Harness, with an arXiv study behind it too.
The operating principle behind the label traces to Mitchell Hashimoto, who put it this way: "anytime you find an agent makes a mistake, you take the time to engineer a solution so that the agent never makes that mistake again."
One design rule falls out of that directly: never let the model call a tool. Instead the model returns a structured tool call. The harness checks it against a schema, checks permissions, runs it, and feeds the result back.
For builders, that's the checklist. Put a schema between the model and every tool call, check permissions first, then log each step. Skip any of those and you haven't done harness engineering, whatever you call your agent loop.
Each link below shares sources, entities, or timing with this story.
Martin Fowler published a full article on April 2 formalizing something I've been feeling for months: the thing that separates a good coding agent from a bad one isn't the model. It's everything around the model. He calls it harness engineering. The framework is clean. Agent =...
Ryan Lopopolo from OpenAI Frontier went on the Latent Space podcast and described something I've been circling around for months. His team of three engineers built Symphony, OpenAI's internal orchestration layer, as a million-line Elixir codebase. Not one line was written by a...
The Claude Code source leak was the biggest story in developer tools this week. But the most important analysis didn't come from the people picking through feature flags and Easter eggs. It came from Sebastian Raschka, who read the 512,000 lines of leaked TypeScript and reache...
1. Set package cooldown to 72 hours across all your package managers. pnpm: resolution-time=72h, uv: --exclude-newer, npm via .npmrc. This single config change would have protected you from the LiteLLM attack. Willison's survey covers all seven managers. 2. Install Lasso Secur...
1. Deploy Nemotron 3 Super for Agentic Reasoning (ml-ops, advanced) — 120B MoE activating only 12B params. vLLM with --reasoning-parser nemotron_v3. NVIDIA Blog 2. Build Multimodal RAG with Gemini Embedding 2 (ml-ops, intermediate) — Text, images, video, audio in one 3072-dim...
Stripe published Part 2 of its Minions engineering blog, and it's the most detailed production agent architecture I've read from any company this year. The numbers alone are worth the read: 1,300+ weekly merged PRs from coding agents. But the architecture decisions matter more...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.