top of page

The Harness Is the Product

Jun 27
12 min read

The Harness Is the Product


The model supplies intelligence. The harness decides whether that intelligence becomes useful software.

That is the simplest way to understand most AI product failures. A team picks a strong model, writes a decent prompt, connects a few tools, and watches an impressive demo work once. Then the same system meets real users, messy data, missing permissions, stale files, unclear goals, tool errors, and actions that should not happen without approval.


At that point, the model may still be good. The product may still be weak. The difference is usually the harness.

In plain language:


An AI harness is the system around the model that gives it context, tools, permissions, memory, evidence, traces, evaluations, approval points, and recovery paths so it can do useful work inside clear boundaries.

The harness is not decoration, and it is not only a prompt wrapped around the "real" product. For AI agents, the harness is the product.


The Short Version

A model can generate an answer. A harness turns that answer into a controlled workflow.


A model can summarize a file. A harness decides which file the model should see, whether the file is current, what the output should include, whether the answer needs citations, whether the system can take action, what gets logged, what gets tested, and what happens when something goes wrong. That is why two products using the same model can feel completely different: one feels like a magic text box, and the other feels like software.


Why The Word Harness Matters

The word "harness" already exists in software. A test harness is a controlled setup for running software tests. It supplies test data, executes the code, records results, and helps engineers see whether the system behaved correctly. The point is not only to run the code; it is to run the code inside a structure that makes behavior observable.


An AI harness borrows that idea, then expands it. It does not only test the model. It shapes the full operating environment around the model:

  1. What the model sees.

  2. What the model can do.

  3. What the system remembers.

  4. What must be proven.

  5. What gets recorded.

  6. What gets tested.

  7. What happens when the run fails.


That matters because AI systems do not fail only by giving bad answers. They fail by using the wrong source, skipping evidence, calling the wrong tool, forgetting the current step, taking too much authority, hiding uncertainty, losing the trace, or leaving a human with no way to recover. A harness exists to prevent those failures from becoming silent.


The Model Is Not The Product

The model is the AI component that produces outputs from inputs. For a language model, those outputs might be answers, summaries, classifications, plans, code, or tool calls.


The model matters. Better models can reason better, follow instructions better, handle more context, and use tools more reliably. But the model is still only one part of the product.


By itself, the model does not know:

  1. Which source is current.

  2. Which customer record matters.

  3. Whether it is allowed to send a message.

  4. Whether a task is high-risk.

  5. Whether an output needs evidence.

  6. Whether a tool failed.

  7. Whether the system should stop.

  8. Whether a previous mistake has been fixed.

Those are not model facts. They are product decisions, and they belong in the harness.


The Anatomy of an AI Harness

A serious AI harness is made of several parts. The exact parts change by product, but the core anatomy is consistent: define the job, select the right context, give the system narrow tools, control its authority, preserve state, attach evidence, record traces, test behavior, and recover when the run goes sideways.



1. Task Definition

The task definition names the job the system is trying to complete. "Help with email" is not a strong task. "Read these support threads, identify which ones need a reply, draft responses with source notes, and stop before sending" is much stronger.


A clear task definition should include:

  1. The objective.

  2. The inputs.

  3. The expected output.

  4. The success condition.

  5. The boundary where the system must stop.


If the task is vague, the harness has nothing solid to enforce. The model can still sound confident, but the product will have no clear way to know whether the run succeeded.


2. Context

Context is the information the model can see for the current task: user instructions, files, database rows, messages, product rules, prior decisions, search results, tool outputs, or examples of good work.


Context is not the same thing as memory. Context is what the system brings into this run. Memory is what the system preserves across runs.


Good context selection is one of the most important parts of the harness because the model can only reason from what it receives. Too little context makes the output shallow; too much can confuse the model, raise costs, slow the system down, or expose information that was not needed.



A good harness asks:

  1. What does the model need to know?

  2. Where should that information come from?

  3. How do we know it is current?

  4. What should be excluded?

  5. What should the model do if context is missing?


The wrong context can make a polished answer dangerous. In real agent builds, many failures that look like "the AI got it wrong" are actually context failures: the system used an old file, missed the current policy, or treated a partial record like the whole truth.


3. Tools

A tool is an outside capability the system can use. It might search files, read a calendar, query a database, open a browser, create a ticket, draft an email, send a message, update a record, run code, or charge a payment method.


Tools are where AI systems become more than text generators. They are also where risk rises.

Every tool gives the system some kind of authority. Reading a file is authority. Drafting a message is more authority. Sending the message is more serious. Deleting data, spending money, changing a system of record, or contacting a person are different classes of action.


A good harness treats a tool list as a permission model. It asks:

  1. What can this tool read?

  2. What can this tool change?

  3. What inputs does it require?

  4. What output does it return?

  5. What errors can it produce?

  6. Does it need approval before use?

  7. Does it need approval before the result is applied?


Tools should be narrow enough to understand, because broad tools create broad failure.


4. Permissions

Permissions define what the system is allowed to do. A useful harness does not treat every action as one big "allowed" or "not allowed" switch. It separates low-risk preparation from actions that affect people, records, money, privacy, or public surfaces.


