Ever heard of an AI agent harness? Well, you’re almost certainly interacting (even implicitly) with at least one of those every day 🙂
If you think of the LLM as a car engine, the agent harness is everything around it that lets you actually drive the car: the steering, brakes, controls, navigation and connections to the outside world.
It gives the AI model access to tools, data, context and memory. So instead of simply spitting out words (or one would say generating an answer) and stopping there, it can remember what you have discussed, retrieve relevant information, use external tools and decide what to do next.
So when you interact e.g. with Claude or ChatGPT and have something resembling a continuous, human-like conversation, the harness is a big part of what makes that possible. The model generates and reasons, but the surrounding system gives it continuity, tools and boundaries.
As a term, it initially sounded overly technical to me. A harness literally refers to a framework used to guide, secure and control something. Aren’t the LLMs we’re using already powerful and ‘clever’ enough on their own to do everything after all?
Well, the current state of LLMs and agentic AI actually captures that metaphor very well.
This creates a big contrast with the “original” AI, ie Actual Intelligence, particularly human intelligence, which emerges from a vastly unexplored set of principles and has inherent plasticity and adaptability across very different contexts (despite its obvious constraints in memory and processing throughput, at least in language encodings).
So perhaps the learning is that, right now, we are trying to emulate actual intelligence through a growing set of add-ons that channel the model’s power and keep it pulling in the intended direction.
We tighten one part of the harness to improve reliability in one direction, while potentially making another part less safe, less accurate or simply more strange…
One of the clearest recent demonstrations of this for me was the release of Opus 5. At the API level, the migration was presented as a drop-in string replacement: “4.8” -> “5”.
I was hoping that a more capable model would naturally avoid some of the pitfalls of previous models. Instead, it also introduced new and initially unknown failure modes, sometimes pushing existing workflows in erroneous directions.
Not necessarily because it is a worse model, of course. More likely because the new model, its defaults, prompts, tools and the existing harness were now interacting differently, creating new hidden assumptions and behaviours.
So yes, we are getting transformative power from LLMs and agentic workflows. But we also need to understand and establish some more universal principles for what these systems are made of, both theoretically and from an engineering point of view.
Not an easy feat by any means…
Still, I genuinely miss the days when we knew something was deterministic…or did we just had the illusion of it? 🙂

Leave a comment