AI-promptvaardigheden
Laatst bijgewerkt: 2026-06-14
Your Trainer is een indoor-cycling-app voor meerdere rijders op Android-tablets. Smart-trainer-besturing met lokale data + lokale controle. Eenmalige aankoop.
De AI Workout Coach genereert een gestructureerde workout op basis van een tekstbeschrijving. Hoe duidelijker de prompt, hoe beter het resultaat. Met een handvol patronen kom je een heel eind; de rest is een kwestie van smaak.
.ytw file and runs the training-load math. Format-hallucination errors drop to near zero; history answers stop drifting between sessions.Wat de AI Coach werkelijk ziet
Dit hoofdstuk behandelt het genereren van workouts — de AI Workout Coach die je vanuit een workouttabblad opent. De geschiedenisassistent op het scherm Workout-geschiedenis is een aparte flow met andere invoer; zie Vraag de AI Coach over je geschiedenis hieronder.
Voor het genereren van workouts ziet de AI, in deze volgorde:
- De tekst die je hebt getypt.
- Het tabblad waarvan je startte — Vermogen of Hartslag. Het vermogenstabblad retourneert intervallen uitgedrukt als percentage van FTP; het hartslagtabblad retourneert zone-gebaseerde intervallen (Z1–Z5).
- Je huidige taalinstelling (zodat de juiste taal wordt gekozen voor intervallabels en cues).
Vermogensworkouts komen terug als percentages van FTP (bijv. targetPowerPercent: 90 voor een sweet-spotblok); je trainer past tijdens de rit lokaal je opgeslagen FTP toe om dat om te zetten naar Watts. Dezelfde gegenereerde workout rijdt daarom correct voor een rijder van 200 W en eentje van 300 W — andere Watts, gelijke relatieve inspanning. Geef een .ytw-bestand door aan een vriend en het werkt ook voor diegene.
Als een workout binnen een bepaalde context moet passen — de training van vorige week, je gebruikelijke rijstijl, een meerwekenplan waar je doorheen werkt — zet die context dan in de prompt.
Anatomie van een goede prompt
Vage prompts leveren generieke workouts op. Specifieke prompts leveren doelgerichte workouts op. Vijf componenten waar het de moeite waard is om expliciet over te zijn:
| Component | Voorbeeld | Waarom het helpt |
|---|---|---|
| Totale duur | "60 minuten totaal" | Het model gaat standaard uit van 45–60 minuten als je niets opgeeft. Geef het altijd aan als je iets anders wilt. |
| Intensiteit | "95–100 % FTP voor de werkblokken" | "Zwaar" is dubbelzinnig. Een Watt-bereik is concreet. |
| Structuur | "Twee intervallen van 20 minuten met 5 minuten herstel ertussen" | Benoemt de intervalvorm direct. |
| Cadansdoel | "Lage cadans, 60–70 RPM" | Optioneel. Handig voor klimmen met lage cadans of oefeningen met hoge cadans. |
| Coachingcues | "Voeg motivatiecues toe tijdens de werkblokken" | Het model strooit dan korte tekstoverlays door de intervallen. |
Vergelijk:
- Vaag: "Een drempelworkout."
- Beter: "60 minuten drempelwerk met twee intervallen van 20 minuten op 95–100 % FTP en een lange warming-up."
Patronenbibliotheek
Geteste prompts die redelijke uitvoer opleveren. Kopiëren, plakken, getallen aanpassen.
Z2-uithoudingsvermogen
90 minutes of steady Z2 endurance at 65–72 % FTP.
10-minute warm-up ramping from 50 % to 65 %, then steady,
with a 5-minute cooldown.
Sweet Spot
60 minutes total. 15-minute warm-up, then two 18-minute
sweet-spot blocks at 90 % FTP with 5 minutes of Z2 between.
Cool down for the rest.
Drempel (2×20, 4×8)
2×20 at threshold: 75 minutes total, 15-minute warm-up, two
20-minute intervals at 95–100 % FTP separated by 8 minutes
of recovery, then cool down.
4×8 at threshold: 60 minutes total, 12-minute warm-up,
four 8-minute intervals at 100 % FTP with 4 minutes recovery
between, cool down for the rest.
Over-unders
Over-unders: 60 minutes total, 12-minute warm-up, three sets
of (3 minutes at 95 % FTP / 1 minute at 105 % FTP) with no
recovery within a set, 5 minutes Z2 between sets, cool down.
VO2max
VO2max session, 50 minutes total. 15-minute warm-up, then
five 3-minute intervals at 115 % FTP with 3 minutes of easy
spinning between. Cool down at the end.
Microbursts
Microbursts: 45 minutes total. 10-minute warm-up, then 20
minutes of 30 seconds at 130 % FTP / 30 seconds at 50 % FTP
back to back. 15-minute cool-down.
Piramide
Pyramid: 60 minutes total. 12-minute warm-up, then 1, 2, 3,
4, 3, 2, 1 minute Z5 efforts at 115 % FTP with equal-duration
recovery between. Cool down for the rest.
Herstel
30-minute recovery ride. Steady Z1 at 50 % FTP throughout,
high cadence (95–100 RPM). No intervals, no surges.
FTP-test
FTP test, 20-minute protocol: 15-minute warm-up with three
1-minute openers at 110 % FTP near the end, 5 minutes easy,
then 20 minutes all-out at 100 % FTP, then 10-minute cooldown.
Gebruik voor de mildere ramp-testvariant de meegeleverde workout FTP Test (Ramp) vanuit het vermogenstabblad — die is gekalibreerd op de FTP-updateflow van de app.
Racesimulatie
90-minute race simulation: 15-minute warm-up, then alternating
between Z2 base (70 % FTP) and unpredictable surges — random
20-second to 90-second efforts at 110–130 % FTP every few
minutes. Steady Z2 cooldown at the end.
HF-zone- versus vermogensprompts
Genereer hartslaggedreven sessies vanuit het hartslagtabblad — de aanroepcontext van de editor bepaalt de uitvoervorm, dus het resultaat zijn HF-zonebanden in plaats van vermogenspercentages. Gebruik zonecijfers in de prompt:
30 minutes of zone-2 endurance with two 3-minute zone-4
surges in the middle.
45 minutes total. Zone-2 base for 30 minutes, then 10 minutes
zone-3 tempo, then 5 minutes zone-2 cooldown.
Hartslag stabiliseert traag vergeleken met vermogen, dus HF-zoneworkouts geven de rijder langer de tijd om in een zone te komen — houd blokduur op 3+ minuten voor stabiele zones, 1+ minuut zelfs voor kortere pieken.
Coachingcue-prompts
Coachingcues zijn korte tekstoverlays die tijdens een rit op de cockpit verschijnen. Vraag er expliciet om:
Threshold intervals with motivation cues during the work
blocks — "stay smooth", "find your rhythm", that kind of
thing.
VO2max session with cadence and form reminders — call out
the start of each interval and remind me to stay relaxed in
the shoulders.
Cues worden opgeslagen bij het interval. Je kunt ze na het genereren bewerken in de visuele editor als de keuzes van de AI niet bij je smaak passen.
Provideropmerkingen
Your Trainer ondersteunt drie AI-providers. Ze produceren allemaal geldige .ytw-JSON, maar elk heeft structurele eigenaardigheden die het weten waard zijn.
Gemini (standaard)
Gemini Flash is snel en goedkoop; Gemini Pro is trager en doordachter. Het standaardmodel gaat goed om met gestructureerde uitvoer, dus JSON-parsen mislukt zelden. Eigenaardigheid: Gemini stopt af en toe tekst rond de JSON; de parser haalt dat eruit, dus voor de rijder is het onzichtbaar.
OpenAI
Het standaardmodel is gpt-4o. De uitvoerkwaliteit is consistent en de structurele betrouwbaarheid is hoog. Tokenlimieten maken zeer lange prompts (beschrijvingen van een trainingsweek over meerdere alinea's) eerder afgekapt — houd de prompt op een paar zinnen voor het beste resultaat.
Claude
Het standaardmodel is claude-sonnet-4-6. Sterk in de proza-achtige delen van de uitvoer (cueteksten lezen natuurlijker) en goed in het volgen van uitgebreide voorwaarden. Iets trager dan Gemini Flash; vergelijkbaar met OpenAI.
Wisselen van provider
Instellingen → AI Coach → Provider. Je kunt ook de standaardmodelnaam per provider overschrijven — handig als er een nieuwer model is uitgekomen en je het wilt proberen voordat de standaardinstellingen van de app zijn bijgewerkt.
Aangepaste OpenAI-basis-URL (self-hosted)
Als je zelf een OpenAI-compatibel API-endpoint draait — LM Studio, Ollama, llama.cpp, een bedrijfsproxy — kun je via Instellingen → AI Coach → OpenAI Base URL Your Trainer ernaar laten verwijzen. Vul het alternatieve endpoint in, laat de API-sleutel staan op wat je endpoint verwacht (of leeg voor endpoints die er geen vereisen), en prompts gaan daarheen in plaats van naar openai.com. Handig om AI-generatie volledig binnen je lokale netwerk te houden.
Geïmporteerde workouts automatisch vertalen
Wanneer je een workout importeert die in een andere taal is geschreven — een .ytw-bestand met Engelse labels en cues, terwijl je de app in het Nederlands rijdt — toont het workoutdetailscherm een knop Vertalen naast de teksten in de oorspronkelijke taal. Door erop te tikken stuur je de namen, beschrijvingen, labels en cues naar je geconfigureerde AI-provider en wordt de vertaling teruggeschreven in het stringsblok van de workout.
De vertaalde teksten blijven bij de workout bewaard, zodat je bij de volgende keer openen direct de gelokaliseerde versie ziet. De originele teksten blijven behouden — vertaling voegt een extra taal toe in plaats van de bron te vervangen. Vereist een AI-API-sleutel (Instellingen → AI Coach).
Vraag de AI Coach over je geschiedenis
Dezelfde AI-provider die je hebt geconfigureerd voor het genereren van workouts kan ook een vraag beantwoorden over je trainingsgeschiedenis. Open het scherm Workout-geschiedenis en gebruik de invoer Vraag de AI Coach — typ een vraag, krijg een tekstuele samenvatting over je sessies en persoonlijke records heen. Handige prompts:
- "What was my hardest ride this month?"
- "Am I improving on the threshold workouts?"
- "How does my Z2 average power compare across the last four weeks?"
- "Show me my best routes by efficiency."
Wat er naar de provider wordt gestuurd. De geschiedenisassistent stuurt je FTP, gewicht (indien ingesteld), maximale hartslag (indien ingesteld) en eenheidsvoorkeur, plus een samenvatting van je laatste ~10 sessies — datum, workouttype, duur, afstand en klim waar geregistreerd, gemiddeld vermogen en HF, totale arbeid, en alle afgeleide meetwaarden die zijn berekend (NP, IF, variabiliteitsindex, TSS, piekvermogen over standaardduren van 5s tot 20m, efficiëntiefactor, tijd in elke HF-zone, compliance- en herstelscores). Beperkt tot alleen de actieve rijder. Wil je dit liever volledig buiten de provider houden, gebruik de geschiedenisassistent dan niet.
Het is alleen-lezen — de AI vat samen, vergelijkt en signaleert trends, maar kan je data niet wijzigen, sessies niet verwijderen of workouts aanpassen. Beschikbaar op de Pro- en Family-niveaus.
AI-uitvoer met de hand bewerken
AI-uitvoer landt rechtstreeks in de visuele workout-editor — elk interval, elke cue en elk cadansdoel is een gewoon blok dat je kunt slepen, dupliceren of verwijderen. Voor uitgebreidere bewerkingen sla je de workout op, exporteer je naar .ytw en bewerk je de JSON rechtstreeks met het workoutschema als referentie.
Een veelgebruikt patroon: genereer een workout die ongeveer klopt en pas daarna één of twee intervallen met de hand bij (een langere warming-up, een iets andere herstelvorm) zonder terug te keren naar de AI. Sneller dan proberen de exacte sessie eruit te promp-engineeren.
Wanneer de AI faalt
Vanaf v2.1.0 lopen de deterministische delen van elke AI-flow (workouts opstellen, trainingsbelastingsberekeningen, validatie) via de MCP-server in plaats van direct op ruwe LLM-uitvoer, dus de oude foutmelding "Couldn't parse the AI response as a workout" is grotendeels verdwenen. Bij normaal gebruik blijven twee faalmodi over:
- "Couldn't reach the AI provider." Netwerk- of providerstoring. Probeer het opnieuw; controleer de verbinding van je tablet. Houdt het aan, probeer dan een andere provider — ze falen onafhankelijk.
- "The AI declined to generate this workout." Weigering op basis van het contentbeleid. Zeldzaam voor sportprompts; meestal getriggerd door taal die het model interpreteert als beschrijving van schade. Formuleer neutraal.
Eén gedegradeerde modus: als de MCP-server zelf onbereikbaar is, valt de AI Workout Coach terug op het oudere directe-LLM-pad. De uitvoer is meestal nog geldig, maar de zeldzame foutmelding "Couldn't parse" kan terugkeren totdat de MCP weer beschikbaar is. De status van de publieke server wordt vermeld op de integratorpagina.
De volledige catalogus voor probleemoplossing staat op Probleemoplossing → AI Workout Coach-fouten.
Wat er achter de AI-functies zit
Vanaf v2.1.0 routeren de AI Workout Coach, de geschiedenisassistent en de workoutvertaling al hun deterministische werk — workoutbestanden opstellen, trainingsbelastingsberekeningen, ritanalyse, formaatconversie — via de publieke MCP-server van Your Trainer op mcp.your-applications.com/your-trainer. Het model stelt een intentie voor; de MCP-server bouwt de .ytw, voert de berekeningen uit en levert een gevalideerd resultaat terug.
Die splitsing lost de twee langlopende betrouwbaarheidsproblemen op:
- Formaathallucinatie is weg. Het model produceert geen
.ytw-JSON meer rechtstreeks, dus bijna-geldige-maar-misvormde uitvoer bereikt het importpad niet meer. De 5–10 % van de workouts die voorheen niet parseerden, falen gewoon niet meer. - Geschiedenisantwoorden gaan niet meer drijven. Wanneer je de geschiedenisassistent vraagt naar trainingsbelastingstrends, gebeurt de tijdreeksrekenarij server-side op je werkelijke cijfers. Twee rijders die dezelfde vraag stellen over dezelfde geschiedenis krijgen hetzelfde antwoord.
De MCP is stateless — er wordt geen data bewaard — en wordt alleen aangeroepen wanneer je een functie gebruikt die hem nodig heeft. Wil je liever via je eigen server routeren, dan documenteert de integratorpagina het protocol; als je een tool bouwt die met Your Trainer-bestanden praat, kun je dezelfde backend zelf gebruiken. Bekijk de integratordocumentatie →