> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-HK/llms.txt # CopilotKit 通訊渠道 為應用程式內編程助手提供支援的同一個 Mastra agent,也可以機械人形式在通訊平台上運行。CopilotKit 的 Channels SDK 可將你的 agent 連接至 Slack 及其他通訊平台,並以平台原生方式處理對話串、Tool 調用、豐富的互動訊息,以及人工介入審批。 > **資訊:** 完整的平台設定載於 [CopilotKit Channels 文件](https://docs.copilotkit.ai/slack/mastra)。本頁說明 Channels 如何與 Mastra agent 配合運作。 ## 運作方式 你的 Mastra agent 會保留在其部署位置,並透過 `registerCopilotKit()` 以 AG-UI 對外提供服務(請參閱 [CopilotKit 概覽](https://mastra.zisheng.pro/zh-HK/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 中以 `@` 提及的機械人,然後加入互動式按鈕卡片。Slack 透過 Socket Mode 運行,並會開啟連往 Slack 的外送 WebSocket 連線,因此開發期間毋須公開 URL 或通道服務。 在你的環境中設定 Slack 憑證: - `SLACK_BOT_TOKEN`:Bot User OAuth 權杖(`xoxb-...`) - `SLACK_APP_TOKEN`:具有 `connections:write` 範圍的應用程式層級權杖(`xapp-...`) ## 其他平台 Channels SDK 並不限於 Slack。Microsoft Teams 等其他平台亦透過相同的 `@copilotkit/channels` API 運行:在 `adapters` 陣列中加入相應的 adapter,其餘 agent 程式碼則維持不變。如要查看目前支援的平台清單及各平台的設定方式,請參閱 [CopilotKit Channels 文件](https://docs.copilotkit.ai/slack/mastra)。 ## 訊息管線與架構 受管理的 channel 會刻意分開儲存憑證;當你的 Mastra agent 使用獨立的模型金鑰及 Tool 時,這一點尤其重要: - **由你保管** agent 邏輯、模型憑證、Tool 及 channel 程序。 - **由 CopilotKit Intelligence 保管**平台憑證,並負責訊息傳送、註冊、健康狀態及重新連線。 當使用者向應用程式傳送訊息時,一個回合便會開始。Intelligence 會接收平台事件,而閘道則會將該回合傳送至正在運行的 channel 程序。你的 Mastra agent 隨後運行並轉譯回覆,再由 Intelligence 以平台原生內容形式傳回。平台憑證絕不會進入 agent 程序,而企業版 Intelligence 可自行託管,以符合資料駐留要求。 > **備註:** 互動操作預設儲存在記憶體中,並會在重新啟動時重設。請為 channel 配置持久化的操作及狀態儲存區(Redis 或 Postgres),讓按鈕及每個對話串的狀態可在重新啟動後保留,並跨多個執行個體共用。