Showcase · AgentLedger

Meten, routeren en verantwoorden is één mechanisme.

AgentLedger staat tussen je apps en de modellen. Hij kiest per taak het goedkoopste geschikte model, stuurt de call echt door en schrijft ondertussen weg wat er gebeurde: welke route, welk backend het werkelijk uitvoerde, hoeveel tokens, wat het kostte — en wanneer hij dat níet zeker weet. Een teller náást een proxy loopt achter de feiten aan; dit is dezelfde beweging.

Status: beta. Draait in productie op ons eigen lab, nog niet algemeen beschikbaar. Er is bewust geen releasedatum — die volgt pas als de meetdekking af is.
67.309
calls in het register
8
model-providers door één router
9
apps automatisch herkend
14
schermen in de Mac-app

Cijfers uit het draaiende register, gemeten op 19 augustus 2026. Router v0.6.1.

Architectuur

Eén doorgang, vier dingen tegelijk

De app praat met één endpoint. Daarachter wordt de bron herkend, het beleid van die bron toegepast, de call doorgestuurd naar het gekozen backend en het resultaat weggeschreven — inclusief wat het backend zélf koos, want dat is zelden hetzelfde als wat er gevraagd werd.

Je apps agents, IDE, workflows één OpenAI-endpoint Herkennen + beleid welke app is dit? welke route geldt hier? Doorsturen 8 providers streaming + uitwijk Waarderen tarief van de upstream of: ongeprijsd Register — één regel per call cid · bron + herkenningsregel · taaktype · gevraagd model · gekozen route · werkelijke upstream tokens in/uit · kosten of ongeprijsd · besparing · duur · status · foutreden · beslisspoor
Wat het doet

Zes dingen die er in de kern gebeuren

Router die écht doorstuurt

Eén OpenAI-compatibel endpoint voor al je apps. AgentLedger kiest het model, stuurt de call door — streaming inbegrepen — en schrijft ondertussen de meting weg. Geen aparte proxy naast een aparte teller: het is hetzelfde mechanisme.

Routes per app

Per app instelbaar: automatisch, een vast model, AgentLedger laten kiezen, of helemaal uit. Leeg beleid betekent exact het oude gedrag — je kunt het aanzetten zonder iets te breken.

Beslisspoor per call

Van elke call staat vast waaróm hij ging zoals hij ging: welk taaktype herkend werd, welke route-instelling gold, waar hij heen ging, welk backend hem werkelijk uitvoerde en wat dat kostte.

Eerlijke prijzen

Elke call draagt een prijsstatus: geprijsd, gratis, abonnement, lokaal of ongeprijsd. Ongeprijsd is geen nul maar een gat — en elk totaal dat er één bevat wordt als ondergrens getoond.

Uitgavenrem

Een uurlimiet op de echte uitgaven. Daarboven gaan betaalde calls naar het gratis model in plaats van door te lopen. De rem vuurt op euro’s, niet op abonnementswaarde.

Lus- en spookdetectie

Bijna-identieke calls die zich binnen een tijdvenster herhalen worden gemeld, ook als ze gratis zijn — een gratis lus kost geen geld maar wel quota en tijd. Calls die blijven hangen worden apart geteld.

Uit de draaiende app

Tien schermen, ongeretoucheerd

Dit zijn schermafdrukken uit de native Mac-app, gemaakt op 19 augustus 2026 met echte productiedata uit het eigen lab. Er is niets bijgetekend en niets weggepoetst — de mislukte calls en de ongeprijsde gaten staan er gewoon in, want daar gaat het product juist over.

