Aller au contenu principal

Créer un assistant Slack

Dans ce guide, vous allez créer un Agent Mastra qui répond aux messages et aux mentions sur Slack. Vous apprendrez à configurer un adaptateur de Channel, à créer une application Slack avec les autorisations appropriées, à la connecter à votre Agent via un webhook et à tester l’interaction.

Prérequis
Lien direct vers Prérequis

Créer l’Agent
Lien direct vers Créer l’Agent

Installez l’adaptateur Slack :

npm install @chat-adapter/slack

Créez un fichier src/mastra/agents/slack-agent.ts et définissez votre Agent :

src/mastra/agents/slack-agent.ts
import { Agent } from '@mastra/core/agent'
import { createSlackAdapter } from '@chat-adapter/slack'

export const slackAgent = new Agent({
id: 'slack-agent',
name: 'Slack Agent',
instructions:
'You are a helpful assistant. Answer questions, help with tasks, and have natural conversations.',
model: 'anthropic/claude-opus-4-7',
channels: {
adapters: {
slack: createSlackAdapter(),
},
},
})

La propriété channels indique à Mastra de générer un endpoint de webhook pour chaque adaptateur. Ici, l’adaptateur Slack gère automatiquement la vérification des événements, la validation des signatures et la mise en forme des messages.

Enregistrez l’Agent dans votre fichier src/mastra/index.ts :

src/mastra/index.ts
import { Mastra } from '@mastra/core'
import { slackAgent } from './agents/slack-agent'

export const mastra = new Mastra({
agents: { slackAgent },
})

Créer une application Slack
Lien direct vers Créer une application Slack

Vous avez besoin d’une application Slack pour connecter votre Agent à un Workspace.

Accédez à https://api.slack.com/apps et sélectionnez Create New App > From scratch. Donnez-lui un nom et sélectionnez votre Workspace.

Accédez à OAuth & Permissions, puis faites défiler la page jusqu’à Bot Token Scopes. Ajoutez les scopes suivants :

  • app_mentions:read
  • channels:history
  • channels:read
  • chat:write
  • users:read

En haut de la page OAuth & Permissions, sélectionnez Install to Workspace. Copiez le Bot User OAuth Token (xoxb-...).

Accédez à Basic Information > App Credentials et copiez le Signing Secret, par exemple c3a4....

Vérifiez que Socket Mode est défini sur off dans Settings > Socket Mode.

Ajoutez les identifiants à votre fichier .env :

.env
SLACK_SIGNING_SECRET=your-signing-secret
SLACK_BOT_TOKEN=xoxb-your-bot-token

L’adaptateur lit ces variables d’environnement par défaut. Consultez la documentation de l’adaptateur Slack de Chat SDK pour plus de détails.

Connecter le webhook
Lien direct vers Connecter le webhook

Slack transmet les événements à votre Agent via un webhook. Mastra génère automatiquement cet endpoint pour chaque adaptateur de Channel.

Démarrez le serveur de développement :

npm run dev

Pendant le développement local, Slack a besoin d’une URL publique pour atteindre votre serveur local. Ouvrez un nouveau terminal et démarrez un tunnel :

npx cloudflared tunnel --url http://localhost:4111

Cette commande renvoie une URL publique temporaire telle que https://triple-arms-solutions-kit.trycloudflare.com. L’URL change à chaque redémarrage du tunnel.

Dans les paramètres de votre application Slack, accédez à Event Subscriptions et définissez Enable Events sur On.

Définissez la Request URL sur l’URL de votre tunnel suivie du chemin du webhook de l’Agent :

https://<your-tunnel-url>/api/agents/slack-agent/channels/slack/webhook

Slack envoie une requête de vérification. Si votre serveur de développement est actif, une coche verte s’affiche.

Sous Subscribe to bot events, ajoutez :

  • app_mention
  • message.channels

Sélectionnez Save Changes. Slack exige de réinstaller l’application après toute modification des abonnements aux événements. Accédez à OAuth & Permissions, puis sélectionnez Reinstall to Workspace pour appliquer les nouvelles autorisations.

remarque

L’URL du tunnel est réservée au développement local. Lorsque vous déployez votre application, remplacez la Request URL dans Event Subscriptions de votre application Slack par votre URL de production, par exemple https://your-app.example.com/api/agents/slack-agent/channels/slack/webhook.

Tester l’Agent
Lien direct vers Tester l’Agent

Avant de tester l’intégration avec Slack, vous pouvez affiner le comportement de votre Agent dans Studio. Ouvrez http://localhost:4111/ pour discuter avec votre Agent et ajuster ses instructions. Examinez les traces pour comprendre comment les réponses sont générées.

Lorsque les réponses de l’Agent vous conviennent, testez l’intégration Slack. Invitez le bot dans un Channel Slack :

/invite @your-bot-name

Mentionnez le bot dans le Channel :

@your-bot-name What can you help me with?

L’Agent répond dans le thread. La sortie peut varier selon le modèle et les instructions.

Étapes suivantes
Lien direct vers Étapes suivantes

Vous pouvez étendre cet Agent pour :

  • Déployer votre application et remplacer la Request URL Slack par votre endpoint de production
  • Ajouter d’autres adaptateurs, tels que Discord et Telegram, au même Agent pour qu’il réponde sur plusieurs plateformes
  • Configurer le contenu multimodal afin que votre Agent puisse traiter les images, les vidéos et les fichiers audio partagés dans le chat
  • Ajouter des Tools afin de donner à l’Agent accès à des API et des données externes

En savoir plus :