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