Platform
Reference architecture
Our reference architecture is arranged in six layers within a single trust boundary and operates without any outbound network dependency. The technologies used within each layer vary according to your environment, while the overall structure remains consistent across engagements.
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 control-flow graph that can be inspected directly. Any step requiring a capability is routed through the tool broker, which consults the policy engine before granting access. Every transition is written to the audit log, which also provides the input replayed by the evaluation harness.
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.
Discuss how this applies to your estate
Every environment contains conditions that a reference design has to be adapted to, whether that is existing hardware, a fixed latency budget or a network with no outbound route. Tell us about yours and we will work through the implications with you in detail.