2026-09-15
The Agent Is Not Where Your Product Lives
The agent can write the code. It should not be the only place that knows what the product is, how the work gets done, or why the result is allowed to ship.
A session is a terrible home for your product
An agent session can look remarkably capable because a person quietly assembled everything it needed. The right files were open. The request carried the missing history. Someone knew which command mattered, which failure could be ignored, and which reviewer had to approve the change. The agent did useful work, but the product knowledge still lived in the person arranging the room.
That arrangement breaks the moment the task changes hands, the conversation expires, or a different model enters the route. The next run gets a thinner version of the truth and fills the gaps with plausible guesses. People call this a model problem because the model produces the mistake. The actual failure happened earlier: the system never made the required context durable.
Our position is that the agent should be replaceable. The product definition, operating rules, authority, and proof should survive it. If changing the worker means reconstructing those things from chat history and human memory, you have a talented assistant. You do not have production machinery.
Context needs an assembly line
More context is not automatically better context. Dumping a repository, a backlog, old conversations, and every internal document into one window gives the agent more material and less guidance about what governs the current decision. Stale rules compete with current ones. Examples masquerade as requirements. A confident answer hides the collision.
A factory assembles context for the job. It starts with the requested outcome, then pulls the current product constraints, the relevant system boundaries, the permitted tools, and the evidence required for acceptance. Each input has an owner and a reason to be there. When two rules disagree, the route stops or resolves the conflict before building begins.
That assembly line is part of the product. It turns scattered organizational knowledge into a repeatable work input. It also gives you somewhere to fix a recurring mistake. Correct the source, selector, or rule once, and later runs inherit the repair. Correct only the agent's answer, and the same confusion waits for the next empty session.
Tools turn language into consequences
The model proposes. The surrounding machinery makes the proposal real. It chooses which repository can change, which credential can be issued, which service can be reached, how much work can run at once, and what happens after a partial failure. Those decisions are not integrations around the product. They are the operating behavior of the product.
A prompt cannot carry that weight. Telling an agent to stay inside a boundary does not remove the route around it. Telling it to stop after failure does not cancel an automatic retry. The useful control sits outside the agent's discretion: a scoped credential, a rejected tool call, a spend ceiling, an isolated environment, or a gate that refuses to advance without the required artifact.
This is how you give agents more room without giving mistakes more reach. Let the worker explore inside a deliberately bounded route. Keep authority narrow, effects observable, and expansion explicit. The agent gets freedom where invention helps. The factory holds the consequences where optimism would hurt.
Proof is product behavior
An agent that writes code and an agent that says the code looks good are still one production path grading itself. Review can improve the output, but approval needs evidence the builder cannot rewrite after seeing the result. The exact revision must face the important checks under conditions controlled by something else.
That means acceptance belongs in the harness. Tests, policy checks, independent reproduction, deployment observations, and rollback signals decide whether work moves. A person still owns the tradeoffs that cannot be reduced to a rule. Their judgment becomes sharper because the factory brings them the unresolved consequence instead of asking them to manually replay every routine check.
When a failure repeats, the response should change the route. Add the missing check. Tighten the context selector. Narrow the permission. Preserve the recovery fact that the next run needs. This is how the product learns without pretending the model retrained itself. The machinery absorbs the lesson and makes it harder for every future worker to repeat the same error.
Own what survives the model
Models will improve, prices will move, and tool interfaces will change. Your operating system should treat those changes as component swaps, not organizational resets. Route work by the capability and consequence it requires. Measure what survives verification and production. Promote the cheaper worker when it clears the same bar, and replace the expensive one when it does not.
The durable asset is everything that makes that substitution safe: product context, tool contracts, permissions, work state, evaluation, recovery, and the record of why the route changed. That is where your standards compound. It is also where human coordination gets removed instead of merely hidden behind a faster chat window.
As that machinery improves, the people whose jobs consist of assembling context, forwarding status, repeating checks, and rescuing routine handoffs will not keep doing the same work. Agents will. Human judgment moves to choosing the destination, setting the standard, and accepting consequences. Build the system where those decisions survive any one agent, because the agent is not the product. The factory that keeps producing after the agent changes is.
In response to The Agent Harness Is the Product by Pere Villega.