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érequisLien direct vers Prérequis
- Node.js
v22.13.0ou une version ultérieure installé - Une clé d’API fournie par un Provider de modèle pris en charge
- Un projet Mastra existant. Suivez le guide d’installation si nécessaire.
- Un Workspace Slack dans lequel vous pouvez créer des applications
Créer l’AgentLien direct vers Créer l’Agent
Installez l’adaptateur Slack :
- npm
- pnpm
- Yarn
- Bun
npm install @chat-adapter/slack
pnpm add @chat-adapter/slack
yarn add @chat-adapter/slack
bun add @chat-adapter/slack
Créez un fichier src/mastra/agents/slack-agent.ts et définissez votre Agent :
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 :
import { Mastra } from '@mastra/core'
import { slackAgent } from './agents/slack-agent'
export const mastra = new Mastra({
agents: { slackAgent },
})
Créer une application SlackLien 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:readchannels:historychannels:readchat:writeusers: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 :
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 webhookLien 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
- pnpm
- Yarn
- Bun
npm run dev
pnpm run dev
yarn dev
bun 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_mentionmessage.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.
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’AgentLien 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 suivantesLien 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 :