Journaling AI Agent

Introduction

Journaling Agent est un bot Telegram personnel qui sert de journal de bord intelligent pour mon Travail de Bachelor. Je lui envoie des messages texte ou des notes vocales au fil de la journée pour documenter mon travail, et un agent IA décide automatiquement quoi en faire. Il transcrit mes vocaux, stocke mes entrées, retrouve des notes passées par recherche sémantique, et génère des résumés structurés en markdown prêts à être réutilisés dans mon rapport académique. Ce projet est le final project du cours Harvard CS50P (Introduction to Programming with Python), conçu comme terrain d'expérimentation avant le début de mon TB qui porte sur la conception d'un chatbot d'entreprise avec le Model Context Protocol.

Date

Avril 2026

Domaine

AI Agent / MCP

Le projet

L'architecture repose sur trois couches qui communiquent entre elles. Un bot Telegram reçoit les messages et les vocaux, les transmet à un agent Claude qui raisonne sur l'intention, et ce dernier interagit avec un serveur MCP local via un client Python custom.


Le serveur MCP expose huit outils que Claude peut appeler selon le contexte : créer un log du jour, compléter une entrée existante, récupérer des logs par date, rechercher sémantiquement dans les entrées passées avec FAISS, afficher des statistiques, lister les résumés manquants, générer un résumé, et le sauvegarder. Claude choisit dynamiquement le bon outil sans commandes rigides. "Aujourd'hui j'ai bossé sur l'architecture MCP" déclenche la création d'un log. "Qu'est-ce que j'ai fait sur Whisper ?" déclenche une recherche sémantique. "Résume ma semaine" enchaîne lecture des logs, application d'un prompt template MCP, et sauvegarde du résumé.


Les données sont stockées en SQLite pour les requêtes rapides, et les résumés markdown sont automatiquement poussés sur un repository GitHub dédié via un module git_sync. En cas de crash, l'application peut reconstruire son état local (index FAISS, mapping) à partir des données persistées.


Stack technique : Python, FastMCP (serveur MCP), MCP Python SDK (client), Anthropic Claude API (raisonnement), OpenAI Whisper API (transcription vocale), python-telegram-bot (interface utilisateur), SQLite (stockage), FAISS + sentence-transformers (recherche sémantique), subprocess + git (persistance GitHub).

Ce qu'il m'as apporté

Ce projet m'a permis de comprendre MCP de bout en bout, pas en théorie mais en implémentant chaque couche : le serveur qui expose les outils, le client qui traduit entre le protocole MCP et le function calling d'Anthropic, et l'agent qui orchestre le tout. Cette compréhension est directement transférable à mon Travail de Bachelor où je construirai un chatbot d'entreprise multi-sources avec la même architecture, à plus grande échelle.


Au-delà de la technique, le bot résout un problème concret. Documenter un projet de 15 semaines est fastidieux quand on est absorbé par le développement. Avec cet outil, je parle à mon téléphone pendant ou après une session de travail, et mon TB se documente progressivement. Les résumés structurés alimenteront directement la section "déroulement" de mon rapport, les décisions techniques seront traçables, et les blocages documentés nourriront l'analyse réflexive exigée par la HEIG-VD. C'est un outil que je vais utiliser chaque jour pendant les prochains mois, ce qui en fait le projet le plus utile que j'ai codé cette année.