> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # 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 - Node.js `v22.13.0` ou une version ultérieure installé - Une clé d’API fournie par un [Provider de modèle](https://mastra.zisheng.pro/fr/models) pris en charge - Un projet Mastra existant. Suivez le [guide d’installation](https://mastra.zisheng.pro/fr/guides/getting-started/quickstart) si nécessaire. - Un [Workspace Slack](https://slack.com/) dans lequel vous pouvez créer des applications ## Créer l’Agent Installez l’adaptateur Slack : **npm**: ```bash npm install @chat-adapter/slack ``` **pnpm**: ```bash pnpm add @chat-adapter/slack ``` **Yarn**: ```bash yarn add @chat-adapter/slack ``` **Bun**: ```bash bun add @chat-adapter/slack ``` Créez un fichier `src/mastra/agents/slack-agent.ts` et définissez votre 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` : ```ts import { Mastra } from '@mastra/core' import { slackAgent } from './agents/slack-agent' export const mastra = new Mastra({ agents: { slackAgent }, }) ``` ## Créer une application Slack Vous avez besoin d’une application Slack pour connecter votre Agent à un Workspace. Accédez à 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` : ```bash 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](https://chat-sdk.dev/adapters/slack) pour plus de détails. ## 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**: ```bash npm run dev ``` **pnpm**: ```bash pnpm run dev ``` **Yarn**: ```bash yarn dev ``` **Bun**: ```bash 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 : ```bash 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 : ```text https:///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](https://mastra.zisheng.pro/fr/docs/deployment/overview), 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 Avant de tester l’intégration avec Slack, vous pouvez affiner le comportement de votre Agent dans [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview). Ouvrez 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 : ```text /invite @your-bot-name ``` Mentionnez le bot dans le Channel : ```text @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 Vous pouvez étendre cet Agent pour : - [Déployer votre application](https://mastra.zisheng.pro/fr/docs/deployment/overview) 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](https://mastra.zisheng.pro/fr/docs/capabilities/channels/overview) afin que votre Agent puisse traiter les images, les vidéos et les fichiers audio partagés dans le chat - Ajouter des [Tools](https://mastra.zisheng.pro/fr/docs/agents/using-tools) afin de donner à l’Agent accès à des API et des données externes En savoir plus : - [Présentation des Channels](https://mastra.zisheng.pro/fr/docs/capabilities/channels/overview) - [Studio](https://mastra.zisheng.pro/fr/docs/studio/overview) - [Présentation du déploiement](https://mastra.zisheng.pro/fr/docs/deployment/overview) - [Documentation des adaptateurs Chat SDK](https://chat-sdk.dev)