Naar inhoud
DienstenProjectenInvesteringAanpakOver LynuxisBlog Plan gesprek
Case · Eigen platform · Agentic AI

Jarvis v3 — eigen agentic AI-infrastructuur

Iedereen die AI-agents heeft gebouwd herkent het: 80% van de tijd zit in de saaie infrastructuur — auth, tool-loop, vector-memory, billing, mobile-client, daemon-mode. Jarvis v3 is de complete blauwdruk daarvan, met Claude Sonnet 4.6 als brein, 22+ tools, ChromaDB-memory, Stripe-billing en vier interfaces (web, CLI, wake-word daemon, mobile). Het is ons fundament voor branchspecifieke AI-assistants (medisch, juridisch, sales, support).

TypeEigen Lynuxis-platform
Doorlooptijd16 weken (v3 rewrite)
TeamLudi (solo)
StatusProduction-ready · interne kern
22+
Ingebouwde tools (vision · memory · web · OS)
4
Interfaces — web · CLI · daemon · mobile
2
AI-paden — Claude + lokale Ollama fallback
Verticalen — white-label per branche

Het probleem

Iedereen bouwt dezelfde "saaie" laag opnieuw

Een agent voor de zorg verschilt sterk van een agent voor verkoop. Maar 80% van de code is identiek: een authenticatie-laag met per-user state, een tool-loop met parallelle uitvoering, een vector-store voor lange-termijn-geheugen, een queueing-systeem voor lange acties, een billing-model voor gebruik, een wake-word-daemon voor stem-input, en een mobile client die het allemaal toont.

Resultaat: elke agent-builder herbouwt het wiel en verzandt in plumbing voordat 'ie aan de echte branchekennis toekomt.

Wat ontbrak: een solide kern waar je alleen nog de verticale tools en system-prompts op hoeft te plakken.

Onze aanpak

Het brein, de tools, de interfaces — apart maar klaar

De kern is een tool-use loop met Claude Sonnet 4.6 die parallel tools mag aanroepen. Iedere tool is een Python-functie met JSON-schema; de agent kiest welke 'ie nodig heeft en geeft de uitkomsten terug.

Geheugen werkt via ChromaDB + sentence-transformers — elke conversatie wordt geëmbed en kan teruggehaald worden. Per gebruiker een eigen scope.

De stem-laag is volledig lokaal te draaien: faster-whisper voor STT, edge-tts voor TTS (streaming, gratis), Picovoice Porcupine voor wake-word. Of cloud — beide werken.

Bovenop dit hart komen vier interfaces: een web-app (Vanilla JS + WebSocket), een CLI, een Wake-word daemon die op de achtergrond luistert, en een React Native (Expo) mobile-app. Stripe verzorgt billing per-user en gebruik-tracking.

Een sessie · tool-loop in actie

Claude kiest, parallel, gebruikt vorige resultaten

Hieronder een ingekorte sessie waarin de agent parallel een mail leest, een berekening doet en geheugen recallt. Tools werken in parallel.

jarvis · interactive session · u 102 · daemon mode
user> Wat had Sara vorige week ook alweer voorgesteld voor de offerte? En reken meteen 14% btw uit over €4.500.
→ Claude planning: 2 tools parallel — memory.recall math.eval
memory.recall query="Sara offerte" topK=3 → 3 matches in 0,42 s
math.eval expression="0.14 * 4500" → 630.0 in 0,01 s
→ Synthese · Claude Sonnet 4.6
Sara stelde vorige donderdag voor om de drie modules op te splitsen in een fase 1 (basis-CRM voor €4.500) en een optionele fase 2 (AI-uitbreiding +€2.800).
BTW 14% over €4.500 = €630. Totaal incl. BTW komt op €5.130.
Wil je dat ik dit als concept-mail klaarzet, of toon ik eerst de hele recall?
user> Mail klaarzetten, naar adres van Sara.
→ Claude planning: 2 tools sequentieel — contacts.lookupmail.draft
contacts.lookup name="Sara" → sara@hetbureau.nl
mail.draft to=sara@hetbureau.nl subject="Offerte fase 1 + 2" → draft id=m-7821
Concept staat klaar in je mail-client. Sturen?
Tool-gallery