AgentLedger-overzicht met uitgaven vandaag, calls, besparing, uitgaven per uur, fouten van de laatste 24 uur en de lanes van de governor
Overzicht Vandaag in één oogopslag Uitgegeven vandaag, aantal calls, wat de goedkopere route bespaarde en hoeveel calls naar een gratis model zijn omgeleid. Daaronder de uitgaven per uur met de uurlimiet erin getekend, de foutmeldingen van de laatste 24 uur mét bron, en de status van elke lane achter de router.
Detailweergave van één call: taaktype, route-instelling, bestemming, werkelijk uitvoerend backend, kosten, tokens, duur en herkomst
Beslisspoor Waarom deze call zo liep Eén call, uitgeklapt. Taaktype herkend aan trefwoorden, geen route ingesteld dus standaardgedrag, verstuurd naar deepseek — maar werkelijk uitgevoerd door een gratis nemotron-endpoint. Prijsherkomst: bewezen gratis. Bespaard ten opzichte van het duurste alternatief: € 0,9377. Ook de herkomst staat erbij: welke regel deze app herkende, met welke User-Agent.
Routes per app met de apps in een lijst en de instellingen automatisch, vast model, AgentLedger kiest of uit
Routes Welke app naar welk model Elke app die de router aanroept krijgt een eigen regel. Vier modi, een eigen uurlimiet per app, en een notitieveld voor jezelf over drie maanden. Bellers die zich nog niet gemeld hebben, staan bovenaan als “onbekende bellers” — die wijs je toe in plaats van ze te laten verdwijnen in één anonieme hoop.
Live-scherm met actieve sessies per app, tokens in en uit, kosten, mislukte calls en de gebruikte modellen
Live Wie draait er nu Sessies per app, met tokens in en uit, kosten, mislukte calls en ongeprijsde calls apart geteld — plus de modellen die die sessie werkelijk gebruikte. De duur telt door zolang de sessie loopt.
Coverage-scherm met per provider de meetmodus: API exact, usage-schatting, OAuth-bridge of capture
Coverage Hoe elke provider gemeten wordt Niet elke provider laat zich even goed meten. Dit scherm zegt per provider hardop welke modus geldt — exacte API-meting, schatting uit usage, of een OAuth-bridge — en waarom. Een schatting die als schatting in beeld staat is bruikbaar; een schatting die zich voordoet als meting niet.
Tegoeden-scherm met DeepSeek-saldo, Claude Desktop, ChatGPT, SuperGrok, Gemini en een aflopende trial
Tegoeden Abonnementen en saldo naast elkaar Abonnementen kosten niets per call — wat je betaalt zit in het maandbedrag. Dit scherm laat zien hoe vol elk venster zit, in welk tempo, en wanneer het reset. Aflopende trials krijgen een eigen kaart, zodat een zoekbron niet stilletjes wegvalt.
Prijzen-scherm met tarieven per 1M tokens in en uit, per provider en model, met een toelichting op de herkomst
Prijzen De tarieven waarmee geboekt wordt Het prijzenboek dat de router écht gebruikt, niet een losse kopie. Per model het tarief in en uit per miljoen tokens, met bij twijfelgevallen de onderbouwing erbij: waar het tarief vandaan komt en welke varianten er níet onder vallen.
Sessies-scherm met totalen en de melding dat 605 van 5.000 calls geen tarief hadden
Sessies Verbruik met de gaten erin Boven de lijst staat het totaal, en direct eronder wat dat totaal waard is: “ondergrens — 605 van 5.000 calls zonder tarief”. Dat zinnetje is het verschil tussen een bedrag en een bewering.
Providers-scherm met schakelaars per provider en de zoekbronnen voor de nieuwsroute
Providers Aan- en uitzetten wat je vertrouwt Uit betekent hier echt uit: de router weigert elke call naar die provider en de advisor kiest hem nooit. Handig voor een leeggetrokken trial. Onderaan de zoekbronnen voor de nieuwsroute, met automatische uitwijk als de actieve bron faalt.
Chatscherm waarin je vragen kunt stellen over je eigen verbruik, routes en kosten
Overleg Vraag het de ledger zelf Een chat die je eigen cijfers als bron gebruikt: routes per app, recente calls, kosten, herkenningsregels. Het overleg loopt zelf door de router en telt dus gewoon mee in je ledger — ook dat is meetbaar gehouden.
De kern van het ontwerp

