The vendor lock that kills AI builds is not the one in the contract. It is the one in the codebase. A team picks HubSpot, wires the CRM into thirty agent tools, and discovers six months later that the right CRM was Salesforce. The migration takes a quarter, the agents regress, and the team concludes that AI is fragile. The agents were not fragile. The integration boundary was missing.
We standardize the boundary, not the vendor. Every external system the OS touches sits behind an internal contract: the same shape of get_lead, update_opportunity, send_message, regardless of whether HubSpot, Salesforce, Attio, or a custom warehouse is on the other side. The agent layer talks to the contract. The contract talks to the vendor. Vendors become components. Agents stay stable.
What goes in the boundary. Authentication. Schema translation. Rate limiting. Idempotency. Retries with backoff. Reverse contracts (see the reversibility post). Error semantics, normalized to a small enum the agents understand. Everything that does not change when the vendor changes goes here. Everything that does change lives in a thin adapter.
What stays out of the boundary. Business logic. Prompt content. Decision rules. The boundary is mechanical. If it starts knowing about your sales process, it has drifted out of scope and you have made future swaps harder, not easier.
We use Nango and Unipile for the connector mechanics where they fit, custom adapters where they do not. The choice between the two is not the interesting decision. The interesting decision is that the boundary exists at all, and that every agent in the stack is forced to go through it. No agent reads HubSpot directly. Not even for read-only queries. The discipline is the leverage.
The cost of the boundary is real. It adds a thin layer of translation, a small ongoing maintenance tax, and a temptation to bypass it when a deadline is close. The cost of not having it is bigger and lands later. The first migration is the one that pays for the discipline.
When the next CRM, warehouse, or outreach tool wins the category in 2027, the OS does not notice. The adapter changes. The contract holds. The agents keep running. That is what swappability looks like in production.