跳至主要內容

CopilotKit 通訊渠道

為應用程式內編程助手提供支援的同一個 Mastra agent,也可以機械人形式在通訊平台上運行。CopilotKit 的 Channels SDK 可將你的 agent 連接至 Slack 及其他通訊平台,並以平台原生方式處理對話串、Tool 調用、豐富的互動訊息,以及人工介入審批。

資訊

完整的平台設定載於 CopilotKit Channels 文件。本頁說明 Channels 如何與 Mastra agent 配合運作。

運作方式
運作方式 的直接連結

你的 Mastra agent 會保留在其部署位置,並透過 registerCopilotKit() 以 AG-UI 對外提供服務(請參閱 CopilotKit 概覽)。channel 是以 @copilotkit/channels 建構、獨立且長期運行的程序:你可以連接一個或多個平台 adapter,並將 channel 指向你的 agent。createChannel 接受一個 adapter 陣列,因此單一程序可同時為多個平台提供服務。

安裝 SDK(已包含所需功能及所有 adapter):

npm install @copilotkit/channels
channel.ts
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 中以 @ 提及的機械人,然後加入互動式按鈕卡片。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 文件

訊息管線與架構
訊息管線與架構 的直接連結

受管理的 channel 會刻意分開儲存憑證;當你的 Mastra agent 使用獨立的模型金鑰及 Tool 時,這一點尤其重要:

  • 由你保管 agent 邏輯、模型憑證、Tool 及 channel 程序。
  • 由 CopilotKit Intelligence 保管平台憑證,並負責訊息傳送、註冊、健康狀態及重新連線。

當使用者向應用程式傳送訊息時,一個回合便會開始。Intelligence 會接收平台事件,而閘道則會將該回合傳送至正在運行的 channel 程序。你的 Mastra agent 隨後運行並轉譯回覆,再由 Intelligence 以平台原生內容形式傳回。平台憑證絕不會進入 agent 程序,而企業版 Intelligence 可自行託管,以符合資料駐留要求。

備註

互動操作預設儲存在記憶體中,並會在重新啟動時重設。請為 channel 配置持久化的操作及狀態儲存區(Redis 或 Postgres),讓按鈕及每個對話串的狀態可在重新啟動後保留,並跨多個執行個體共用。