22+ tools out-of-the-box

Vier categorieën: brein (memory + reasoning), I/O (vision + audio), OS (filesystem + screen), web (search + http). Allemaal definieerbaar als simpele Python-functie met JSON-schema.

jarvis/tools · 22 ingebouwd + 0 custom
memory.recallVector-search in conversatiegeheugen
memory.rememberEmbed + store in ChromaDB
memory.forgetGDPR-conform verwijderen
vision.screenScreenshot + Claude vision-analyse
vision.webcamCamera-frame + analyse
vision.imageLokale of URL-image analyse
audio.transcribeFaster-whisper STT
audio.speakEdge-TTS streaming
math.evalVeilige expression-eval
code.pythonSandboxed Python-runner
fs.readLees bestand binnen scope
fs.writeSchrijf met confirm
fs.searchGrep in werkmap
os.runShell-command, allowlist
os.clickMouse-click + key-press
web.searchSerpAPI of DuckDuckGo
web.fetchHTTP GET + parse
web.browsePlaywright headless
contacts.lookupCardDAV / lokale db
calendar.createICS / CalDAV
mail.draftDraft in IMAP-account
notifyDesktop / push-notificatie
Architectuur

Vijf lagen, één API, vier clients

Elke laag is vervangbaar. Wil je een eigen LLM in plaats van Claude? Wissel het brein. Eigen TTS? Vervang de audio-laag. De rest blijft staan.

jarvis/architecture · 5 lagen · 4 clients
Brain
Claude Sonnet 4.6 (default)tool-use loop · parallel · streaming · fallback Ollama llama3.1:8b
Anthropic SDK
Memory
ChromaDB + sentence-transformersper-user scope · semantic search · embed at ingest · GDPR-delete
Local-first
Tools
22+ functies met JSON-schemaparallelle dispatch · auto-allowlist · sandboxing voor code/fs/os
Pluggable
Voice
faster-whisper STT + edge-tts TTSPicovoice Porcupine wake-word · sub-secunde latency
Streaming
API
FastAPI + WebSockets + SQLAlchemyAuth JWT + bcrypt · billing-Stripe · usage-tracking · per-user data-isolation
Production
Clients
4 interfaces op één APIVanilla JS web · CLI · Wake-word daemon · React Native (Expo) mobile
Multi-front
Tech stack

Onder de motorkap

  • BrainClaude Sonnet 4.6 met tool-use; fallback Ollama (lokaal)
  • MemoryChromaDB + sentence-transformers (all-MiniLM)
  • Speechfaster-whisper (STT) + edge-tts (TTS) + Picovoice (wake)
  • APIFastAPI + WebSockets + SQLAlchemy + SQLite/Postgres
  • AuthJWT + bcrypt + per-user data-isolation
  • BillingStripe checkout + webhook + daily token-tracking
  • MobileReact Native (Expo) — geüpload naar TestFlight/Play Internal
  • DeployDocker + docker-compose, ook helemaal lokaal te draaien
Slimme details

Wat het anders maakt

  • Parallel toolsClaude kan in één turn meerdere tools aanroepen — Jarvis dispatcht parallel
  • Memory-as-toolClaude beslist zelf wanneer iets bewaard of teruggehaald moet worden
  • Allowlist sandboxingcode/fs/os tools alleen binnen door user goedgekeurde paden
  • Lokaal of cloudHele stack kan lokaal draaien (Ollama + ChromaDB) of in de cloud
  • Whitelabel-blauwdrukPer branche: andere system-prompt + andere tools, kern blijft
  • Daily token-budgetIedere user heeft hard cap; voorkomt billing-shock

"De saaie infrastructuur achter een AI-agent is altijd het meeste werk. Jarvis levert die kant volledig kant-en-klaar — auth, billing, tool-loop, memory, multi-interface. Voor een verticale assistant kun je 80% van de tijd direct besteden aan branche-logica."

— Eigen ontwerp-notitie, Lynuxis bouw-log

Een verticale AI-assistant in jouw branche?

Medisch, juridisch, sales, support — met Jarvis als basis bouwen we in 4-6 weken een production-ready agent voor jouw branche. Auth/billing/memory/tools al gedaan.