On est en mars. Ma fille a le brevet en juin.
Brevet oral le 8 juin. Brevet écrit le 20 juin. Un dossier STD2A de dix pages à livrer le 7 avril pour intégrer le lycée dont elle rêve. Un stage quelque part dans tout ça.
Et là, en passant en revue ses cours d'histoire, je réalise un truc. Son professeur a fait une leçon. Une seule. Sur quinze chapitres du programme.
Une.
C'est la 3e. C'est déjà l'enfer sans ça. Avec la pression du brevet, du dossier, du stage — ajouter "rattraper le programme toute seule sur ses heures hors cours" par-dessus, c'est mission impossible.
Il lui fallait un outil structurant. Un truc qui se souvienne. Qui sache où elle en est réellement. Et qui l'aide à faire le point sur son avancement sans perdre de temps.
À la place de m'énerver, j'ai construit un coach.
Elle s'appelle Suki.
Pourquoi pas ChatGPT
Question légitime. Pouquoi re-inventer la roue en somme :)
ChatGPT c'est cool. Mais ChatGPT ne sait pas que ma fille bloque sur tel ou tel concept de façon récurrente. Il ne sait pas qu'elle fonctionne au visuel, pas au texte. Il ne sait pas qu'elle a des deadlines serrées et que procrastiner c'est son mécanisme de survie naturel.
Surtout, ChatGPT a une certaine mémoire des discussions mais en pratique cette mémoire n'est pas structurée et assez peu pertinente.
Ce dont j'avais besoin, c'était d'un agent IA avec une mémoire persistante. Quelque chose qui connaisse ma fille sur la durée — son niveau, ses blocages, ses modes de fonctionnement. Qui accumule le contexte au lieu de le perdre.
Egalement un outil qui me permette de mettre des gardes-fous pour qu'il l'accompagne au lieu de faire à sa place. Qu'il sache mettre des limites de temps et la pousse à faire des fiches de révision sur papier au lieu de s'éparpiller.
J'ai construit Suki sur Letta, un framework open source pour des agents IA à mémoire longue. Le modèle derrière, c'est souvent Claude (Anthropic) mais si besoin Shayna peut changer de modèle (en cas de rate limit ou si besoin de tester un autre LLM). Mais le framework, c'est ce qui change tout : Suki maintient un contexte persistant entre les sessions, se souvient de ce qui a été couvert, de ce qui a bloqué, de l'humeur de ma fille la dernière fois.
Suki #1 — Le prof
Comment ça marche
Une session Suki, ça ressemble à ça :
Ma fille ouvre une conversation. Suki commence par un kit de démarrage : la problématique du chapitre, un plan, les dates clés. Pas de syndrome page blanche. Ensuite, c'est de la pédagogie interactive — des questions, pas des réponses. Suki utilise un système de questions socratiques en escalade : d'abord une question ouverte, puis une reformulation si ça bloque, puis un seul indice. Jamais la réponse directement.
Ma fille rédige ses propres réponses. Suki valide, corrige, relance. En fin de session : un bilan de ce qui a été couvert, ce qui reste à faire, et une célébration de ce qui a avancé.
Ce que l'agent sait
Suki maintient 10 blocs de mémoire :
- Le profil de ma fille (niveau, style d'apprentissage, centres d'intérêt)
- L'avancement : 21 chapitres d'histoire-géo trackés avec leur statut
- 278 ressources pédagogiques indexées depuis le Padlet de sa professeure
- Des références K-pop (ses groupes préférés) pour la motivation — ça a l'air absurde, mais un GIF de Stray Kids au bon moment, ça relance une session qui s'éteint
- Des règles de formatage pour l'affichage (barres de progression visuelles, animations)
Tout ça persiste entre les sessions. Quand elle revient trois jours plus tard, Suki sait exactement où elle en est, ce qu'elle a validé, ce qui a coincé. "La dernière fois t'étais fatiguée, on reprend doucement ?" — c'est pas du script, c'est de la mémoire.
Le suivi
Suki peut m'envoyer un message sur telegram si quelque chose coince. Pas pour fliquer, pour suivre l'avancement. Ma fille est au courant, c'est transparent. Ça me permet de savoir si un chapitre bloque, si elle a des difficultés à répétition.
En pratique nous n'avons pas eu besoin de ce mecanisme pour le moment, si quelque chose ne va pas ma fille m'en parle naturellement.
Mais c'était un challenge fun de permettre à l'agent de communiquer avec moi directement.
Ce que ça a donné
Première session : elle valide le chapitre 1 d'histoire et commence à rédiger ses propres réponses. Pas les réponses de Suki. Les siennes.
Elle me dit : "Go Suki, t'es la meilleure."
Elle l'utilise volontairement. Pas forcée. Elle dit que c'est 9 fois plus rapide que de réviser seule. Elle travaille parfois seule, parfois avec sa maman ou moi-même à côté.
Suki #2 — Le coach
Pourquoi on a fait évoluer l'outil
Et puis il y a eu le dossier STD2A (sciences et technologies du design et des arts appliqués).
Dix pages de travail créatif. Deadline 7 avril. Et c'était le chaos — trop d'idées, pas de structure, pas de planning. L'histoire-géo c'est du programme cadré. Un dossier artistique c'est de l'espace ouvert. Et ma fille dans l'espace ouvert, elle se noie.
Alors j'ai retraîné Suki pour qu'elle devienne un coach projet.
Comment on a fait
Pas de réentraînement du modèle. J'ai ajouté du contexte en conversationnel : les critères d'évaluation STD2A, les contraintes de temps, ce qui était attendu page par page. Suki a intégré tout ça dans sa mémoire persistante.
Et j'ai changé la consigne : au lieu de "aide-la à réviser l'histoire", c'est devenu "aide-nous à structurer un projet créatif de 10 pages avec des contraintes réelles".
La session
J'ai demandé à Suki d'identifier ce qu'il y avait à faire page par page. De construire un tableau "qui fait quoi". D'estimer les temps.
Première proposition : à côté. Les estimations ne collaient pas avec la réalité de notre emploi du temps familial.
Alors on a affiné ensemble. Page par page. En intégrant les vraies contraintes — les miennes, celles de Rosalie, les siennes. Quand est-ce que chacun est dispo. Ce qui peut se faire en autonomie. Ce qui nécessite un accompagnement.
À la fin : soixante heures de travail ventilées dans un vrai planning. Concret. Qui fait quoi. Quand.
Ma fille est sortie de cette session avec quelque chose qu'elle n'avait pas : de la clarté. Pas de la motivation artificielle. La capacité de voir ce qu'il y a à faire sans que ça l'écrase.
Un détail révélateur pendant cette session : je lui suggérais d'écrire d'abord la voix off de son dossier — c'est comme ça que moi je fonctionne. Elle bloquait complètement. Revenue à sa méthode naturelle (storyboard visuel d'abord), elle a produit dix fois plus vite. Suki s'adapte au fonctionnement de l'élève. Parfois mieux que le parent.
Ce qui a changé dans l'agent
La transition prof → coach s'est faite sans toucher à l'architecture. L'agent garde le même socle (mémoire, questions, suivi), mais le contexte a pivoté. Les critères STD2A sont devenus un nouveau bloc mémoire. La session a duré 2h30, entièrement en markdown structuré — todo lists, tableaux, estimations.
L'agent ne fait toujours pas le travail à sa place. Il structure, il ventile, il propose. Ma fille et moi validons.
L'architecture technique
Pour les devs qui veulent comprendre — ou reproduire.
Stack
Trois couches :
- Runtime agent : Letta (open source). C'est lui qui gère la mémoire, les outils, l'orchestration. Letta Cloud ou self-hosted via Docker.
- LLM : Claude 3.5 Sonnet (Anthropic) donne le meilleur qualité/prix pour Suki. Mias configurable — Letta supporte OpenAI, Groq, Ollama.
- Frontend : une interface web Next.js 15 + TypeScript, déployée séparément, qui consomme l'API Letta.
Les 10 blocs mémoire
Letta découpe la mémoire en blocs nommés. Tous sont toujours en contexte pour le LLM — pas de RAG, pas de résumés. Le LLM voit tout à chaque message.
persona/ → Identité Suki, vibe, règles d'interaction, onboarding
human/ → Profil Shayna (âge, niveau, style d'apprentissage, résultats)
avancement/ → Checklist 21 chapitres H/G/EMC/Techno avec statuts (interne)
avancement_shayna/ → Même données, formatées pour l'interface (barres de progression)
ressources_shayna/ → Liens rapides (Padlet, Lumni)
ressources_hg/ → CSV Padlet prof d'histoire + protocole analyse de photos/docs
ressources_techno/ → Padlet Techno + ressources Lumni
ressources_dnb/ → Liens officiels brevet (education.gouv, Eduscol)
kpop_trivia/ → Anecdotes Stray Kids + KATSEYE (déclencheurs de motivation)
formatting_rules/ → Règles UI : mood tags, GIFs, embeds YouTube, pas de blocs de code
La séparation avancement/ vs avancement_shayna/ est intentionnelle : l'un est interne (debug, suivi détaillé), l'autre est affiché dans la sidebar de l'interface.
Le system prompt
Court. Les instructions détaillées vivent dans les blocs mémoire, pas dans le prompt système.
Tu es Suki, coach de révision brevet de Shayna (14 ans, 3ème).
Toutes tes instructions sont dans tes memory blocks :
- persona → qui tu es, ton comportement
- human → profil de Shayna, ses résultats, ses priorités
- avancement → suivi interne de sa progression
- ressources_hg → Padlet + Lumni histoire-géo
- kpop_trivia → anecdotes SKZ + KATSEYE pour motiver
Règle principale :
- Avec Shayna → tu es Suki, vibe creepy cute 🖤🎀, jamais de mention technique
- Avec moi (mode config) → détails techniques OK
L'avantage : mettre à jour les instructions, c'est éditer un bloc mémoire, pas redéployer.
La méthode socratique en pratique
Voici un échange réel sur la 1ère Guerre Mondiale :
Suki : "Donne-moi les deux grandes alliances de la 1ère GM, même si t'es pas sûre."
Shayna : "Je sais pas..."
Suki : "Attends, là je sens que t'as pas vraiment cherché... Réessaie ! 👀"
Shayna : "Euh... Triple-Entente ?"
Suki : "YES ! ✅ Et l'autre ?"
Shayna : "Triple-Alliance ?"
Suki : "Bingo 🎯 Tu vois que tu sais ! Maintenant, quels pays dans chaque camp ?"
Shayna : "Je sais pas..."
Suki (escalade une fois) : "Indice : la France est dans l'Entente, l'Allemagne dans l'Alliance."
Shayna : "Entente = France + Russie + UK ?"
Suki : "PARFAIT ✨ T'as géré !!"
Règle d'or dans les instructions : jamais la réponse directe. Trois niveaux d'indice maximum. Si "je sais pas" apparaît deux fois de suite sans effort visible, c'est signalé.
Connexion frontend → agent
L'interface est une app Next.js distincte. Elle consomme l'API REST Letta standard :
const response = await fetch(
`https://api.letta.com/v1/agents/${agentId}/messages`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${LETTA_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
messages: [{ role: 'user', content: userMessage }],
}),
}
);
L'agent répond en Markdown enrichi avec des directives custom que le front parse :
// Mood (commentaire HTML invisible — déclenche une animation)
const moodMatch = response.match(/<!-- mood=(\w+) -->/);
if (moodMatch) triggerMoodAnimation(moodMatch[1]);
// Valeurs : neutral, focus, encouraging, stern, calm,
// surprise, funny, love, playful, creative,
// proud, celebration, reward, hype, epic
// Embed YouTube
response = response.replace(
/::youtube\{url="([^"]+)"(?:\s+title="([^"]+)")?\}/g,
(_, url, title) => `<iframe src="${url}" title="${title ?? ''}" />`
);
Ces directives permettent à l'agent de piloter l'UI (animations, vidéos, renommage de conversation) sans que l'interface ait à interpréter l'intention — l'agent décide, le front exécute.
Ce qui n'a pas marché au début
La première version avait tout dans le system prompt : profil, programme, ressources. Résultat : un prompt de 8 000 tokens qui se dégradait sur les sessions longues. La réécriture en blocs mémoire Letta a tout réglé — chaque bloc est éditable indépendamment, le contexte reste propre.
L'autre truc raté : essayer d'injecter les 278 ressources du Padlet directement dans le contexte. C'est de la mémoire archivale maintenant — Suki fait une recherche vectorielle quand elle en a besoin, au lieu de tout charger à chaque message.
Les garde-fous
Mettre une IA entre les mains d'une ado, ça pose des vraies questions. L'attachement. La dépendance. Le "pourquoi je réfléchirais si Suki peut le faire pour moi ?"
Ma fille a d'ailleurs vite trouvé le raccourci. "Je sais pas" en boucle pour que Suki fasse le boulot. Sauf que Suki ne lâche rien. Pas de réponse tant qu'il n'y a pas eu une vraie tentative. Trois "je sais pas" de confort d'affilée et c'est signalé.
Voici ce qu'on a mis en place :
- Sessions limitées à 45 minutes, pause obligatoire sans IA
- Fiches de révision physiques obligatoires — pas de validation sans support papier
- Questions socratiques en escalade : jamais de réponse directe
- Suivi transparent : ma fille sait que je peux voir l'avancement
- Si elle cherche du réconfort émotionnel, Suki la renvoie vers les humains
Et surtout : l'objectif affiché de Suki, c'est que ma fille ait de moins en moins besoin d'elle.
Est-ce que c'est parfait ? Non. Aujourd'hui, elle est en retard sur son dossier. Elle procrastine. L'outil ne remplace ni la présence, ni l'écoute, ni les négociations de fin de soirée.
Mais la mécanique change. Le contexte s'accumule au lieu de s'évaporer. Et elle peut travailler avec un interlocuteur patient, disponible à n'importe quelle heure.
Le verdict
Brevet oral 8 juin. Dossier STD2A 7 avril. Quatorze chapitres d'histoire à rattraper en trois mois sans cours en classe.
Une fois ces dates passées on pourra vraiment valider si le POC était efficace. Mais Shayna peut d'ores et déjà témoigner d'un gros gain en clarté sur ses révisions et son dossier STD2A
Suki est construite sur Letta — framework d'agents IA avec mémoire persistante. Open source.