> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # CopilotKit channels 為應用程式內 copilot 提供功能的同一個 Mastra Agent,也能作為 bot 在訊息平台中執行。CopilotKit 的 Channels SDK 可將 Agent 連接至 Slack 與其他訊息平台,並由 channel 原生處理討論串、Tool 呼叫、豐富的互動式訊息及 human-in-the-loop 核准流程。 > **資訊:** 完整的平台設定請參閱 [CopilotKit Channels 文件](https://docs.copilotkit.ai/slack/mastra)。本頁說明 Channels 如何與 Mastra Agent 搭配運作。 ## 運作方式 Mastra Agent 會留在原本的部署位置,並透過 `registerCopilotKit()` 以 AG-UI 公開(請參閱 [CopilotKit 概觀](https://mastra.zisheng.pro/zh-TW/guides/build-your-ui/copilotkit/overview))。channel 是以 `@copilotkit/channels` 建構、獨立長時間執行的處理程序:你可以掛接一或多個平台 adapter,並讓 channel 指向 Agent。`createChannel` 接受 adapter 陣列,因此單一處理程序可同時服務多個平台。 安裝 SDK(內含所有 adapter,開箱即用): **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() ``` Agent 會接收一般的 AG-UI 輸入並發出一般的 AG-UI 事件;平台機制封裝在 adapter 後方,因此同一個 Mastra Agent 不需修改,就能在每個 channel 中執行。豐富訊息以 JSX 撰寫,並轉譯為各平台的原生格式(例如 Slack 上的 Block Kit);若平台沒有對應功能,互動式卡片也能平順降級。 ## Slack [Slack 快速入門](https://docs.copilotkit.ai/slack/mastra)會引導你從零開始建立可在 channel 中以 `@` 提及的 bot,接著加入互動式按鈕卡片。Slack 透過 Socket Mode 運作,會開啟連往 Slack 的對外 WebSocket,因此開發期間不需要公開 URL 或 tunnel。 在環境中設定 Slack 認證資訊: - `SLACK_BOT_TOKEN`:Bot User OAuth token(`xoxb-...`) - `SLACK_APP_TOKEN`:具備 `connections:write` scope 的 App-level token(`xapp-...`) ## 其他平台 Channels SDK 不只支援 Slack。Microsoft Teams 等其他平台也透過相同的 `@copilotkit/channels` API 運作:將對應的 adapter 加入 `adapters` 陣列,其餘 Agent 程式碼都不需要變更。如需目前支援的平台清單及各平台的設定方式,請參閱 [CopilotKit Channels 文件](https://docs.copilotkit.ai/slack/mastra)。 ## 訊息管線與架構 受管理的 channel 會刻意分開認證資訊;當 Mastra Agent 使用獨立的模型金鑰與 Tool 時,這點尤其重要: - **由你保管** Agent 邏輯、模型認證資訊、Tool 與 channel 處理程序。 - **由 CopilotKit Intelligence 保管**平台認證資訊,並負責訊息傳遞、註冊、健康狀態與重新連線。 當使用者傳送訊息給應用程式時,一個互動回合便會開始。Intelligence 接收平台事件,再由 gateway 將該回合傳遞至執行中的 channel 處理程序。Mastra Agent 執行並產生回覆後,Intelligence 會以平台原生內容傳回回覆。平台認證資訊絕不會進入 Agent 處理程序,而企業版 Intelligence 可自行託管,以滿足資料落地需求。 > **備註:** 互動式 action 預設儲存在記憶體中,重新啟動時會重設。請為 channel 設定持久化的 action 與狀態儲存區(Redis 或 Postgres),讓按鈕及各討論串狀態在重新啟動後仍能保留,並可跨多個執行個體使用。