← Retour aux projets

Personas IA pour Google Chat

Un système de rôles pour un assistant IA dans Google Chat, construit pendant mon stage chez DevFortress. Une commande crée une persona à partir d'un code, d'un nom, d'une personnalité et d'un PDF source; on mentionne l'application dans un chat et cette persona répond à partir de son document. L'usage principal était l'accueil des employés : une nouvelle recrue suit pas à pas le guide d'accueil de l'entreprise.

Architecture

Google ChatOrchestrateur (Apps Script)Sous-agent persona (Gemini + PDF)
L'orchestrateur reçoit chaque mention et la confie à la persona active du chat, qui répond seulement à partir de son PDF.

Une application Google Chat écrite en Apps Script reçoit les messages qui la mentionnent. Le modèle principal agit comme orchestrateur : il lit l'événement, cherche quelle persona est active dans ce chat et lui confie le message. Chaque persona est un sous-agent avec ses propres instructions, sa personnalité et son PDF source, et répond avec Gemini grâce à une recherche dans ce PDF. La persona active est enregistrée par chat, donc chaque chat garde la sienne.

Décisions clés

Des personas en sous-agents, pas un prompt réécrit

Transformer l'assistant lui-même en chaque personnage ferait se battre deux jeux d'instructions dans un seul prompt. Le modèle principal reste plutôt l'orchestrateur, et chaque persona tourne comme un sous-agent avec son propre contexte. La persona n'entre jamais en conflit avec les règles de l'assistant, donc elle garde son rôle pendant toute la conversation.

Répondre à partir du PDF, ou passer la main

Une persona répond grâce à une recherche dans son propre PDF, pas à partir de ce que le modèle sait déjà. Quand la réponse n'est pas dans le document, elle ne devine pas : elle dirige la nouvelle recrue vers la personne responsable. Dans un accueil, une mauvaise étape coûte plus cher qu'un simple renvoi.

Une persona par chat, changée seulement avec permission

La persona active est enregistrée pour chaque chat. Tout le monde dans le chat peut lui parler, mais seuls les utilisateurs autorisés peuvent la changer, et une seule est active à la fois. Chaque réponse d'un chat vient d'un seul rôle et d'un seul document.

Le point difficile

Faire patienter Google Chat sans erreur

Google Chat s'attend à ce qu'une application réponde vite à un événement, et chercher dans le PDF puis appeler Gemini pouvait prendre plus de temps. Une réponse lente se serait affichée comme une erreur dans le chat. J'ai fait en sorte que l'application accuse réception du message tout de suite et garde la conversation ouverte, donc l'utilisateur voyait l'indicateur de saisie pendant que la persona préparait sa réponse, et la réponse arrivait dès qu'elle était prête.

Sécurité et performance

  • Une persona ne s'active que lorsqu'on mentionne l'application, donc les messages ordinaires d'un chat partagé ne déclenchent ni ne changent jamais un rôle.
  • Changer la persona d'un chat demande une permission, et chaque persona ne lit que le PDF qu'on lui a donné.

Stack

Apps ScriptGoogle ChatGeminiRAG