Plain-terms companion to integration-architecture.md: Automation Hub as the internal action warehouse, Tool Hub as the smart front desk (progressive disclosure + per-user permission filtering + audit) running as a central service, and where the MCP Gateway (Arcade, per-user OAuth for outside tools) and AI Gateway (config-only model toll booth) plug into existing seams. Source-verified against servicetitan/tool-hub + automation-hub @ master.
6.2 KiB
How the stack works — Automation Hub, Tool Hub, and the two gateways (plain language)
A plain-terms companion to the technical seam map in
categories/cat3-access-policy/integration-architecture.md. Same architecture, no jargon. Grounded inservicetitan/automation-hub@ master andservicetitan/tool-hub@ master (source-verified 2026-06-22).
The one-paragraph version
Automation Hub is the warehouse of ~5,000+ things an agent can do inside ServiceTitan. Tool Hub is the smart front desk that makes that giant catalog usable for an AI and acts as the single bouncer (per-user permissions + audit). The MCP Gateway (Arcade) plugs in beside Automation Hub to add outside tools (GitHub, Slack, Google) with per-user login — the one thing neither of the others can do. The AI Gateway is one toll booth that every model/AI call passes through (keys, cost, rate limits), added by configuration, not a rebuild.
1. Automation Hub — the warehouse of actions
Where ServiceTitan keeps everything an agent can actually do: "create a job," "look up a customer," "send an invoice" — 5,000+ actions today.
- It holds the catalog (every action + what inputs it needs) and does the execution (actually calls ServiceTitan's internal APIs).
- Its login is ServiceTitan-identity only. It can act as a ServiceTitan user/bot, but it has no way to log into GitHub / Slack / Google on your behalf — and that's deliberate (AH's roadmap lists third-party OAuth as a non-goal).
AH = the internal action warehouse. Great at ServiceTitan, blind to outside SaaS.
2. Tool Hub — the smart front desk
Handing an AI the raw list of 5,000 tools (heading to 200,000) blows its context window and it picks the wrong tool. Tool Hub is the front desk between the agent and the warehouse. It does three things:
- Aggregates — every source (AH today, others later) becomes one clean, unified list. The agent sees one front desk, not many warehouses.
- Discovers progressively — the agent never reads the whole catalog. It asks:
- "What tools do something like X?" →
search_toolsreturns a short shortlist (names + one-line summaries only). - "How exactly do I use this one?" →
get_tool_detailsreturns full instructions for just the 1–3 it actually wants. - "Run it." →
execute_tool. - (Plus
resume_execution,list_namespaces,cancel_execution.) It finds tools by meaning, not keywords — semantic search over a vector database (pgvector + HNSW), embedded by Voyage, descriptions enriched by Claude, then reranked.
- "What tools do something like X?" →
- Permission-filters — before the shortlist ever reaches the agent, it removes any tool you're not allowed to use. You can't see, let alone call, what you don't have access to.
Tool Hub = the brain and the bouncer. It runs as its own central service (two autoscaled Kubernetes deployments + an admin UI), not a sidecar — and it's the single place policy, permissions, and audit live.
The flow so far:
Agent → Tool Hub (front desk: search · filter · decide) → Automation Hub (execute) → ServiceTitan APIs
3. Where the two gateways fit
Two real gaps remain. Each gateway plugs one.
MCP Gateway (Arcade) — the gap = outside tools
Tool Hub + AH are great for internal ServiceTitan actions, but neither can log into
GitHub/Slack/Google as you. That's Arcade's one job: a second warehouse for outside SaaS
tools, with per-user login built in. Tool Hub already has an empty "plug in another source"
slot (the mcp_proxy adapter), so Arcade plugs in right beside Automation Hub:
flowchart LR
Agent["LLM Agent"]
TH["Tool Hub<br/>(brain + bouncer:<br/>search · per-user filter · audit)"]
AH["Automation Hub<br/>(internal actions)"]
AR["MCP Gateway — Arcade<br/>(outside tools + per-user login)"]
ST["ServiceTitan APIs"]
SaaS["GitHub · Slack · Google"]
Agent --> TH
TH --> AH --> ST
TH --> AR --> SaaS
classDef new fill:#ffe8cc,stroke:#e8860c,stroke-width:2px,color:#000;
class AR new;
Tool Hub stays the single front desk and bouncer for both paths. The only difference: for an outside tool it hands off to Arcade, and Arcade handles the messy per-user OAuth login (that's the "authorize GitHub" pop-up). Tool Hub never stores your GitHub token — Arcade does.
AI Gateway — the gap = the model calls themselves
Everything above quietly uses AI models: semantic search uses Voyage embeddings, catalog descriptions are written by Claude, the agent itself calls a model to think. The AI Gateway is one toll booth all of that passes through — so keys, cost tracking, rate limits, and routing live in one place.
The key point: this is configuration, not a rebuild. Every component already calls models through a swappable address; you just repoint those addresses at the gateway.
flowchart LR
A["Agent thinking"] --> GW
B["Tool Hub — search (Voyage)"] --> GW
C["Tool Hub — descriptions (Claude)"] --> GW
GW["AI Gateway<br/>(one toll booth: keys · cost · limits)"] --> P["Anthropic · Voyage · OpenAI"]
classDef new fill:#ffe8cc,stroke:#e8860c,stroke-width:2px,color:#000;
class GW new;
4. The whole picture in one breath
| Piece | What it is (simple) | The gap it fills |
|---|---|---|
| Automation Hub | Warehouse of 5,000+ internal ServiceTitan actions; executes them (ST-login only) | — (the base) |
| Tool Hub | Smart central front desk: makes the catalog usable for an AI (search → details → run) + the one bouncer (per-user filter + audit) | Scale + governance |
| MCP Gateway (Arcade) | Plugs in beside AH to add outside tools (GitHub/Slack/Google) with per-user login | The thing neither AH nor Tool Hub can do |
| AI Gateway | One toll booth for all model/AI calls | One place for keys/cost/limits — added by config |
The design win: adding both gateways is mostly plugging into seams that already exist — Tool Hub stays the single authority, Automation Hub is untouched, and the only genuinely new capability (logging into third-party apps as you) lives inside Arcade.