Sottotitolo: Come trasformare anni di allenamenti, dati e passione per il nuoto in un agente AI capace di conoscere la mia storia sportiva
I primi due giorni di ferie, normalmente, dovrebbero servire a staccare.
Nel mio caso è successo più o meno il contrario.
Da buon nerd, appassionato di tecnologia e grande cultore del nuoto in acque libere, mi sono posto una domanda che, come spesso accade, sembrava innocua:
“E se mi costruissi un agente AI che conosce davvero il mio modo di allenarmi?”
Non un chatbot al quale chiedere genericamente “fammi un allenamento di nuoto da 3.000 metri”. Quello è relativamente semplice.
Volevo qualcosa di diverso.
- Un agente che conoscesse anni di allenamenti, sapesse come sono strutturate le mie Sedute A e B, riconoscesse A1, A2, B1, B2, C1, pull, pinne, boccaglio, remate e lavori di sensibilità.
- Un sistema che conoscesse i miei riferimenti prestativi, sapesse distinguere ciò che avrei dovuto fare da ciò che ho realmente fatto e, soprattutto, utilizzasse tutto questo contesto prima di suggerirmi cosa fare dopo.
Così sono iniziati i miei primi due giorni di ferie.
E naturalmente sono finiti con Final Surge, Garmin, Strava, API, OAuth, Knowledge Base e un agente AI.
Forse la definizione di ferie per un nerd è leggermente diversa.
Il problema non sono i dati. È riuscire a usarli !
Come molti sportivi che utilizzano tecnologia durante gli allenamenti, negli anni ho accumulato una quantità notevole di informazioni.
- Gli allenamenti programmati sono in Final Surge.
- L’orologio Garmin registra ciò che faccio realmente.
- Garmin Connect raccoglie le attività. Strava ne riceve una copia.
Il risultato è che possiedo moltissimi dati, ma possedere dati non significa necessariamente possedere conoscenza.
Se voglio sapere cosa ho fatto ieri, è semplice.
Se invece voglio rispondere a domande come:
- Come sono cambiate le mie Sedute A negli ultimi sei mesi?
- Quali esercizi tecnici ho utilizzato maggiormente?
- Quanto lavoro A2 sto facendo?
- L’allenamento che dovrei fare domani è coerente con le ultime settimane?
la situazione cambia!
I dati ci sono, ma sono distribuiti in sistemi diversi e soprattutto manca qualcosa che li metta in relazione.
Ed è qui che l’AI diventa interessante.
Primo passo: Dare una memoria al coach
La prima operazione è stata recuperare lo storico da Final Surge.
L’obiettivo non era semplicemente esportare dei PDF e caricarli dentro un GPT. Volevo trasformare quello storico in una Knowledge Base utilizzabile dall’agente.
Ho quindi estratto esclusivamente gli allenamenti di nuoto, identificati dalle mie classiche voci Seduta A, Seduta B, ecc., eliminando tutto ciò che non era pertinente.
Il risultato è stato un archivio strutturato di 221 allenamenti, dal quale l’AI può recuperare una determinata seduta, confrontare periodi differenti e riconoscere progressioni ed elementi ricorrenti.
Questo cambia radicalmente il tipo di domanda che posso fare.
Non più: “Creami un allenamento da 3.000 metri.”
Ma: “Analizza le ultime tre Sedute A e proponimi la successiva, mantenendo una progressione coerente.”
Sono due richieste apparentemente simili, ma concettualmente molto diverse.
Nel primo caso l’AI genera, nel secondo deve prima recuperare, comprendere e contestualizzare.
Ma, una Knowledge Base non basta
A quel punto è emerso un secondo problema.
L’agente conosceva gli allenamenti, ma non conosceva abbastanza bene l’atleta.
Ho quindi creato un secondo elemento: il Profilo Atleta.
Qui sono raccolti i riferimenti utili per interpretare lo storico:
Età, disciplina prevalente, frequenza degli allenamenti, piscina e acque libere, obiettivi e alcuni riferimenti prestativi.
Per esempio:
200 m → 3:45
400 m → 7:42
1.000 m → 19:22
CSS storico → circa 1:58/100 m
Con una regola fondamentale: un dato storico non deve essere considerato automaticamente un dato attuale.
Se domani effettuo un nuovo test, il sistema deve utilizzare il nuovo valore senza perdere quello precedente, perché proprio il confronto nel tempo permette di capire l’evoluzione.
A questo punto iniziava a delinearsi una struttura interessante:
- Knowledge → cosa ho fatto nel tempo
- Profilo → chi sono e quali sono i miei riferimenti
- Conversazione → qual è la mia situazione oggi
Poi arriva il problema dei 3.000 metri.
Chi prepara allenamenti di nuoto probabilmente sorriderà.
Chiedere a un’AI: “Preparami una seduta esattamente da 3.000 metri”, può produrre una bellissima scheda che termina con:
TOTALE: 3.000 m
Peccato che, facendo i conti, magari siano 2.850.
Un piccolo dettaglio: quando sei in acqua e scopri che il totale scritto in fondo alla scheda è più ottimista della matematica.
Per questo nelle Instructions di AI-nuoto ho inserito una regola quasi ossessiva:
il totale non si dichiara, si calcola.
Ogni blocco deve essere calcolato, le moltiplicazioni delle serie devono essere considerate e alla fine tutto deve essere sommato nuovamente.
Durante il collaudo ho quindi chiesto all’agente di analizzare le ultime tre Sedute A e crearne una nuova esattamente da 3.000 metri.
Il risultato finale è stato:
Riscaldamento: 600 m
Esercizi: 400 m
Attivazione: 400 m
Lavoro: 1.200 m
Defaticamento: 400 m
Totale:
3.000 m.
Questa volta anche secondo la matematica.
Può sembrare una banalità, ma è un esempio molto concreto di un principio importante quando costruiamo sistemi AI: non basta fornire informazioni al modello. Dobbiamo anche definire le regole con cui deve utilizzarle.
Ma…. mancava ancora metà della storia.
Nel prossimo articolo vedremo cosa serve


