# 策展 · X (Twitter) 🔥🔥🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Sam Bhagwat (@calcsam) · 平台：X (Twitter) · 日期：2026-05-28

> 原始來源：https://x.com/calcsam/status/2059822738530005439

## 中文摘要

Mastra 推出 Channels 功能實現 AI Agent 多平台協作。

過去的 AI Agent 多半侷限於瀏覽器或本地編輯器中的單人互動模式，但現代的 Agent 已逐漸演變為團隊中的「同事」。Mastra 團隊指出，當 Agent 從一對一的聊天視窗進入多人同時發言的頻道時，開發架構必須進行根本性的重構，以解決併發處理、權限控管、記憶隔離與沙盒隔離等複雜挑戰。

**多平台整合架構**
Mastra 透過 `AgentChannels` 整合各平台的通訊協定，並利用 Vercel 的 Chat SDK 統一處理訊息格式。針對 Slack 等平台，Mastra 處理了複雜的後端邏輯：
- 透過 `SlackManifestClient` 自動化處理 OAuth 與應用程式配置。
- 實作 HMAC-SHA256 簽章驗證，確保 5 分鐘內的請求安全性。
- 建立 `ChannelsStorage`，利用 AES 與 HKDF 加密儲存所有憑證。
- 支援多租戶適配器生命週期，透過 `SlackProvider` 動態管理不同安裝實例的路由。

**多使用者環境的記憶與權限**
在多人頻道中，Agent 必須區分不同使用者的身分與存取邊界：
- **執行緒對應**：每個平台執行緒（Thread）對應一個 Mastra 執行緒，確保對話歷史的隔離。
- **資源識別**：使用者被標記為 `${platform}:${userId}`，確保個人上下文（Context）不會外洩給其他使用者。
- **上下文工程**：當 Agent 被提及時，系統會自動抓取該執行緒的前 10 則訊息作為背景資訊，並以作者名稱與訊息 ID 標記，避免因連續使用者角色（User Role）導致模型拒絕回應。

**工具呼叫與人機協作**
為了實現「人機協作」，Mastra 引入了工具審核機制：
- 若工具定義中設定 `requireApproval: true`，執行流程會暫停並等待訊號。
- 支援按鈕介面的平台（如 Slack、Discord）會渲染「批准」與「拒絕」卡片，並透過 `tool_approve` 或 `tool_deny` 事件回呼恢復執行。
- 若平台不支援互動按鈕，系統會自動啟用 `autoResumeSuspendedTools`，透過 LLM 判斷使用者的自然語言回覆（如「好」或「不行」）來決定是否執行。

**併發處理與工作隔離**
針對多人同時發言導致的訊息衝突，Mastra 採用 Signal API 進行流量控制：
- **併發模式**：預設為 `queue`（佇列），確保同一執行緒內的訊息依序處理。
- **工作隔離**：透過 `workspace` 解析器，開發者可根據 `threadId` 或 `userId` 動態建立隔離的沙盒環境（如使用 E2B、Daytona 或 Docker）。這讓開發者能實現類似 Devin 的多工處理能力，且無需向使用者暴露底層基礎設施。

**開發者資源**
Mastra 強調，從單人 Agent 轉向多人協作 Agent 是 AI 工程的「困難模式」，涉及複雜的狀態管理與事件處理。開發者可透過以下指令快速開始整合：
```bash
npm create mastra@latest
```
透過將「上下文工程」（Context Engineering）轉向「harness 工程」（Harness Engineering），開發者能賦予 Agent 主動獲取資訊與執行跨執行緒任務的能力，使其真正成為團隊中具備協作能力的成員。

## 標籤

Agent, 功能更新, 新產品, Mastra, Vercel, Slack
