← Projets

SaaS · Non-profit

LongTermHelp

Un SaaS gratuit qui aide les associations à produire leur marketing avec Gemini, à partir de leur propre profil et de leurs documents.

Rôle
Product owner, architecte, chef d'orchestre des agents
Période
Nov. 2025 → en cours
Statut
MVP en remise en état
01 Le tableau de bord d'une association fictive et le Content Studio.
02 L'assistant en streaming : recherche dans les documents, puis sur le web.
03 Génération Ad Grants avec validateurs (30/90 caractères) et réparation automatique.

En bref

  1. Problème : un audit a montré que des modules affichés « IA » n'étaient que des templates, et que l'assistant mettait jusqu'à 51 s à répondre.
  2. Ce que j'ai fait : audit, plan versionné, huit décisions tranchées, puis un swarm d'agents en vagues (une issue, une branche, une PR) validé en production.
  3. Résultat : une IA réellement contextualisée par association, un assistant en streaming à 7,7 s, et six défauts attrapés avant qu'un utilisateur ne les voie.

Contexte

Une petite association n’a ni équipe communication ni temps pour produire du contenu régulier, monter un compte Google Ad Grants conforme ou repérer les appels à projets qui la concernent.

Un audit du produit a aussi révélé un problème plus gênant : certains modules affichés « IA » n’étaient que des templates statiques, l’envoi d’email était factice et la veille n’avait jamais tourné. La remise en état visait un produit réellement utile, avec une IA qui connaît l’association.

Ce que fait le produit

  • Content Studio : posts, articles de blog et SEO, emails, adaptés à chaque canal.
  • Ad Grants : annonces encadrées par des validateurs (30/90 caractères, plafond de CPC, mots-clés) avec boucle de réparation automatique.
  • Assistant : répond à partir des documents de l’association (RAG) et bascule sur une recherche web quand le contexte interne ne suffit pas.
  • Appels à projets : scoring, matching et suivi.

Chaque appel au modèle reçoit le contexte propre à l’association : cause, mission, ton, extraits de ses documents. Un test vérifie que deux associations obtiennent des contextes et des résultats différents.

Architecture

interne

externe

principal

secours

Profil + documents

Découpage + embeddings

PostgreSQL

Demande

Routeur

RAG : extraits pertinents

Recherche web

Contexte de l'association

LLM

Gemini Flash

Modèle local

Validateurs + réparation

Streaming vers l'interface

Données cloisonnées par association, fournisseurs de LLM interchangeables, validateurs déterministes autour des sorties du modèle.

Méthode agentique

  • Audit avant le code : relecture du code existant pour séparer les constats vérifiés des hypothèses.
  • Plan versionné dans le repo : lots, constats, journal de progression. Source de vérité pour l’humain comme pour les agents.
  • Swarm en trois vagues : une issue = une branche = une PR, un agent par worktree. Les fichiers à fort risque de conflit passent en séquence.
  • Acceptation en trois temps : scénario Gherkin relu avant le code, développement, puis validation sur l’environnement de preview de la PR.
  • Validation en production avec un compte de test : elle a révélé quatre défauts invisibles aux tests unitaires (recherche web non déclenchée, mode « réflexion » trop lent, accents perdus, Ad Grants trop long), chacun corrigé par une PR dédiée.

Décisions

Les choix qui structurent le projet, avec l'option écartée et la raison.

  1. D1 Gemini Flash en principal

    Choix
    Gemini Flash pour le chat et la génération, modèle local en secours.
    Écarté
    Petit modèle local seul.
    Pourquoi
    Le modèle local expliquait la latence (26–51 s) et les réponses « je ne sais pas ».
  2. D2 Échouer explicitement

    Choix
    Erreur visible quand le LLM est indisponible ; un repli sur template est affiché comme tel.
    Écarté
    Repli silencieux sur un template.
    Pourquoi
    C'est exactement ce qui avait masqué l'absence d'IA réelle dans l'audit.
  3. D3 Email bouchonné, assumé

    Choix
    Génération des séquences réelle, envoi simulé et signalé.
    Écarté
    Brancher un fournisseur d'envoi tout de suite.
    Pourquoi
    Valider la valeur du contenu avant d'ajouter un fournisseur, des coûts et de la délivrabilité.
  4. D4 Décisions humaines numérotées

    Choix
    Huit décisions (D1 à D8) tranchées par moi et tracées dans le repo.
    Écarté
    Laisser les agents arbitrer au fil des PR.
    Pourquoi
    Un agent optimise sa tâche, pas le produit. Les arbitrages restent visibles et réversibles.

Résultats

Mesures relevées en production sur un compte de test (journal du dépôt, oct. 2026).
MesureAvantAprès
Assistant : temps de réponse26–51 s7,7 s
Assistant : premier mot affichéfin de génération0,8 s
Séquence email générée·3,1 s
PR menées en parallèle par des agents·9
Défauts attrapés (prod + revue)·4 + 2
Tests verts conservés·1 295

Limites et suite

  • Pas encore de bêta avec une vraie association : la valeur métier reste à confirmer.
  • La génération Ad Grants restait trop lente (97 s pour un objectif de 30 s) au moment de l'écriture ; correctif en cours.
  • Le module de veille des appels à projets existe mais n'a pas encore tourné en production.

Ce que ce projet démontre

  • Orchestrer un swarm d'agents de dev : worktrees, vagues, ordre de merge, zones de conflit
  • Arbitrer et tracer les décisions produit au lieu de les laisser aux agents
  • Ingénierie LLM/RAG : contexte par tenant, fournisseurs interchangeables, validateurs déterministes
  • Valider en production, pas seulement en tests unitaires