Any stack

Build your own AI agent adapter (any stack)

Support desks, internal tools, and multi-system single-tenant orchestration. Implement five methods in-process in TypeScript or out-of-process over HTTP in any language — C#, PHP, Python.

Auth method: jwt · apiKey · oauth2 (per host registration)

Every host application plugs into Cambiary through the same two seams, so there is no per-vertical fork to maintain. The entire backend surface is a five-method HostAdapter: validateToken, getContext, getPermissions, executeTool, and pushNotification. If your stack can verify a token and call its own services, it can implement the adapter.

You can implement it two ways. In-process: a TypeScript class implementing HostAdapter, registered in the platform deployment — how the reference adapter works. Out-of-process: expose four HTTP endpoints (context, permissions, tools/{toolId}/execute, notifications) and register their base URL. That is how a C#, PHP, or Python app integrates without running Node in-process. A support desk is the simplest shape — one out-of-process adapter, a single persona.

Because a single tenant can register more than one host app, the same pattern scales to multi-system orchestration: a scheduling app, time tracking, and a mobile check-in can share one governance and audit layer, with the agent coordinating across them. The surface you build against does not grow as the platform grows, because your app plugs into fixed seams.

Highlights
Five methods — the whole backend surface
In-process TypeScript or out-of-process HTTP in any language
One tenant can register multiple host apps for cross-system orchestration
No platform-core changes, ever
How the integration works

The integration path.

01

Pick a hostApp id (e.g. "zendesk", "shifty", or your own).

02

Frontend: embed <agentic-panel> and write a buildHostContext() that maps the current screen to the generic, references-only contract.

03

Backend: implement the five HostAdapter methods over your existing auth and services — in-process TypeScript or out-of-process HTTP in any language.

04

Define tools: name each action (tool.<verb>_<noun>.execute), assign a risk level, and map it to your permissions.

05

Register the host (tenantId, origin, adapterUrl, authMethod) and author host-neutral workflow templates for the intents you want the agent to handle.

Worked example

The five-method HostAdapter interface (TypeScript)

interface HostAdapter {
  // Your existing auth — JWT verify, session lookup, or API-key check.
  validateToken(token: string): Promise<{ valid: boolean; userId?: string }>;

  // Look up an entity and return a generic, references-only HostContext.
  getContext(token: string, scopeRef: ScopeRef): Promise<HostContext>;

  // Map your roles/ACL to platform tool-permission strings.
  getPermissions(token: string): Promise<string[]>;

  // Call your real services. Must honor the idempotencyKey.
  executeTool(input: {
    toolId: string; args: Record<string, unknown>;
    idempotencyKey: string; correlationId: string;
  }): Promise<{ ok: boolean; data?: unknown; error?: string }>;

  // Deliver a message through your app's notification channel.
  pushNotification(input: {
    userId: string; title: string; body: string;
  }): Promise<void>;
}
Honest note

This is a documented integration approach with worked code — not a pre-built, install-and-go production connector. Governance, the adapter SDK, idempotency, and audit are built; the gateway-to-registered-adapter write dispatch is still maturing. See the full build-status honesty box →

Start your Build your own adapter integration.

The adapter SDK and worked examples are in the docs. We'll walk your team through the two seams, the governance gate, and this path end to end.