The useful ladder is:

  1. Read.

  2. Search.

  3. Summarize.

  4. Draft.

  5. Recommend.

  6. Change.

  7. Send.

  8. Delete.

  9. Spend.


These are not the same level of risk. An AI system that can read a customer thread is different from one that can reply to the customer. A system that can draft a database update is different from one that can commit the update. A system that can recommend a refund is different from one that can issue it.


The harness should separate preparation from authority. The system can often gather information, prepare a draft, and show evidence automatically. But when the next step affects another person, changes a record, publishes information, spends money, deletes data, or uses private information in a sensitive way, the system should often stop for approval.



The approval gate is not friction. It is product design.


5. Memory and State

Memory is information the system keeps across tasks. State is information about the current task. They are related, but they are not the same thing.


Memory might include user preferences, recurring instructions, durable project facts, prior decisions, or stable account rules.


State might include the current step, files already checked, tool calls already made, open questions, missing data, errors, partial outputs, approval status, or whether the task is complete.


Memory helps the system avoid making the user repeat stable context. State helps the system avoid acting like every step is the first step.


A good harness treats memory as a curated system, not a junk drawer. It should define what can be stored, what should expire, what needs consent, what is too sensitive to keep, and how old memories are corrected.


Bad memory makes systems confidently stale. Bad state makes systems lose the thread.


6. Evidence

Evidence is the material that supports the output: source passages, file links, database rows, tool results, timestamps, screenshots, logs, or citations. Evidence matters when the user needs to trust a result.


If an agent summarizes a customer account, it should show what it used. If it recommends a business decision, it should show the facts behind the recommendation. If it drafts a message based on a policy, it should point to the policy. If it says a document is outdated, it should show the date or source that makes it outdated.


Without evidence, the user has to trust the shape of the answer, which is a weak kind of trust.


A harness should define:

  1. Which claims need evidence.

  2. What kind of evidence counts.

  3. Where evidence should appear.

  4. What the system should do when evidence is missing.

  5. How a reviewer can inspect the source.



Evidence turns "the AI said so" into something a person can check.


7. Traces

A trace is a record of what happened during a run. In normal software, traces show the path a request takes through an application. In an AI system, a trace can show the path through a task: inputs, tool calls, model calls, guardrails, handoffs, errors, approvals, outputs, and timing.


A trace does not need to expose private reasoning or every internal detail.

It does need to answer operational questions:

  1. What did the system receive?

  2. What context did it use?

  3. Which tools did it call?

  4. What did those tools return?

  5. What failed?

  6. What changed?

  7. Where did a human approve or reject the next step?

  8. What final output was produced?


Traces make the system inspectable. Without traces, failure turns into folklore. People remember that "the AI messed up," but they cannot reconstruct what happened. That makes the system hard to debug, hard to trust, and hard to improve.



8. Evaluations

An evaluation, often shortened to "eval," is a structured test of whether the system behaves the way it should.


Benchmarks test model performance in general. Workflow evals test whether this product behaves correctly on this task.


That distinction matters because an AI agent may use a strong model and still fail because it selected the wrong file, skipped approval, called the wrong tool, ignored a failed lookup, or failed to attach evidence. A model benchmark will not catch all of that. The harness needs evals for the workflow.


Useful evals include:

  1. Normal cases where the task should succeed.

  2. Missing-context cases where the system should ask for more information.

  3. Wrong-context cases where the system should reject irrelevant material.

  4. Permission cases where the system should stop before acting.

  5. Tool-failure cases where the system should retry, recover, or escalate.

  6. Evidence cases where the system should cite sources.

  7. Regression cases where a fixed failure should stay fixed.


Evals make improvement less mystical. They turn "it seems better" into "it passes more of the cases that matter."


9. Recovery Paths

A recovery path is what the system does when something goes wrong. Something will go wrong: a file will be missing, a tool will time out, a source will conflict with another source, a user will ask for something ambiguous, a database row will not match the expected shape, a policy will be unclear, or the model will produce an output that fails a check.


A weak harness treats failure as an exception. A strong harness treats failure as part of the workflow.


Recovery paths may include:

  1. Retry the tool call.

  2. Ask the user for missing information.

  3. Mark the task as blocked.

  4. Save partial work.

  5. Escalate to a human.

  6. Roll back a change.

  7. Create a review item.

  8. Add the failure to the eval set.



Recovery is what separates a demo from a product. A demo can work on the happy path. A product has to survive the road.


A Weak Harness

Imagine an AI assistant that can read a customer's email and send a reply. The user says:

Tell them we can do it.

If the system immediately writes and sends the email, the model may produce a polished response. The harness is still weak.


The system may not know what "it" means. It may not know whether the promise is accurate, whether the customer is under contract, or whether pricing, timing, legal review, inventory, or account status matters. It may not preserve a trace. It may not show evidence. It may not stop for approval.


The visible output might look confident, but the product behavior is immature.


A Stronger Harness