Een gat mag geen nul worden

Bijna elk kostendashboard heeft dezelfde stille fout: wat het niet kan prijzen, boekt het als nul. Het totaal ziet er dan gezond uit en niemand ziet dat er een stuk mist. AgentLedger doet het andersom.

geprijsdtarief bekend, bedrag berekend uit de werkelijke upstream
gratisstaat expliciet op € 0,00 in de prijstabel — bewezen, niet aangenomen
abonnementzit in het maandbedrag; telt niet mee in de uitgavenrem
lokaaldraait op eigen hardware; geen factuur, wel tijd en stroom
ongeprijsdleeg, geen nul — en elk totaal dat er één bevat heet een ondergrens
Wat we onderweg fout deden

Vier meetfouten, en wat ze opleverden

Elk van deze fouten zat maanden onopgemerkt in een systeem dat er gezond uitzag. Ze staan hier omdat de correctie het product is: dit zijn precies de plekken waar een kostendashboard je voorliegt zonder het te weten.

Een gat in de meting werd geboekt als € 0,00

Elke call zonder bekend tarief kreeg stilzwijgend nul euro. Op één dag stonden 14.911 calls op € 0,00 bij 1,17 miljard input-tokens. Het totaal was daardoor geen kostenpost maar een ondergrens, zonder dat iemand dat kon zien. Sindsdien is “ongeprijsd” een eigen status met een lege waarde in plaats van een nul.

Bronherkenning die nog nooit had gevuurd

Van 39.542 geregistreerde calls stonden er 39.542 op de bron “http”. Alle apps waren voor de router één app, waardoor routes per app nergens op konden aangrijpen. De herkenning loopt nu in vaste volgorde — expliciete header, eigen regel, sniffing — en legt per call vast wélke regel gevuurd heeft.

Verweesde calls kwamen door slotconflicten, niet door crashes

Onder zware gelijktijdige streams faalde de afsluitende schrijfactie met “database is locked”, waarna een call in de status “routing” bleef hangen. Drieëntachtig stuks, twee tot vijftien dagen oud. De oplossing zat in de database-instellingen, niet in de logica — en er is een vangnet bij gekomen dat elke hangende rij alsnog afsluit. Niets is gewist; ze staan gemarkeerd als afgebroken.

Het alias prijzen is gokken

Als de router zelf niet meldt welk endpoint het werd, dan is het tarief van het alias een aanname. Die aanname kost óf tientallen euro’s per dag die niet bestaan, óf ze verstopt betaald verkeer. Daarom wordt geprijsd op wat het backend werkelijk uitvoerde — en anders helemaal niet.

Uit het register

Waar de meting nu staat

67.309calls vastgelegd, waarvan 63.099 geslaagd
4.074mislukte calls mét reden bewaard — voorheen alleen zichtbaar in het foutantwoord
7,23 mldinput-tokens tegenover 85,8 miljoen output-tokens (ruwweg 84 : 1)
9apps die de router uit elkaar houdt, elk met een eigen herkenningsregel
876calls op de laatste gemeten dag, waarvan 81 omgeleid naar een gratis model
605 / 5.000calls zonder tarief in het sessieoverzicht — zichtbaar gemaakt, niet weggerekend

Meer over de aanpak achter deze cijfers: AI-kosten in de hand houden. Dezelfde correlatie-draad loopt door onze workflow-automatisering.

Gebouwd met Python (stdlib)SQLite (WAL)SwiftUIMCPCloudflare Accesslaunchd
Beta — nog geen releasedatum

Wil je weten wat jouw agent-team werkelijk kost?

AgentLedger draait in productie op ons eigen lab en is in beta. Er is bewust geen releasedatum: eerst moet de meetdekking per provider af zijn, want een meetinstrument dat gaten dichtsmeert is erger dan geen meetinstrument. Meedenken of meekijken kan wel.