Six companies, one conversation, six times
Planning a week away means telling United, Delta, Airbnb, Marriott, VRBO and Wander the same things: who's coming, where you're going, what you'll eat, how you pay, which seat you want.
Every one of those agents is a stranger you have to brief. None of them talk to each other. All of them keep what you said.
You are the integration layer
Nobody built the connective tissue between these companies, so the customer does it by hand, every time, from memory.
Nothing updates together
Change a card, a diet, a name. Now recall which six systems hold the old value and which of them you actually got around to fixing.
Copies you can't recall
Every disclosure is permanent and unrevocable. The customer has no ledger of what they said, to whom, or how long ago.
Context does not survive the handoff
The obvious fix let the customer's agent brief each company's agent trades one problem for a worse one. Passing context agent-to-agent degrades it. Detail is dropped, intent is paraphrased, and by the third hop the receiving system is acting on a summary of a summary.
Delegation between agents is a lossy channel. An architecture that depends on it inherits the loss.
BYOA removes the hop. The customer's agent talks to your systems directly, against a surface you publish and control.
Own the environment, not the agent
A company-owned agent bundles four things that don't need to live together: what you know, what you can do, how you do it, and how you learn. Only the fifth the customer's history, preferences and standing context needs to sit with the customer. So put it there.
| Concern | Their agent | Your surface |
|---|---|---|
| Long-term relationship and preferences | Owns | |
| Cross-company planning | Owns | |
| Facts, prices, policies | Consumes | Owns |
| Workflow and confirmation rules | Follows | Publishes |
| Actions against your systems | Requests | Executes |
| Authorization | Requests on behalf | Enforces |
| What actually happened | Explains | Attests |
Their agent is a better support engineer than yours
Not because it's a better model. Because it was in the room for everything that led up to the problem.
The ticket: the speakers in the den cut out whenever the TV is on.
- It set up this house's network last spring, so it already knows the SSID layout, which band the den is on, and that the mesh node behind the TV was added later.
- It can reach the devices. It queries the speaker directly, pulls the firmware revision, and reads the actual channel it landed on.
- It finds the receipt. A search of the customer's own mail turns up a range extender bought in March that nobody mentioned, broadcasting on the same channel.
- It asks you the one question it can't answer itself whether your firmware has a known conflict on that band and you answer it from a published resource, with a version and a rule ID.
- It writes the answer the way this customer likes to read it: short, dense, technical, no preamble.
Your agent could not have done step one, two, three or five. It would have opened with "have you tried restarting the device."
What you publish
Four layers, all machine-readable, all versioned. Serve them over MCP, an OpenAPI description, or both. None of it requires knowing which agent is on the other end.
Capabilities
Typed tools with input and output schemas, side-effect class, required scopes, idempotency and retry semantics, and whether the action needs explicit human confirmation.
Knowledge
Canonical policies rather than copies buried in old help articles. Effective dates, supersession, jurisdiction, and a stable rule ID any answer can point back to.
Procedure
Your workflow as states and transitions, not prose. Prerequisites, valid next steps, where a human has to say yes, and how to escalate.
Outcomes
Structured reason codes with evidence, not a 400 and an apology. An agent that gets told exactly why can correct itself instead of guessing.
{
"outcome": {
"state": "blocked",
"reason_code": "POLICY.RETURN_WINDOW_EXPIRED",
"retryable": false,
"evidence": [
{ "resource": "policy/returns",
"version": "2026-08-01",
"rule": "RETURN-14" }
]
}
}
You still get to improve
The usual objection: give up the agent and you give up the feedback loop. You don't.
You already observe every request that reaches you. Which tool was called, which schema failed, which policy version was cited, how many attempts it took, whether the task finished. That's a sharper signal than a transcript, and it arrives already categorized.
Aggregate it. When one in three attempts at a task class dies on the same missing parameter, that is a defect in your schema and you found it without anyone reading a customer's conversation.
The thing you improve is the surface. Every agent that touches it gets better at once, including the ones that haven't been built yet.
Works with
BYOA covers what a company publishes. Two adjacent problems have their own answers.
Scoped delegation
Cryptographic authority bound to a task, so an agent carries exactly the permission the job needs and nothing that outlives it.
tesseraPortable provenance
Signed, chained documents that stay verifiable after they leave you so a claim can be checked rather than trusted.