Providers change. Host apps change. Orchestration changes. Isolate them or pay forever.
The split between providers, adapters, and core is the whole reason the Universal AI Agent scales across apps.
The Universal AI Agent backend is split into three folders:
providers/ — How to talk to a given model vendor. Changes when an SDK updates or a new vendor lands.adapters/ — What a given host app exposes (function catalog + handlers). Changes when an app gains or loses a capability.core/ — How the agent orchestrates a turn. Changes when the orchestration itself gets smarter.Without this split, every new app means rebuilding auth, rate limiting, audit logging, and tool-calling shape translation. With it, a new app is an adapter file and a config entry — usually under an hour of work.
GET /api/agent/applications
GET /api/agent/:appId/catalog
POST /api/agent/:appId/chat
That's the entire public surface.
If your AI integration leaks vendor names into product code, you're building a feature. If it doesn't, you're building a platform.