BYOA.TOOLS

Bring your own agent

Stop building
a bot nobody
wants to learn

Publish your tools, your policies and your failure semantics. Let the customer's own agent do the work it already knows things yours never will.

See what you publish Why it beats your bot
6Copies of you
6Surfaces
6Passwords

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.

Repetition

You are the integration layer

Nobody built the connective tissue between these companies, so the customer does it by hand, every time, from memory.

Staleness

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.

Exposure

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.

Division of responsibility
ConcernTheir agentYour surface
Long-term relationship and preferencesOwns
Cross-company planningOwns
Facts, prices, policiesConsumesOwns
Workflow and confirmation rulesFollowsPublishes
Actions against your systemsRequestsExecutes
AuthorizationRequests on behalfEnforces
What actually happenedExplainsAttests

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.

  1. 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.
  2. It can reach the devices. It queries the speaker directly, pulls the firmware revision, and reads the actual channel it landed on.
  3. 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.
  4. 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.
  5. 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.