← LLM- en AI-experimenten

Lokaal model als voordeur, Claude als escalatie

Mijn eigen model beantwoordt de meeste vragen. Alleen als het nodig is, escaleert het één zelfstandige vraag naar Claude, met goedkeuring via een dialoogvenster en een harde kostengrens. Vaste kosten per escalatie: minder dan een cent.

Het idee

Betaalde AI is goed, maar niet elke vraag heeft het nodig. Mijn eigen model in het homelab doet het graafwerk: bestanden lezen, commando's draaien, een eerste analyse. Pas als het echt moet, stuurt het één vraag door naar Claude. Die vraag is zelfstandig: Claude krijgt nooit de hele sessie, alleen wat nodig is.

Andersom werkt niet. Claude Code kan niet terugvallen op een lokaal model: er is geen modelketen, en een lokaal model kan de agent-lus van Claude Code niet aansturen.

Hoe het werkt

  • ask-claude: een klein Python-script dat de prompt bouwt, om goedkeuring vraagt, claude -p aanroept en de kosten logt. --dry-run toont de prompt en een tokenschatting. Met -f pad:120-180 stuur je alleen een regelbereik mee.
  • Een MCP-server met één tool, escalate_to_claude, handgeschreven zonder dependencies. Aangesloten op opencode en op Continue in VS Code.
  • Remmen: maximaal tien escalaties per uur, acht bestanden en $1 per aanroep.

Goedkeuring in de tool, niet in de client

Een belangrijke ontdekking: de client voerde MCP-tools zonder te vragen uit. De goedkeuring zit daarom in het script zelf: een prompt in de terminal, anders een dialoogvenster, anders een melding met knoppen, en anders weigeren. Een dialoog die niemand binnen vijf minuten aanklikt, telt als nee.

Kosten

Gemeten met dezelfde korte vraag:

OpzetKosten
claude -p standaard$0,0238
eigen korte systeemprompt$0,0110
+ geen tools, geen settings, geen slash-commands$0,0028

De echte kostenpost bleek de uitvoer: een escalatie van $0,04 bestond bijna helemaal uit antwoordtokens. Een lengtegrens van 300 woorden in de systeemprompt is de grootste knop.

Wanneer escaleren?

Eerste test: "verifieer dit voordat het productie raakt". Het lokale model antwoordde volledig zelf en sloot af met "geen gok, dit staat letterlijk in de documentatie", zonder iets te hebben gecontroleerd. Een model schat zijn eigen twijfel slecht in. De trigger hangt daarom aan signaalwoorden van mij ("verifieer", "zeker weten", "voordat het productie raakt"), niet aan de zelfinschatting van het model.

Dataveiligheid

Het lokale model mag alles zien wat ik het geef, want het draait op mijn eigen hardware. Wat naar Claude gaat, ziet en keur ik eerst goed. Ruwe logregels gaan nooit mee; daarvoor is deze route juist bedoeld.