A stronger version of the same system behaves differently. It might:

  1. Identify the customer thread.

  2. Retrieve relevant account history.

  3. Check the current policy or contract.

  4. Notice missing pricing approval.

  5. Draft a response.

  6. Attach source notes.

  7. Flag uncertainty.

  8. Stop before sending.


The output might include:

  1. A short summary of the customer's request.

  2. A draft reply.

  3. The records or passages used.

  4. A warning that one fact is not confirmed.

  5. A request for human approval before sending.


The model is still doing important work, but the value comes from the whole system: context, tools, permissions, evidence, approval, trace, and recovery. That is the harness.



The Minimum AI Harness Spec

If you are evaluating an AI agent or planning to build one, start with this spec. If these questions do not have clear answers, the product is probably not ready for serious use.



1. Job

What exact job is the system supposed to do? Write it as a task, not a vibe.

Weak: "Help with operations."


Stronger: "Review new support threads, identify urgent ones, draft replies with source notes, and stop before sending."


2. Inputs

What information can the system use? Name the sources: files, messages, database rows, search results, account history, policy docs, user instructions, or tool outputs. Also name what it should not use.


3. Context Rules

How does the system choose the right context? How does it detect stale, missing, conflicting, or irrelevant context? What should it do when the context is not enough?


4. Tools

What tools can the system call? For each tool, define whether it can read, draft, recommend, change, send, delete, or spend. If a tool can change the world, it needs a stronger boundary.


5. Permissions

What can the system do automatically? What requires approval? Where are the approval gates? Who approves?


6. Memory

What does the system remember across tasks? What should it forget? Who can correct memory when it is wrong? What private or sensitive information should never be stored?


7. State

What does the system track during a run? Can it tell what step it is on, what has already happened, what is blocked, and what still needs review?


8. Evidence

What claims need evidence? What evidence should the system attach? Can a reviewer inspect the source without hunting for it?


9. Traces

Can the team reconstruct what happened after a run? Does the trace show inputs, tools, outputs, errors, approvals, and final artifacts? Does it avoid exposing sensitive material that does not need to be logged?


10. Evals

How is the system tested? Does the eval set include normal cases, edge cases, missing-context cases, permission cases, tool failures, evidence checks, and regressions?


11. Recovery

What happens when the system cannot finish? Can it ask for help, retry safely, save partial work, escalate, roll back, or mark the task blocked?


12. Owner

Who is responsible for reviewing failures and improving the harness? If nobody owns the harness, the system will decay.


Common Harness Mistakes

The most common mistake is treating the prompt as the whole harness. A prompt matters. It can define behavior, format, tone, tool rules, and stopping conditions. But a prompt cannot replace permissions, evals, traces, evidence design, recovery paths, or product boundaries.


The second mistake is giving the model too much context.

More context feels safer because the model has more material. But too much context can make the system slower, noisier, more expensive, and less private. Good context is selected, not dumped.


The third mistake is giving the system broad tools before the job is proven.

Start narrow. Let the system read before it writes. Let it draft before it sends. Let it recommend before it changes records. Expand authority only when the harness can prove the system behaves well.


The fourth mistake is skipping traces. If the team cannot see what happened, it cannot debug the system. A final answer is not enough; the product needs a run record.


The fifth mistake is testing only the happy path. Happy-path demos are cheap. Real products need tests for missing data, wrong data, tool failure, permission boundaries, evidence requirements, and recovery.


The sixth mistake is hiding uncertainty. Good harnesses surface uncertainty. Weak harnesses bury it under confident prose.


The seventh mistake is letting memory become permanent clutter. Memory should be intentional, correctable, and limited. A system that remembers everything will eventually remember things that are wrong, stale, private, or irrelevant.


What The Harness Does Not Solve

A harness does not make every AI product useful. It does not fix an unclear task, make bad data good, turn a weak model into a strong one, remove the need for product judgment, guarantee safety, or mean the system should act without human review.

A harness gives the model a better operating environment. That is powerful, but it is not magic.


If the job is not worth doing, the harness will not make it valuable. If the user cannot judge the result, the harness needs more evidence or more review. If the action carries serious consequences, the harness should slow down, not speed up.


How Buyers Should Use This Idea

When a vendor says they have an AI agent, do not start by asking which model it uses. Ask about the harness.


Ask:

  1. What context does it use?

  2. How does it know the context is current?

  3. What tools can it call?

  4. What can those tools change?

  5. Where does it stop for approval?

  6. What evidence does it show?

  7. What does it remember?

  8. What gets traced?

  9. What evals does it pass?

  10. What happens when it fails?


The answers will tell you more than the model name. A serious team will have answers.


An immature product will drift back to demos, prompts, and model capability.


The Main Lesson

The model supplies capability. The harness supplies control.


The model can generate, classify, summarize, plan, and call tools. The harness decides what the model sees, what it can do, what it must prove, what gets logged, what gets tested, when it must stop, and how the system recovers. That is why the harness is the product.


Without a harness, an AI system is mostly a performance: input goes in, fluent output comes out. With a harness, the system becomes inspectable, testable, recoverable software. That is the difference between an impressive demo and a product someone can trust.


 
 
bottom of page