Mise en place d'un Career Memory Agent (mémoire professionnelle conversationnelle)
Période octobre 2026 → aujourd'hui
Contexte
Tout partait d’un manque : aucun endroit unique ne recensait mon activité professionnelle. Je voulais garder trace de tout ce qui peut resservir, et pouvoir justifier ce que j’ai fait, pour un portfolio, un entretien ou une évaluation. Le déclencheur était explicite, « avoir un genre de portfolio » et « un endroit où je recense tout ce que je fais ». La base de départ était une spec v0.1, qui décrivait un interlocuteur conversationnel capable de transformer le récit naturel du travail en réalisations structurées, sans jamais imposer de formulaire.
Objectif
Construire un MVP qui permette de raconter une expérience, à l’écrit ou à la voix, d’être interrogé de façon adaptative, et d’en sortir une fiche exploitable et versionnée.
Rôle
J’ai conçu et piloté l’ensemble en solitaire, en binôme avec l’agent. Je définis la spec, j’arbitre et je valide, l’agent implémente et conduit l’interview. (déduit)
Actions
J’ai transposé la spec dans un dépôt versionné, la spec y restant comme source de vérité. J’ai écrit le skill career-memory-agent, qui porte la détection, l’interview adaptative, la synthèse, la validation et huit workflows, de la nouvelle réalisation à la boucle de feedback. (fait)
La mémoire est en markdown et git, avec un cycle de vie explicite qui va de discovered à archived, et une confidentialité private par défaut. J’ai écrit un persona double-rôle dans SOUL.md : assistant d’infrastructure d’un côté, Career Memory Agent de l’autre, la bascule dépendant du fait que je raconte un accomplissement ou que je demande de l’aide. (fait)
Un premier générateur de page statique a été écrit le jour même, avant d’être remplacé par la vue Astro. J’ai réglé la chaîne vocale sur Groq whisper-large-v3, et posé la boucle d’amélioration continue : un retour va dans FEEDBACK.md, déclenche un patch du skill avec bump de version, et une entrée de CHANGELOG.md. (fait)
Décisions
Quatre choix structurent l’outil. La mémoire est du markdown versionné, indépendant de l’interface, la conversation n’étant qu’une des vues possibles. L’interview est adaptative plutôt qu’un formulaire, avec une ou deux questions au maximum, jamais une information déjà connue, et un arrêt dès que la fiche est exploitable. Toute réalisation est privée par défaut, le portfolio n’étant qu’une projection filtrée et non un doublon de la mémoire. Enfin, le STT passe par Groq plutôt que par le modèle local, un écart assumé au principe « aucun tiers » de la spec, arbitré en faveur de la précision sur les termes techniques. (fait)
Difficultés et solutions
Le STT local déformait les noms d’outils : « Prometheus » devenait « prometteux », « Grafana » devenait « graphana ». La bascule sur Groq whisper-large-v3 a corrigé le problème, un test comparatif donnant Prometheus et Grafana exacts là où turbo produisait « Prometheu ». (fait)
Le modèle Groq ne se règle pas par le fichier de configuration, mais par la variable STT_GROQ_MODEL dans ~/.hermes/.env, ce qui impose un redémarrage du gateway. C’est un piège Hermes documenté. (fait)
Résultats / Impact
Le MVP fonctionne et a été testé de bout en bout : vocal, transcription, interview adaptative, synthèse, validation, fiche markdown, page HTML. (fait)
Le gain est double, et il est qualitatif. D’un côté il n’y a plus besoin de tout rédiger, raconter suffit et l’outil structure. De l’autre les contributions ne sont plus oubliées, puisqu’elles sont enregistrées au moment où elles se produisent. (fait)
Le gain chiffré, temps passé à documenter ou nombre d’éléments rattrapés, reste (non mesuré, assumé). (fait)
Cette fiche est elle-même la première réalisation produite par l’outil, ce qui vaut auto-démonstration. (fait)
Apprentissages
Une architecture « cœur mince, capacités à la périphérie » suffit à bâtir un produit conversationnel complet : un skill et des fichiers, sans toucher au cœur de l’agent. (déduit)
Le cycle interview, synthèse, validation gagne à être explicite dans le prompt de l’agent, faute de quoi l’IA remplit un template au lieu d’interviewer. (déduit)
Preuves
Le dépôt ~/career-memory/ tourne sur git, branche main, historique complet, et il est poussé sur un dépôt distant privé. Le skill career-memory-agent et le persona SOUL.md vivent dans ~/.hermes/. Les trois scripts de génération et la suite de tests écrits à la mise en place (career.py, build_entities.py, build_site.py, tests/test_pipeline.py) ont été supprimés le 2026-10-02 lors de la refonte vers Astro.
Suite envisagée
Pour l’instant, le projet reste perso-privé et en phase de test. À terme, l’intention est d’essayer d’en faire quelque chose qui pourrait servir à d’autres, mais c’est une intention, pas un engagement. (fait : intention)
Depuis, la vue Astro a remplacé le générateur minimal, tout le Python du dépôt a été retiré, et la revue périodique tourne en cron. Restent non faits : la publication publique, volontairement désactivée, l’analyse d’offres d’emploi et le portfolio public. (fait)
Sources
Propos verbatim (transcriptions vocales / messages de la session) :
« est ce que tu peux te setup et on faites de l’amélioration continue ensemble à partir de mes feedback en te basant sur ce spec.md », puis la spec Career Memory Agent v0.1
« le stt je peux pas utiliser une clé groq api qui est free plutôt ? »
« utilise large 3 pas le turbo il est moins précis »
« C’est très simple, on va commencer par décrire tout ce qu’on vient de faire ensemble. »
« Pour répondre à la première question, le déclencheur c’est d’avoir un genre de portfolio et de pouvoir avoir un endroit où je recense tout ce que je fais, tout ce qui pourrait être utile plus tard, tout ce qui pourrait être utile pour justifier ce que j’ai fait ou d’autres choses comme ça. »
« Pour la réponse à la deuxième question sur comment je le vois, on est plus sur pour l’instant un projet perso-privé, et pourquoi pas essayer d’en faire quelque chose qui pourrait subvenir aux besoins de chacun. On verra ça plus tard. Pour l’instant, on fait des phases de test ensemble et on verra comment ça fonctionne. »
« On peut y aller pour l’affiche [la fiche]. »