> Discover all available pages from the documentation index: https://mastra.zisheng.pro/fr/llms.txt # Canaux CopilotKit Le même agent Mastra qui alimente votre copilote intégré à l’application peut aussi s’exécuter comme bot dans des plateformes de messagerie. Le SDK Channels de CopilotKit connecte votre agent à Slack et à d’autres plateformes de messagerie ; les fils de discussion, appels de Tools, messages interactifs enrichis et validations avec intervention humaine sont gérés nativement dans le canal. > **Info:** La configuration complète des plateformes est décrite dans la [documentation CopilotKit Channels](https://docs.copilotkit.ai/slack/mastra). Cette page montre comment Channels s’intègre à un agent Mastra. ## Fonctionnement Votre agent Mastra reste à l’endroit où il est déployé, exposé via AG-UI avec `registerCopilotKit()` (voir la [présentation de CopilotKit](https://mastra.zisheng.pro/fr/guides/build-your-ui/copilotkit/overview)). Un canal est un processus distinct et durable construit avec `@copilotkit/channels` : vous lui associez un ou plusieurs adaptateurs de plateforme et le dirigez vers votre agent. `createChannel` accepte un tableau d’adaptateurs ; un même processus peut donc servir plusieurs plateformes à la fois. Installez le SDK (tous les adaptateurs sont inclus) : **npm**: ```bash npm install @copilotkit/channels ``` **pnpm**: ```bash pnpm add @copilotkit/channels ``` **Yarn**: ```bash yarn add @copilotkit/channels ``` **Bun**: ```bash bun add @copilotkit/channels ``` ```typescript import { createChannel, Message, Section } from '@copilotkit/channels' import { slack } from '@copilotkit/channels/slack' import { mastraAgent } from './agent' // your AG-UI Mastra agent const channel = createChannel({ // Point the channel at your Mastra agent (an AbstractAgent, or a per-thread factory). agent: mastraAgent, adapters: [ slack({ botToken: process.env.SLACK_BOT_TOKEN!, appToken: process.env.SLACK_APP_TOKEN!, }), ], }) channel.onMention(async ({ thread }) => { await thread.runAgent() }) await channel.start() ``` L’agent reçoit des entrées AG-UI classiques et émet des événements AG-UI classiques ; la mécanique de la plateforme reste derrière l’adaptateur, de sorte que le même agent Mastra s’exécute sans modification dans chaque canal. Les messages enrichis sont écrits en JSX et rendus dans le format natif de chaque plateforme (Block Kit dans Slack, par exemple), ce qui assure une dégradation élégante lorsqu’une plateforme ne dispose pas d’équivalent. ## Slack Le [démarrage rapide Slack](https://docs.copilotkit.ai/slack/mastra) vous guide depuis zéro jusqu’à un bot que vous pouvez mentionner avec `@` dans un canal, puis ajoute une carte à bouton interactif. Slack fonctionne via Socket Mode, qui ouvre un WebSocket sortant vers Slack ; aucune URL publique ni tunnel n’est donc requis pendant le développement. Définissez les identifiants Slack dans votre environnement : - `SLACK_BOT_TOKEN` : jeton OAuth de l’utilisateur bot (`xoxb-...`) - `SLACK_APP_TOKEN` : jeton au niveau de l’application avec le scope `connections:write` (`xapp-...`) ## Autres plateformes Le SDK Channels ne se limite pas à Slack. D’autres plateformes telles que Microsoft Teams utilisent la même API `@copilotkit/channels` : ajoutez l’adaptateur correspondant au tableau `adapters` et le reste du code de votre agent demeure identique. Consultez la [documentation CopilotKit Channels](https://docs.copilotkit.ai/slack/mastra) pour obtenir la liste actuelle des plateformes et leur configuration. ## Pipeline de messages et architecture Les canaux gérés maintiennent une séparation volontaire des identifiants, ce qui est important lorsque votre agent Mastra utilise des clés de modèle et des Tools distincts : - **Vous conservez** la logique de l’agent, les identifiants du modèle, les Tools et le processus du canal. - **CopilotKit Intelligence gère** les identifiants de plateforme, la livraison des messages, l’enregistrement, l’état de santé et les reconnexions. Un tour commence lorsqu’un utilisateur envoie un message à l’application. Intelligence reçoit l’événement de plateforme, puis la passerelle transmet le tour à votre processus de canal en cours d’exécution. Votre agent Mastra s’exécute et rend une réponse. Intelligence renvoie ensuite la réponse sous forme de contenu natif de la plateforme. Les identifiants de plateforme n’entrent jamais dans le processus de l’agent, et Intelligence Enterprise peut être auto-hébergé pour la résidence des données. > **Remarque:** Par défaut, les actions interactives sont conservées en mémoire et réinitialisées au redémarrage. Soutenez le canal par un stockage durable des actions et de l’état (Redis ou Postgres), afin que les boutons et l’état de chaque fil survivent aux redémarrages et soient partagés entre plusieurs instances.