Architecture

One layer every agent inherits.

Build agents one at a time and you get five sets of credentials, five logging schemes and no way to answer "what did it do?". We build the shared layer first.

ChannelsWhere people meet it
Web appSlack / TeamsEmailVoiceEmbedded in your CRMAPI
↓
OrchestrationThe VAVITA layer
Intent routerPlannerAgent registryTool registryHuman-in-the-loop gatesRetry & fallback
↓
CapabilitiesWhat it can do
MCP serversREST / GraphQL adaptersWebhooksScheduled jobsBrowser automation (last resort)
↓
Data & memoryWhat it knows
Vector indexMySQLDocument storeConversation memoryImmutable audit log
↓
GovernanceWraps everything
Auth & scopesPII detection & redactionEval suitesCost ceilingsRate limitsTracingData residency

Why a shared layer

Add the fifth agent and it inherits auth, logging, evals and cost controls for free. Without it, agent five is a fifth security review.

Why MCP

A tool written once is available to every agent and every model you might switch to later. It's the difference between an integration and a dependency.

Why human gates

Placed at irreversible actions — money out, contracts sent, records deleted. Everywhere else the agent proceeds and logs.


Trace

Every run is reconstructable.

A sample of what your audit log records for a single agent run.

run/8fa2-invoice-exception
14:02:11  trigger  webhook · accounting.invoice.exception #INV-40912
14:02:11  route    agent=finance.reconciliation · confidence 0.94
14:02:13  tool     erp.purchase_orders.search(supplier:"Northbay") → 3 results
14:02:15  tool     docs.retrieve("Northbay supply agreement") → 2 citations
14:02:19  reason   matched PO-8871 · variance £412 · within tolerance
14:02:19  gate     value > £250 → approval requested · j.okafor@
14:07:44  approve  j.okafor@ · "matches contract clause 4.2"
14:07:45  tool     erp.invoices.match(INV-40912, PO-8871) → ok
14:07:45  done     4.2s model time · $0.031 · 2 writes · reversible

Want this walked through properly?

We'll go through the architecture against your systems and tell you which parts you already have.