retrAIt Plan jouw dag ↗
Blog / Automatiseren met agents

Een weekrapport dat zichzelf schrijft

6 minuten lezenDelen

Een hand houdt een geprinte grafiek vast boven een houten bureau met toetsenbord en muis
Foto RDNE Stock project via Pexels
Het korte antwoord

Een weekrapport automatiseren werkt het best als je het werk verdeelt: een script verzamelt en telt de cijfers, Claude schrijft er een paar zinnen bij zonder zelf te rekenen, en jij leest het op maandagochtend. Meet weinig, en alleen wat tot een besluit leidt. Namen en andere persoonsgegevens blijven bij het script.

Een weekrapport dat zichzelf schrijft, is een klein script op je eigen server dat elke week dezelfde cijfers verzamelt, ze optelt en vergelijkt, en ze dan aan Claude geeft met een vaste opdracht: schrijf hier een kort rapport bij, met deze kopjes, en gebruik alleen deze getallen. Een timer start het op maandagochtend, en als jij aan je week begint, ligt het rapport klaar. Het werk is daarbij bewust verdeeld: het script rekent, omdat een computer dat foutloos doet, en Claude schrijft de tekst erbij. Wat je met het rapport doet, beslis je zelf. Hieronder werk ik een voorbeeld helemaal uit, van wat je meet tot wat er mis kan gaan.

Het voorbeeld: een yogastudio

Sanne heeft een yogastudio met een eigen website. Het is een verzonnen voorbeeld. Op maandagochtend wil ze in twee minuten weten hoe de vorige week ging, en wat ze deze week als eerste moet oppakken. Ze heeft drie bronnen. Haar server houdt bij hoeveel bezoekers haar site heeft. Haar boekingssysteem kan een bestand maken met de aanmeldingen per les, dat ze op zondagavond in een vaste map op haar server zet. Daarnaast houdt ze zelf een lijstje bij met wat ze nog wil doen, in een gewoon tekstbestand.

Dat is genoeg voor een goed rapport. Meer bronnen maken het rapport niet beter, wel langer en kwetsbaarder.

Eerst bepalen wat je meet

De valkuil bij een rapport is te veel meten. Een getal hoort er alleen in als je er iets mee doet. Sanne kiest er drie.

Het aantal bezoekers per dag vertelt haar of een bericht op social media of haar nieuwsbrief mensen naar de site bracht. Aan de bezetting per les ziet ze welke les vol zit en welke ze misschien moet verplaatsen. Het verschil met vorige week gebruikt ze om een uitschieter van een trend te onderscheiden. Wat ze niet meet: hoe lang mensen op een pagina blijven, of uit welk land ze komen. Daar zou ze toch niets mee doen.

Haar bezoekcijfers komen uit het logboek van haar eigen webserver, zonder cookies en zonder dat bezoekers iets merken. Op een server die met het script van retrAIt is ingericht, geeft het commando site-stats de bezoekers en verzoeken per site over de laatste 24 uur. Wat zulke cijfers wel en niet zeggen, lees je in Bezoekers tellen zonder cookies en zonder cookiebanner. Omdat site-stats steeds één etmaal laat zien, bewaart Sannes script elke ochtend het getal van die dag. Op maandag heeft het er dan zeven.

Het script telt, Claude schrijft

Een taalmodel maakt tekst door steeds een waarschijnlijk vervolg te kiezen. Een som die er goed uitziet, is daardoor nog geen som die klopt, en in een rapport vol stellige zinnen valt een verkeerd getal extra weinig op. Waarom dat gebeurt, staat in Waarom AI soms dingen verzint, en hoe je dat merkt. Daarom doet het script al het rekenwerk: het telt de bezoekers per dag op, berekent de bezetting per les en het verschil met vorige week. Claude krijgt alleen de uitkomsten.

Het script zet alles in één tekstbestand, weekcijfers.txt. Sanne kan dat bestand zelf openen, en zo ziet ze altijd met welke gegevens Claude heeft gewerkt. De namen uit het bestand van haar boekingssysteem gaan er niet in. Het script telt alleen hoeveel mensen er per les zijn aangemeld, zodat er geen persoonsgegevens naar Anthropic gaan.

De opdracht aan Claude staat in een eigen bestand, zodat Sanne de tekst kan aanpassen zonder het script te openen. Er staat in dat het rapport hooguit tweehonderd woorden en drie vaste kopjes heeft: bezoek, lessen en deze week. Claude gebruikt alleen getallen uit de invoer en rekent zelf niets uit, en als er iets ontbreekt, zegt hij dat in plaats van het in te vullen. De kern van het script is dan één regel:

