Platform
Reference architecture
Six layers, one boundary, no outbound dependency. Layer contents change with your constraints; the shape rarely does.
01Infrastructure
GPU nodes under Kubernetes with the device plugin and topology awareness configured, block and object storage, and a network segment with no outbound route.
Instead, when · On smaller estates we have run single-node serving under systemd with no orchestrator at all. If you have two GPUs and one model, Kubernetes is overhead you will pay for at 03:00.
02Serving
An inference engine (vLLM or SGLang, or NVIDIA NIM where its curated model profiles and validated configurations are worth the packaging), a router that sends each task to the smallest model that handles it, and prompt and KV caching.
Instead, when · Multi-node coordination through Ray Serve when a model genuinely does not fit on one node, or when one cluster must host several models. Not before. It is a distributed system you will have to operate.
03Data & retrieval
Hybrid search with a reranking stage, a document store that carries entitlement metadata, and connectors that record provenance on ingest.
Instead, when · Where the corpus is small and stable, a well-tuned lexical index with no vectors at all. We have replaced vector search with BM25 and a reranker more than once, to the client’s benefit.
04Agent runtime
A planner executing a declared graph over typed state, a tool broker exposing typed contracts over MCP, a policy engine enforcing least privilege, tiered memory, and a state store that checkpoints at node boundaries.
Instead, when · For single-step tasks, no agent runtime at all. A retrieval-grounded call with a good evaluation set is often the correct architecture and is much easier to operate.
05Governance
Identity from your existing directory, authorisation per agent rather than per system, an append-only audit log in a framework-independent format, the evaluation harness, and OpenTelemetry throughout.
Instead, when · Nothing. This layer is not optional and it cannot be added later without rebuilding the ones above it.
06Interfaces
APIs protected by your identity provider, an operator console for traces and approvals, integrations into the systems people already use, and scheduled batch paths.
Instead, when · Where a workflow already exists in an established tool, we integrate into it rather than building another place for people to look.
Inside the agent runtime
The planner executes a graph you can read. Every step that needs a capability goes through the tool broker, which asks the policy engine first. Every transition is written to the audit log, which is also what the evaluation harness replays.
Where the protocols sit
MCP standardises how an agent reaches tools and context. A2A standardises how agents delegate to one another. They are complementary layers rather than competing choices, and most systems need the first without the second.
Where would this break for you?
Every estate has something a reference design does not survive. Hardware you already own, a latency budget you cannot miss, a network with no route out. Tell us what yours is and we will go through it properly.