---
title: "為 DeepSeek Harness 接入 Buzz 協作平台：構建自託管 Nostr 訊息閘道的完整實踐"
description: "深入解析如何透過 Nostr 協定將 DeepSeek Harness 接入 Block Buzz 協作平台：手把手配置 NIP-42 鑑權認證、基於 40003 事件的原位串流編輯輸出、頻道獨立工作階段管理與本地工作區指令聯動，為開發團隊建構安全可控、開箱即用的人機協同智能體開發環境與全新工作流程。"
canonical_url: "https://techvoyage.dev/tw/article/bringing-buzz-to-deepseek-harness"
last_updated: "2026-10-20T09:53:53.228Z"
---

![DeepSeek Harness 訊息閘道連線至 Block Buzz 頻道的運作概觀](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-nostr-gateway-overview.webp)

DeepSeek Harness（DSH）的官方外掛程式 **dsh-message-gateway**，能夠將 DeepSeek Harness 助理無縫延伸至 Discord、Telegram、WeChat 等多種主流即時通訊平台。該外掛程式倉庫已被 Fork 並進行了二次開發，旨在將 **自建 Block 旗下 Buzz 協作平台：輕鬆構建人類與 AI 智能體高效協同工作的全新共享工作空間** 納入支援清單。Fork 後的開原始碼倉庫位於 GitHub：[https://github.com/Tech-Voyage-Dev/dsh-message-gateway](https://github.com/Tech-Voyage-Dev/dsh-message-gateway) 。

<article-card description="本教學將手把手帶您在 Ubuntu VPS 上部署自託管的 Block 旗下 Nostr 中繼 Buzz，並配置 Cloudflare DNS 安全網路。我們將幫助您搭建起一個安全性的共享工作空間，讓您的團隊成員與多個 AI 智能體（如 Claude、Kimi）能夠基於加密身份進行高效溝通、共享專案上下文並實現無縫協作。" image="https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/TW-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp" image-alt="一張高顏值的 16:9 科技質感卡片，具有深藍色 and 橙色色調，插圖展示如何在 Ubuntu VPS 上部署自託管的 Block 旗下 Buzz 協作中繼伺服器，其中包含一個帶有置中文字的毛玻璃微動質感面板。" label="前置準備指南" min-read="12" title="自建 Block 旗下 Buzz 協作平台：輕鬆構建人類與 AI 智能體高效協同工作的全新共享工作空間" to="/article/self-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues">



</article-card>

DSH 助理作為一個全功能成員加入 Buzz Nostr 中繼伺服器，既能接收私人訊息（DM），也能接收被 @mention 提及的頻道訊息，並透過與 Web UI 完全相同的獨立工作階段智能體管線輸出回應。

## dsh-message-gateway 外掛架構剖析

**dsh-message-gateway** 外掛的系統架構清晰劃分為主機端與用戶端兩大部分：

- **主機端（Node 環境）**：`gateway-store`（憑證與設定持久化儲存，位於 `~/.dsh/gateway.json`）、`platforms.ts`（支援平台定義與連線測試）、`routes.ts`（對外暴露的 `/gateway/*` 路由端點）以及 `bridge-manager.ts`（常駐閘道橋接器：負責按對話維護獨立 Agent 執行個體並統一管理串流回應推送）。
- **用戶端（瀏覽器前端）**：側邊欄的「**Message platforms**」視覺化設定頁面，負責填寫金鑰參數、發起連線測試以及直觀監視閘道即時在線狀態。

為閘道接入一個全新通訊平台通常需要經歷以下三步：

1. **實作 Bridge 橋接類別**：提供 `start/stop/status` 生命週期方法以及 `onText(text, frame)` 訊息回呼，結構規範與現有的 `wecom-bridge.ts` 完全一致。
2. **接入 bridge-manager 排程器**：複用既有的多工作階段排程管線（`ensureAgentForKey` + `pendingMap`），並將底層文字輸出串流掛載至該平台的專用回覆接收器。
3. **對接持久化儲存與設定路由**：在 `/gateway/save` 與 `/gateway/delete` 邏輯中實作：**儲存設定即自動啟動橋接服務，刪除設定則優雅停止橋接服務**，配合 `autoStartXxx` 狀態旗標確保 `dsh web` 守護行程開機自動重新連線。

## Buzz 閘道橋接實作：Nostr 協定標準與事件生命週期

本次接入直接使用 **DeepSeek Harness** 自行編寫完成了完整的 Buzz 適配橋接器。底層嚴格遵循了如下 Nostr 協定規範標準：

<table>
<thead>
  <tr>
    <th>
      <strong>
        維度 / 階段
      </strong>
    </th>
    
    <th>
      協定實作規範與技術細節
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        底層傳輸（Transport）
      </strong>
    </td>
    
    <td>
      單條經過 NIP-42 鑑權認證的 WebSocket 鏈路；預設中繼連線位址為 <code>
        ws://localhost:3000
      </code>
      
      ；輸入的 <code>
        http(s)://
      </code>
      
       會自動正規化為 <code>
        ws(s)://
      </code>
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        鑑權認證（Auth）
      </strong>
    </td>
    
    <td>
      AUTH 事件 <code>
        kind 22242
      </code>
      
      ，攜帶標籤 <code>
        [["relay", url], ["challenge", challenge]]
      </code>
      
      ，內容為空字串，由 Agent 的私密金鑰完成簽章
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        訂閱機制（Subs）
      </strong>
    </td>
    
    <td>
      <strong>
        嚴格基於頻道隔離
      </strong>
      
      ：<code>
        REQ {"kinds":[9], "#h":[<uuid>]}
      </code>
      
       — 每個頻道獨立建立一條訂閱。全域性的 <code>
        kinds:[9]
      </code>
      
       雖能收到 EOSE 但絕不廣播推送；多值 <code>
        #h
      </code>
      
       標籤過濾在協定中<strong>
        無法正常分發
      </strong>
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        頻道探索（Discovery）
      </strong>
    </td>
    
    <td>
      歷史中繼資料回溯查詢 <code>
        REQ {kinds:[39000]}
      </code>
      
       擷取頻道詳情（其中 <code>
        type == "dm"
      </code>
      
       用於標記單聊私訊頻道）
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        成員異動訂閱
      </strong>
    </td>
    
    <td>
      即時長連線訂閱 <code>
        REQ {kinds:[44100,44101], "#p":[Agent 公鑰], since: now-60s}
      </code>
      
       — 44100 為加入群組，44101 為被移除，均附帶 <code>
        p
      </code>
      
      +<code>
        h
      </code>
      
      ；成員關係變更時<strong>
        無需重新連線
      </strong>
      
      即可動態熱更新訂閱狀態
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        即時聊天事件
      </strong>
    </td>
    
    <td>
      <code>
        kind 9
      </code>
      
       事件，攜帶 <code>
        ["h", channel]
      </code>
      
       頻道標籤，可選附帶 <code>
        ["e", replyTo]
      </code>
      
       回覆目標與 <code>
        ["p", mention]
      </code>
      
       被提及者標籤
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        原位更新編輯
      </strong>
    </td>
    
    <td>
      <code>
        kind 40003
      </code>
      
       事件，附帶 <code>
        h
      </code>
      
       與 <code>
        e
      </code>
      
       目標標籤；內容完全替換；中繼伺服器單包上限 64 KB → 嚴控酬載 ≤ 60,000 B；超長回覆分塊處理 — 首塊用於原位編輯替換，超出部分作為回覆串討論串的 <code>
        kind 9
      </code>
      
       訊息追加
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        CLOSED 異常訊框處理
      </strong>
    </td>
    
    <td>
      鑑權未完成前收到 <code>
        auth-required
      </code>
      
       屬於正常引導階段（完成 AUTH 後重新拉起訂閱）；鑑權完成後遇斷線 → 階梯式限次重試（最多 3 次，間隔 0/1/2 秒退避）；整鏈重連時全量重構上下文
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        中繼拉取上限
      </strong>
    </td>
    
    <td>
      每次訂閱最多拉取 2000 條歷史事件，即使設定了 <code>
        since
      </code>
      
       過濾參數，中繼伺服器仍按自最新向過去的時間倒序返回
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        訊息命中判定
      </strong>
    </td>
    
    <td>
      僅當滿足以下任一條件時才啟動處理入站 <code>
        kind 9
      </code>
      
      ：(a) <code>
        p
      </code>
      
       標籤明確包含自身公鑰，(b) 處於 DM 私訊頻道，(c) 回覆關聯的 <code>
        e
      </code>
      
       根事件為自身發出的訊息。自動過濾自身公鑰發送的內容（徹底杜絕迴圈）
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        出站 @ 提及
      </strong>
    </td>
    
    <td>
      出站內容按純文字原樣發布 — 中繼伺服器端不對正文中的 <code>
        @
      </code>
      
       符號進行預先驗證；<code>
        p
      </code>
      
       標籤填入當前對話原作者以及至多 7 位其他被提及者的公鑰（單條上限 8 位）
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        私聊訊息（DM）
      </strong>
    </td>
    
    <td>
      依賴中繼伺服器範圍內的明文受限頻道（中繼資料標註 <code>
        type: "dm"
      </code>
      
      ） — 當前橋接實作中未引入 NIP-04/44 複雜非對稱端對端加密
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        媒體附件（入站）
      </strong>
    </td>
    
    <td>
      NIP-92 <code>
        imeta
      </code>
      
       規範（<code>
        url
      </code>
      
      , <code>
        sha256
      </code>
      
      , <code>
        m
      </code>
      
      ）→ 常規 HTTP(S) 串流下載，本地驗證 SHA-256 完整性，單檔限制 20 MB，每條訊息最多 4 張；出站圖片發布暫無官方中繼協定路徑，現階段不支援出站圖片
    </td>
  </tr>
</tbody>
</table>

Buzz 適配閘道的啟動引導時序圖如下：

![展示 Buzz 閘道引導連線與 NIP-42 協定身分鑑權流程的時序圖](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-bootstrap.webp)### 基於 Nostr 40003 事件原位編輯實現的即時串流輸出

Nostr 協定缺乏原生鍵入中（Typing）狀態通知，且底層事件設計為嚴格只增不改。為了讓對話過程具備流暢的即時互動感，Buzz 適配閘道**透過原位編輯巧妙模擬了串流打字輸出**：

![基於 kind 40003 事件原位編輯模擬打字串流回應的邏輯流程圖](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-reply.webp)- *閘道首先秒級發出一條 kind 9 預留位置訊息，隨後在 Agent 推理過程中按設定的節流閥值連續發射 kind 40003 原位編輯事件逐步追加渲染內容，並在推理終點落定最終文字。這一設計思路與 Telegram、Discord 橋接器的實作方式一脈相承。*

### 透過聊天指令打通 DeepSeek Harness 本地工作區

DSH Web 介面所支援的「工作區（Workspaces）」核心能力依賴於底層 `@deepseek-ai/dsh-workspace` 模組中的 `workspaceRegistry` 服務：

```typescript
const existing = await ctx.workspaceRegistry.resolveByPath(request.path);
```

Buzz 橋接器透過引入全新的聊天斜線指令 `/workspace <目錄路徑>`，允許在群聊中直接向 DSH 註冊並綁定本地現存的資料夾。在此之後，該工作階段下的所有互動都將牢牢錨定在此目錄中，並能即時無縫同步在 DSH Web UI 端查看。

![透過閘道聊天指令動態註冊並綁定 DeepSeek Harness 本地工作區的架構示意圖](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-workspace.webp)開發與使用過程中需重點明確的三大設計機制：

- **變更目錄等同於開啟全新工作階段**：工作階段的工作目錄（`cwd`）在初始化生成 Session Header 時即完成寫入，後續在生命週期內不可直接原地竄改。
- **目標本地目錄必須預先存在**：底層 `create` 註冊函式會對路徑進行嚴格驗證，若路徑在主機上不存在將直接擲出例外狀況拒絕綁定。
- **高度安全敏感指令**：透過閘道衍生的工作階段均賦予 **auto-approve**（自動核准命令執行）特權，擁有對目標資料夾直接進行讀寫和工具操作的完全存取權。

## 安裝與設定全流程指南

1. 在終端機執行以下指令完成外掛程式下載與啟動：

```bash
dsh plugin --profile web add https://github.com/Tech-Voyage-Dev/dsh-message-gateway.git

# Start DSH web
dsh web
```

1. 待 DSH Web 介面啟動並用瀏覽器開啟後，按一下介面側邊欄中的「**Message platforms**」圖示：

![DeepSeek Harness Web UI 側邊欄醒目提示的 Message platforms 設定功能表項目](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-web-ui-message-platforms-sidebar-icon.webp)

1. 在左側平台清單中選擇「**Buzz**」：

![DeepSeek Harness 訊息閘道內的 Buzz 協定參數與金鑰對設定面板](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-message-gateway-buzz-config-panel.webp)

1. 按一下「**Generate keypair**」按鈕即時生成全新的 Nostr 身分金鑰對。請務必將生成的 `npub` 公鑰妥善複製暫存，後續步驟將作為關鍵身分憑證。
2. 準確填入您的 **Relay URL**（中繼位址）以及需要監聽訂閱的 **Channels**（允許存取的頻道 UUID 白名單清單）。
3. 按一下底部的「**Save**」按鈕完成儲存。

表單提交後，系統將持久化儲存設定並**立即啟動 Buzz 閘道服務**。私密金鑰 `nsec` 作為最高機密憑證被自動保護，僅獨立存放在主機本地的 `~/.dsh/gateway.json` 檔案中。

### 將 DSH 智能體註冊至 Buzz Nostr 中繼服務

**將 DSH 助理作為新成員註冊加入中繼伺服器**。此處公鑰填入上文所生成的 `npub` 字串：

```bash
docker compose exec relay buzz-admin add-member --pubkey npub123123123
```

**將 DSH 助理加入特定的溝通頻道**。僅加入中繼並不會讓助理自動出現在頻道成員清單中。需要透過 `buzz-cli` 進一步執行入群操作。注意此處 `--pubkey` 參數必須使用 **HEX 16 進位公鑰**格式，而非 npub 格式（在上一步執行 `buzz-admin add-member` 時，終端機輸出中會印出對應的 HEX 公鑰）：

```bash
buzz channels add-member --channel <CHANNEL_UUID> --pubkey <AGENT_HEX> --role member
```

<article-card description="手把手教您安裝與設定 buzz-cli，以便在 Nostr 中繼伺服器上管理頻道、成員金鑰以及 AI 智能體的角色權限。" image="https://inimages.techvoyage.dev/articles/Self-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues/TW-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp" image-alt="一張高顏值的 16:9 科技質感卡片，具有深藍色 and 橙色色調，插圖展示如何在 Ubuntu VPS 上部署自託管的 Block 旗下 Buzz 協作中繼伺服器，其中包含一個帶有置中文字的毛玻璃微動質感面板。" label="CLI 指南" min-read="5" title="如何安裝並使用 buzz-cli" to="/article/self-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues#install-buzz-cli">



</article-card>

隨後可透過 `buzz-cli` 靈活更新 DSH 助理在 Nostr 中繼伺服器中的公開設定檔，設定更具識別度的暱稱：

![使用 buzz-cli 命令列工具更新 DSH 助理在 Nostr 中繼伺服器上的公開個人資料](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-assistant-buzz-cli-profile-update.webp)

在用戶端向 DSH 助理傳送一次 **Wave**（Buzz 平台獨特的 DM 私訊打招呼動作）。助理隨後傳回回覆，代表閘道通訊已完全就緒：

![在 Buzz 用戶端向 DeepSeek Harness 助理傳送 Wave 私訊進行連線性驗證](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-dm-wave-greeting-reply.webp)

*向 DSH 助理傳送 Wave 私訊打招呼 — 橋接閘道正常秒級回應。*

### 透過 `/workspace` 指令開啟本地工作區聯動

由於 `allowWorkspace` 設定項目出於環境安全考量預設處於停用（`false`）狀態，未經設定直接向助理發送 `/workspace` 命令會被系統攔截拒絕：

![在未開啟 allowWorkspace 權限時發送 /workspace 命令被系統安全攔截的提示](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-workspace-command-rejected-error.webp)

開啟設定檔 `~/.dsh/profiles/web/cordis.patch.yml` 新增開關設定，隨後重新啟動 `dsh web` 服務即可：

```yml
- id: ui-message-gateway
  config:
    allowWorkspace: true
```

設定生效並重新啟動後即可順利綁定：

![在 Buzz 頻道成功執行 /workspace 命令完成本地工作區綁定的確認訊息](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-buzz-workspace-command-success-confirmation.webp)

實用提示：此命令預設假設工作區目錄名（例如截圖中的 `TechVoyage`）直接位於當前使用者的個人主目錄之下；若目錄處於其他深層路徑，請務必傳入完整絕對路徑。透過 Buzz 頻道中註冊綁定好的新工作階段，也都會完全同步在 DeepSeek Harness Web 介面上顯示。

![DeepSeek Harness Web UI 中展示從 Buzz 頻道自動同步關聯的活躍工作階段](https://inimages.techvoyage.dev/articles/Bringing%20Buzz%20to%20DeepSeek%20Harness/dsh-web-ui-synced-workspace-session.webp)

### Buzz 頻道支援的完整可用指令

其他平台支援的幾乎全部原生功能在 Buzz 中均可順暢運作：

<table>
<thead>
  <tr>
    <th>
      指令語法
    </th>
    
    <th>
      功能說明
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        /workspace <folder>
      </code>
    </td>
    
    <td>
      將本地已存在的資料夾註冊綁定為當前對話專屬的工作區環境（受設定項目開關保護）
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /help
      </code>
    </td>
    
    <td>
      列印並列出所有支援的命令清單
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /time
      </code>
    </td>
    
    <td>
      取得並輸出當前伺服器系統時間
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /new
      </code>
    </td>
    
    <td>
      捨棄舊上下文，原地重設開啟全新工作階段
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /clear
      </code>
    </td>
    
    <td>
      清空當前上下文所有歷史對話串流
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /status
      </code>
    </td>
    
    <td>
      查看當前 Buzz 訊息橋接器的即時在線狀態
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /stats
      </code>
    </td>
    
    <td>
      查看當前系統活躍工作階段總量及所有接入平台（包含 Buzz）的橋接連線詳細狀態
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /commands
      </code>
    </td>
    
    <td>
      輸出全量指令的底層規範與參數描述文件
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        @path/to/file
      </code>
    </td>
    
    <td>
      與 Web 端的 <code>
        @
      </code>
      
       檔案提及功能完全一致：Agent 自動相對於工作區讀取檔案內容；單獨發送 <code>
        @
      </code>
      
      、<code>
        @前綴
      </code>
      
       或使用 <code>
        /files <前綴>
      </code>
      
       可傳回符合的檔案/資料夾清單
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /model
      </code>
    </td>
    
    <td>
      <code>
        [provider model effort]
      </code>
      
       — 驗證有效後即時切換該工作階段的底層推理大型語言模型與思考深度；單獨輸入 <code>
        /model
      </code>
      
       顯示支援的候選清單，<code>
        /model reset
      </code>
      
       恢復系統預設設定
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        /effort
      </code>
    </td>
    
    <td>
      <code>
        <id>
      </code>
      
       僅針對支援思考深度的模型調整 reasoning effort；<code>
        /effort reset
      </code>
      
       恢復預設推理深度設定
    </td>
  </tr>
</tbody>
</table>

### 核心安全架構總結

- **私密金鑰資產隔離保護**：Agent 專屬的私密金鑰 **nsec** 僅保存在主機的 `~/.dsh/gateway.json` 中（0600 檔案唯讀權限，不可部分完成寫入機制） — 永遠不會透過 API 端點對外暴露，也不會印至日常除錯記錄中。
- **全鏈路加密簽章驗章**：每一個入站的 Nostr 事件在投遞給 Agent 執行之前，都會嚴密執行**密碼學數位簽章檢驗**（`verifyEvent`）、訊息防重送判重、自發自收迴圈過濾以及 @提及權限驗證。
- **本地工作區指令受限保護**：由於閘道工作階段預設開啟特權自動核准機制，`/workspace` 目錄註冊能力預設處於停用狀態，必須由開發者在設定檔中明確開啟（`allowWorkspace: true`），嚴防非預期提權暴露敏感目錄。

## 結語：擁抱 Buzz 去中心化人機協同時代

在將 Buzz 接入 `dsh-message-gateway` 的探索過程中，最大的技術挑戰在於嚴密契合 Nostr 協定的去中心化事件生命週期與事件約束規範。所幸外掛程式本身優秀的架構底座已經將多 Agent 工作階段管理與命令分發高度抽象，一旦建立起可靠的事件監聽與原位串流編輯鏈路，整個橋接閘道便能呈現出超預期的流暢度與生產級穩定性。

## 參考文獻與資料：

- [dsh-message-gateway architecture guide](https://github.com/a792883583/dsh-message-gateway/blob/main/docs/architecture.md) — 官方閘道架構指南、擴充實踐與安全規範
- [nostr-tools](https://github.com/nbd-wtf/nostr-tools) — 底層呼叫的核心 Nostr JavaScript 用戶端程式庫
- [deer-flow IM channel connections](https://github.com/bytedance/deer-flow/blob/main/backend/docs/IM_CHANNEL_CONNECTIONS.md) — 即時通訊平台多通道連線架構設計參考