claude -p "$(cat opdracht.txt)" --permission-mode dontAsk --disallowedTools "*" --model sonnet < weekcijfers.txt > rapport.md

Met --permission-mode dontAsk wordt alles geweigerd waarvoor normaal toestemming nodig is, en met --disallowedTools "*" heeft Claude geen enkel gereedschap. Hij kan alleen lezen wat het script hem geeft en tekst teruggeven. Voor een rapport is dat genoeg, en het betekent dat er niets anders kan gebeuren dan dat er een tekst ontstaat. Met --model sonnet gebruikt de taak een lichter model, dat voor een kort rapport goed genoeg is en minder van je limiet vraagt dan Opus.

Een timer van systemd start het script elke ochtend om 06.30. Op gewone dagen bewaart het alleen de cijfers. Op maandag schrijft het ook het rapport. Hoe zo’n timer werkt, en waarom je hem Persistent=true geeft zodat hij een gemiste keer inhaalt, staat in Claude op vaste tijden aan het werk zetten.

Wat er mis kan gaan

In de eerste week staat er in Sannes rapport dat de les op dinsdagavond “vrijwel vol” zat. In weekcijfers.txt staat dat de helft van de plekken bezet was. Claude heeft de cijfers mooier gemaakt dan ze zijn, zoals een taalmodel in een vlotte tekst soms doet. Sanne past twee dingen aan. Het script zet voortaan zelf de bezetting als percentage in de cijfers, en in de opdracht staat nu dat Claude de bezetting alleen met die getallen beschrijft, zonder woorden als vol of rustig, en dat elk getal in het rapport letterlijk in de invoer moet staan. Zo’n fout zie je alleen als je de eerste weken elk getal in het rapport naast de invoer legt. Doe dat.

Verder kom je vooral een ontbrekend bestand tegen, omdat het zondag vergeten is, en soms een verlopen login of een limiet die op was toen de taak draaide. Laat het script een ontbrekend bestand gewoon melden in de invoer, dan zegt het rapport dat de lescijfers ontbreken in plaats van iets te verzinnen. Een verlopen login los je op door claude in een gewone sessie te starten en /login te typen. Kijk na een week of twee in het logboek van de taak of alles goed is gegaan. De bredere regels voor taken die zelf draaien, staan in Automatiseren met AI zonder dat het misgaat.

Elke keer dat het rapport geschreven wordt, telt dat mee voor je abonnement. Bij Pro en Max delen je gesprekken, je sessies met Claude Code en je taken dezelfde limieten. Een rapport van tweehonderd woorden per week merk je nauwelijks; pas taken die vaak draaien of veel lezen, gaan tellen.

Na een maand

Na vier rapporten kijk je terug. Lees je het rapport echt, en leidt het tot iets wat je doet? Sanne merkt dat ze het kopje over bezoek nauwelijks leest, maar dat ze op basis van de bezetting een slecht bezochte les van de vrijdagavond naar de zaterdagochtend heeft verplaatst. Ze haalt de bezoekers per dag uit het rapport en houdt alleen het weektotaal over. Het rapport wordt korter en beter.

Zo werkt het meestal. De eerste versie meet te veel, en na een paar weken weet je welke getallen ertoe doen. Leest niemand het rapport, zet de taak dan uit, anders gebruikt hij elke week een stukje van je limiet voor niets.

Begin met één bron die je al hebt, zoals je bezoekcijfers, en één lijstje met wat je deze week wilt doen. Laat het script die twee samenvoegen, probeer het commando eerst met de hand en leg elk getal in het rapport naast de invoer. De opties staan in de handleiding van Anthropic over Claude Code zonder gesprek, en de werking van timers in de beschrijving van systemd-timers. Wil je het stap voor stap op je eigen server bouwen, met een opdracht bij elke stap, dan staat er in het online programma een leerlijn over automatiseren.

Foto bovenaan: RDNE Stock project via Pexels

Delen

Ken je iemand die hier iets aan heeft?

Stuur het door, of deel het als beeld in je story of op LinkedIn.

Als beeld, voor je story of een post

Op een telefoon deel je het beeld meteen, bijvoorbeeld als story op Instagram of in je WhatsApp-status. Op een computer bewaar je het. Zet de link erbij, in je bericht of als sticker.

Meer over automatiseren met agents

Alles over automatiseren met agents