Slack et canaux
Connectez Slack à un projet et contrôlez les sessions depuis un canal.
Un canal relie une plateforme de chat à un projet. Un message dans un canal connecté démarre une session. L’agent répond dans le même fil.
Canaux disponibles
Beeuni prend actuellement en charge quatre plateformes de canal :
- Slack — connectez-vous en un clic via l’application gérée par Beeuni, ou apportez votre propre jeton de bot.
- Microsoft Teams — connectez-vous via l’autorisation OAuth d’un administrateur de l’organisation, ou apportez votre propre Azure Bot (expérimental ; activez-le dans Settings → Feature flags).
- E-mail — un canal reposant sur AgentMail (expérimental ; activez-le dans Settings → Feature flags).
- Voix — un canal vocal en temps réel (expérimental ; activez-le dans Settings → Feature flags). Parlez avec un agent en temps réel.
Seuls Slack et Microsoft Teams se connectent via la CLI et le tableau de bord. L’e-mail et la voix se gèrent depuis le tableau de bord. Cette page traite de Slack. Teams suit les mêmes règles de session, de liaison d’identité et d’identifiants.
Comment un canal démarre une session
Le premier message d’un fil Slack ou d’une conversation Teams crée une session. Le fil conserve cette session, même après l’arrêt et la reprise du bac à sable.
Dans un canal Slack, un message ultérieur ne parvient à la session que s’il mentionne le bot. Les réponses sans mention sont destinées aux personnes du fil. L’agent les lit lorsqu’une personne le mentionne à nouveau. Dans un message direct, chaque message est envoyé à la session.
Un espace de travail Slack connecté à plusieurs projets affiche un sélecteur de projet à la première mention.
Liaison d’identité
Beeuni associe chaque expéditeur de chat à un compte Beeuni avant que l’agent n’agisse
pour lui. Exécutez /beeuni login dans Slack et suivez le lien pour vous connecter. Teams
impose la même exigence. Un expéditeur sans compte associé reçoit une invitation à le lier au lieu de lancer une session.
Un lien de connexion ne fonctionne qu’une fois et expire après 10 minutes. Un compte Slack
connecté à un compte Beeuni ne peut pas être connecté à un autre : exécutez
/beeuni logout d’abord. Si votre organisation exige l’authentification à deux facteurs,
Beeuni vous demande votre second facteur avant de vous connecter, et la conversation
s’exécute avec le facteur utilisé pour la connexion.
Chaque action est effectuée au nom du compte associé de la personne qui l’a entreprise, avec le rôle de ce compte dans le projet. Les propriétaires et administrateurs de compte sont considérés comme des responsables de projet.
| Action | Qui peut l’effectuer |
|---|---|
| Mentionner le bot, dans un nouveau message ou dans son fil | Un compte associé ayant accès au projet, dans les limites de la politique du canal |
| Arrêter une exécution | La personne qui a envoyé le message auquel l’agent répond, ou toute personne autorisée dans cette session, si elle peut toujours utiliser le projet |
| Modifier le projet, l’agent, le modèle ou la politique du canal | Un responsable de projet ; dans un message direct avec le bot, tout membre du projet |
| Traiter une demande de révision | Un responsable de projet |
| Approuver ou refuser un appel de connecteur | Un responsable de projet, ou la personne qui a démarré la session |
Autoriser une personne dans un fil owner_approval |
Le propriétaire de la session |
link-bot |
Un responsable de projet |
Où se trouvent les identifiants
Le jeton du bot d’un canal connecté est un secret associé au connecteur. Il n’apparaît pas sur la page Secrets du projet. Beeuni ne l’injecte jamais dans un bac à sable. Beeuni résout le jeton côté serveur lorsque l’agent envoie ou lit un message de chat.
Connecter Slack
Démarrer la connexion
Depuis la CLI, exécutez :
beeuni channels connectSur un hôte où l’application Slack partagée est configurée (Beeuni Cloud, par exemple),
cette commande affiche un lien d’installation en un clic. Ouvrez le lien et choisissez l’espace de travail.
Cliquez sur Allow. Ajoutez --wait pour que la commande continue d’interroger le système jusqu’à l’installation.
Depuis le tableau de bord, ouvrez la page Channels du projet et connectez-y Slack à la place. Le processus d’installation est le même.
Utiliser votre propre application Slack
Pour utiliser votre propre application Slack, exécutez beeuni channels manifest afin d’afficher un manifeste d’application. Créez l’application à l’adresse
api.slack.com/apps à partir de ce manifeste. Installez l’application dans votre espace de travail.
Exécutez ensuite :
beeuni channels connect --manual --bot-token xoxb-... --signing-secret ...Vérifier la connexion
beeuni channels statusExécutez beeuni channels disconnect pour supprimer la connexion. Consultez la
référence de la CLI pour connaître toutes les options.
La connexion de Slack ajoute pour vous une entrée channel connector à
beeuni.yaml. Vous n’avez jamais à écrire cette entrée manuellement.
Utiliser Slack
Mentionnez le bot avec une tâche dans n’importe quel canal qu’il a rejoint, ou ouvrez un message direct. Le fil conserve sa session comme décrit ci-dessus. Mentionnez à nouveau le bot dans un fil de canal pour poursuivre. Une simple mention sans tâche invite à en ajouter une au lieu de démarrer une session.
Ce que l’agent peut lire
L’agent lit Slack via le connecteur Slack du projet
(beeuni_slack ou la commande slack dans le bac à sable). Tous les projets
connectés au même espace de travail Slack utilisent le même bot ; Beeuni limite donc chaque lecture aux conversations propres au projet :
| Conversation | Lecture |
|---|---|
| Un canal ou un message direct connecté à ce projet | Autorisée |
| Un fil démarré ou rejoint par une session de ce projet, dans n’importe quel canal | Autorisée |
| Un canal, un message direct ou un fil d’un autre projet | Refusée |
| Une conversation à laquelle aucun projet n’est connecté | Autorisée uniquement tant qu’aucun autre projet n’est connecté à l’espace de travail |
Une lecture refusée répond 403 avec la raison conversation_not_in_project et
un message indiquant le nom de la conversation. Pour lire une conversation à laquelle aucun projet
n’est connecté, connectez-la d’abord : exécutez /beeuni switch dans celle-ci et choisissez ce
projet.
- L’historique d’un canal exclut les messages du fil d’un autre projet.
get_historyetget_threadajoutentuser_nameà chaque message dont Slack peut identifier l’auteur, à côté de l’identifiantuser. Jusqu’à 25 personnes sont nommées par lecture ; tout nom que Slack ne renvoie pas dans les 2 secondes est omis.list_channelsrépertorie tous les canaux publics, ainsi que les canaux privés et les messages directs que l’agent peut lire.channel_inforépond pour n’importe quel canal public. Un canal privé ou un message direct suit le tableau ci-dessus.file_inforépond lorsque le fichier est partagé dans une conversation que l’agent peut lire ou dans un fil de ce projet.slack downloadsuit la même règle : si le fichier est partagé uniquement dans la conversation d’un autre projet, la réponse est403. Le téléchargement s’arrête à 50 Mo et répond413.search_messagesne fonctionne que tant qu’aucun autre projet n’est connecté à l’espace de travail, car une recherche ne peut pas être limitée aux conversations d’un seul projet.list_users,user_infoetauth_testlisent l’annuaire de l’espace de travail et ne sont pas limités.
Les écritures suivent leur propre règle, décrite ci-dessous.
Ce que l’agent peut publier
La publication, l’envoi d’un fichier, la modification, la suppression, l’ajout d’une réaction, l’accès à un canal et l’association d’un fil suivent une même règle : l’agent n’agit jamais dans le canal ou le fil d’un autre projet.
| Cible | Écriture |
|---|---|
| Un canal de ce projet, ou un fil démarré ou rejoint par l’une de ses sessions | Autorisée |
| Un canal auquel aucun projet n’est connecté | Autorisée. Un nouveau message démarre le fil de ce projet ; une réponse qui mentionne le bot revient donc à la session |
| Un message direct avec une personne | Autorisé, même si le message direct de cette personne avec le bot exécute un autre projet |
| Un canal ou un message direct de groupe d’un autre projet | Refusé |
| Un fil d’un autre projet, dans n’importe quelle conversation | Refusé : aucune réponse, modification, suppression ou réaction |
Une écriture refusée répond 403 avec la raison conversation_not_in_project
et un message indiquant le nom de la conversation. slack send --file et
slack bind-thread suivent la même règle.
channel doit être l’identifiant de la conversation ou de l’utilisateur, comme C0123ABCD ou
U0123ABCD, et non un nom de canal. Slack publie dans un nom, qu’il est impossible de vérifier selon cette règle. Si Slack publie malgré tout un message ailleurs que dans la conversation vérifiée, Beeuni supprime le message et refuse la publication.
Pour publier dans un canal géré par un autre projet, exécutez /beeuni switch dans ce canal et
choisissez ce projet, ou publiez depuis ce projet.
Contrôler une session avec des commandes slash
Dans Slack, saisissez ces commandes sous la forme /beeuni <command> ou en texte brut dans un message direct. Les commandes slash ne fonctionnent pas dans le volet de message direct Assistant ; Beeuni y interprète donc les mêmes mots en texte brut.
| Commande | Fonction |
|---|---|
login, logout |
Associer ou dissocier votre identité Slack |
switch, unbind |
Réassocier ou dissocier ce canal de son projet |
projects |
Répertorier les projets auxquels vous pouvez associer ce canal |
sessions |
Répertorier les sessions récentes démarrées dans cet espace de travail |
whoami |
Afficher le panneau du canal : projet, agent, modèle, politique et identité associée |
models |
Choisir le modèle pour ce canal — voir Modèles et clés |
agent <name>, model <id> |
Définir l’agent ou le modèle utilisé par ce canal |
policy <mode> |
Définir qui peut démarrer des sessions ici |
help |
Répertorier toutes les commandes |
policy accepte project_open (valeur par défaut — tout membre du projet qui mentionne le bot démarre une session), owner_approval ou owner_only. Il s’agit d’un paramètre propre à une ressource sur un canal, et non d’un rôle. Il n’accorde aucune autorisation refusée par la décision liée au rôle — voir
Comptes et accès.
Modèles et clés
/beeuni models répertorie tous les modèles que vous pouvez utiliser ici, comme le sélecteur Web : les modèles Beeuni et ceux auxquels vous accédez via une clé API de fournisseur ou un abonnement ChatGPT. Chaque modèle indique son mode de facturation. Une longue liste s’affiche dans un sélecteur où vous pouvez taper. Choisissez un modèle ou saisissez /beeuni model <id> ; /beeuni model default rétablit la valeur par défaut du projet.
Les clés disponibles dépendent de la conversation :
- Un message direct avec le bot — vos propres clés et votre abonnement ChatGPT, ainsi que les clés partagées avec le projet. Les sessions sont privées.
- Un canal ou un message direct de groupe — uniquement les clés partagées avec l’ensemble du projet. Choisissez plutôt dans un message direct un modèle qui utilise vos propres clés.
Un modèle qui utilise des clés se sert de toutes les clés que vous pouvez utiliser pour son fournisseur, en alternant entre elles lorsque des limites de débit sont atteintes. Le modèle du canal démarre chaque nouveau fil ; un fil conserve le modèle avec lequel il a démarré. Si un fil ne peut plus utiliser son modèle, celui-ci est remplacé pour le message concerné, au lieu de faire échouer le message. Voir Clés de fournisseur et accès des membres.
Un suivi accompagné d’une image utilise un modèle capable de lire les images. Si aucun modèle disponible ne le permet, l’agent en est informé dans l’invite : il indique qu’il ne peut pas voir l’image et demande une description textuelle, au lieu de deviner.
Noms des canaux et des personnes
Slack envoie des identifiants, comme C0123ABCD et U0123ABCD. Beeuni affiche les noms tels qu’ils apparaissent dans Slack et conserve les identifiants pour les opérations.
| Emplacement | Affichage |
|---|---|
La page Channels, beeuni channels bindings |
#channel pour un canal public ou privé, la personne pour un message direct, les membres pour un message direct de groupe |
| Un message Slack dans une session | Le nom de l’expéditeur et #channel |
Une réponse slack send dans une session |
#channel, ou la personne pour un message direct |
| Le titre de la session | Les mentions telles que Slack les affiche : @Beeuni, et non <@U0123ABCD> |
| L’invite de l’agent | Les noms à côté des identifiants : Sam Rivera (U0123ABCD), #general (C0123ABCD) |
| Les étapes du plan de l’agent dans Slack | Une personne sous la forme @Sam Rivera, un canal sous la forme #general. Une étape ne notifie jamais personne |
| Une carte d’approbation dans Slack | Un paramètre de canal sous forme de lien de canal, nommé par Slack selon vos propres accès. Un paramètre utilisateur avec le nom de la personne |
Un canal que Slack ne parvient pas à trouver s’affiche comme Canal indisponible et conserve son identifiant. Cela se produit si le canal a été supprimé ou si le bot en a été retiré. Tout nom que Slack ne renvoie pas dans les 2 secondes est omis du message. L’invite ne contient alors que les identifiants, et le tour n’attend pas.
Approbations
Lorsqu’un agent a besoin d’une décision humaine avant de poursuivre, il crée une demande de révision. Si la session a été démarrée depuis ce fil, la décision s’affiche ici sous forme de carte : un titre, un résumé, un niveau de risque et les options Approve, Request changes et Deny.
Request changes ouvre une zone de texte pour préciser les modifications souhaitées. Votre saisie est enregistrée avec la décision et transmise à l’agent, qui n’a donc pas besoin de vous le demander une seconde fois. C’est facultatif : si vous envoyez un texte vide, l’agent est invité à vous demander des précisions. Les actions Approve et Deny restent accessibles en un clic.
Pour traiter une demande de révision, il faut un compte Beeuni associé disposant d’un accès en écriture au projet.
Arrêter une exécution
Pendant que l’agent travaille, son message en direct comporte un bouton Stop. Il met fin à l’exécution dans le moteur d’exécution, et pas seulement au niveau du message : une exécution qui reste ouverte absorbe le prochain message du fil au lieu d’y répondre.
La personne qui a envoyé le message auquel l’agent répond peut l’arrêter, tout comme toute personne autorisée dans cette session, tant qu’elle peut encore utiliser le projet. Une personne présente dans le canal sans participer ne le peut pas ; elle reçoit une note privée qui le lui indique.
Fonctionnalités non prises en charge
- Les commandes slash ne fonctionnent pas dans le volet de message direct Assistant. Saisissez
/beeuni <command>en texte brut à la place. - Les autres plateformes de chat, notamment Telegram, ne sont pas prises en charge comme canaux pour le moment. Seuls Slack et Microsoft Teams se connectent via la CLI et le tableau de bord ; l’e-mail et la voix se connectent via le tableau de bord.