Phase 0 — De engine: linkcpp, een besturingsvlak voor inferentie-engine
inferentie-engine levert een capabel RPC-datavlak maar geen besturingsvlak. linkcpp voegt de ontbrekende helft toe — ontdekking, planning, start en gateways — rond binaries die dicht bij upstream zijn gebouwd.
Alles waar Kvasir op draait begint hier. linkcpp is een besturingsvlak met beschikbare broncode (Business Source License) rond het RPC-datavlak van de inferentie-engine: het draait grote AI-modellen over meerdere GPU's en machines met ggml-rpc-server- / llama-server-binaries die dicht bij upstream zijn gebouwd. Het datavlak bevat slechts een kleine set patches — al het overige dat linkcpp toevoegt is orkestratie.
Een datavlak zonder besturingsvlak
inferentie-engine kan een model al via RPC over machines verdelen — maar iemand moet de GPU's ontdekken, beslissen welke lagen waarheen gaan, de juiste workers met de juiste budgetten starten, controleren dat elke node hetzelfde protocol spreekt, en een API blootstellen die ontwikkelaars echt kunnen aanroepen. Dat met de hand doen voor één cluster is een klus; het doen voor een open netwerk van andermans apparaten is onmogelijk. Die coördinatielaag is linkcpp.
Eén hub, op upstream gebaseerde workers, standaard gateways
Verzoekstroom — de hub orkestreert, op upstream gebaseerde binaries rekenen.
browser / SDK → hub :19000 # FastAPI control plane (single Docker image) → GPU-less llama-server master # per-controller, :8080+ → ggml-rpc-server workers # local slots, remote units, managed agents

- Drie manieren om aan te sluiten: vaste lokale node-slots met bewerkbare VRAM/RAM/CPU-budgetten; remote units — registreer een andere hub en importeer zijn nodes; en beheerde node-agents — worker-only services die via simpel request/response-HTTP aansluiten, bewust zonder persistente stream, zodat ze simpele LAN/VPN-routering overleven.
- Compatibiliteitsgating is eersteklas: elke unit, node en agent rapporteert een protocol-/runtime-pack-identiteit plus backend-details. Mismatches in unit, runtime-pack, inferentie-engine-revisie en RPC-ABI worden hard geblokkeerd vóór bind, plan, load of infer — backend-verschillen (CUDA/Metal/Vulkan/CPU) worden als capaciteiten bijgehouden, niet als afwijzingen.
- De planner leest GGUF-metadata en produceert aaneengesloten laagplaatsing per node,
--tensor-split, KV-cache-/laag-/expert-VRAM-schattingen, en optionele expert-FFN-offload naar RAM. - Gateways: elke controller stelt OpenAI-compatibele (
/v1/chat/completions,/v1/models) en Anthropic-compatibele (/anthropic/v1/messages|models) endpoints beschikbaar, gedragen door hetzelfde geladen model — bestaande clients werken ongewijzigd.
Deze bewuste scheiding — een datavlak dat dicht bij upstream blijft, onder een besturingsvlak met beschikbare broncode — is waar al het latere op bouwt: de ring-runtime, de laagmarkt en uiteindelijk de expertzwerm zijn allemaal besturingsvlak-evoluties over dezelfde rekenkracht.