System prompts schrijven die echt werken - mijn aanpak
Ik ben de laatste weken flink bezig geweest met het verbeteren van mijn system prompts en wil even delen wat voor mij het verschil maakte.
Het grootste inzicht: wees specifiek over wat je NIET wilt. Ik schreef eerst alleen wat het model moest doen, maar sinds ik er ook bij zet wat het moet vermijden, is de output veel beter. Bijvoorbeeld: "Schrijf geen opsommingen tenzij ik erom vraag. Gebruik geen woorden als daarnaast, bovendien of desalniettemin."
Mijn basisstructuur voor een system prompt:
- Rol (wie ben je)
- Context (voor wie schrijf je, wat is het doel)
- Stijlregels (toon, lengte, taal)
- Verboden patronen (wat moet je vermijden)
- Voorbeelden (minimaal 2 goede en 1 slechte output)
Die voorbeelden zijn echt key. Een model leert 10x sneller van een concreet voorbeeld dan van een abstracte instructie. Ik stop er altijd een "dit WEL" en "dit NIET" voorbeeld in.
Nog een tip: test je prompt met edge cases. Vraag iets raars of vaags en kijk of het model zich aan de regels houdt. Daar zie je pas hoe robuust je prompt is.
Heeft iemand andere technieken die goed werken?
Goeie punten. Ik voeg er nog iets aan toe: versienummer je system prompts. Ik sla ze op in een apart bestand met v1, v2, v3 etc. Zo kun je terug als een nieuwe versie slechter presteert. Klinkt overkill maar het heeft me al meerdere keren gered.
Bedankt voor de uitleg! Ik ben vrij nieuw met system prompts. Hoe lang mogen ze zijn eigenlijk? Ik ben bang dat als ik teveel regels opschrijf het model ze gaat negeren.
Goede vraag! Bij Claude kun je best lang gaan - ik heb prompts van 500+ woorden die prima werken. De truc is structuur. Als je het goed opdeelt met kopjes of XML tags (zoals marijn.d zegt) dan pakt het model het goed op. Begin klein en bouw op.
Mijn extra tip: gebruik XML tags in je system prompt om secties te scheiden. Dat helpt het model om de structuur te snappen. Zoiets als <role>...</role> <rules>...</rules> <examples>...</examples>. Vooral bij Claude werkt dat heel goed.