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.
En bref
- 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.
- 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.
- 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
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.
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 ».
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.
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é.
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
| Mesure | Avant | Après |
|---|---|---|
| Assistant : temps de réponse | 26–51 s | 7,7 s |
| Assistant : premier mot affiché | fin de génération | 0,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