The model is not the product. The harness is.
Everyone building agents has access to roughly the same models. You can call the same endpoints we do, today, for the same price. So if the model were the product, there would be no product, only a thin layer of branding over somebody else's API.
What actually separates an agent that works from one that demos well is the harness: everything around the model that decides what it knows, what it can do, whose authority it acts with, and what happens when something goes wrong.
What a harness actually contains
Tool selection under pressure. Giving a model fifty tools does not give it fifty capabilities. Past a certain count, selection accuracy degrades and the model starts reaching for plausible-sounding wrong tools. The work is in narrowing the set to what this task needs, which is a retrieval problem, not a prompting problem.
Knowledge that is actually retrieved. An agent that "has" a knowledge base but pulls the wrong three chunks is worse than one with no knowledge base, because it is now confidently wrong. Retrieval quality is the difference, and it is measurable rather than a matter of taste.
Credentials with a clear owner. The moment more than one person uses an agent, every tool needs an unambiguous answer to whose account it acts on. Get this wrong and it is not a bug, it is an incident.
A runtime that outlives the tab. Real work takes minutes. If your run dies when the user closes their laptop, you have built a demo.
Guardrails that fail loudly. The dangerous failure is not the crash. It is the run that completes, looks fine, and did the wrong thing quietly.
None of this is model work. All of it decides whether the agent is useful.
Why "just use a framework" is a real option, honestly
You can build every one of those yourself. The frameworks are good, the patterns are documented, and if your requirements are unusual then assembling your own harness is the right call. We are not going to pretend otherwise.
The question is what that costs. Not the first version, which is a weekend. The cost is the second month: credential rotation, a tool that silently stopped working, retrieval that degraded as the knowledge base grew, a run that died at 2am with no trace of why. That is the actual work, and it does not appear in the tutorial.
Our bar is specific: two hours on Kavela should beat two hours of wiring your own harness by hand. Not two hours against two months. If we cannot win the first afternoon, the pitch does not hold.
Why this shapes what we build
It explains a set of choices that would otherwise look arbitrary.
We do not compete on how many tools exist. A tool the agent selects wrongly is worse than absent, so counting them is a vanity metric.
We do not expose which model powers a tier. That is remappable, and if we named it in the interface the copy would be silently wrong the day we changed it.
We evaluate against real production sessions rather than benchmark sets, because the failures that matter are the ones that happen to actual users on actual tasks.
We treat "the run survived the tab closing" as a headline feature rather than plumbing, because it is the difference between an agent that can do real work and one that cannot.
The test
If you are evaluating agent platforms, ignore the demo. Every demo works.
Ask instead: what happens when the credential expires, when the knowledge base has ten thousand entries instead of ten, when two users hit it at once, when the job takes twenty minutes, when a tool call fails halfway through. The answers to those questions are the harness, and the harness is the product.