collab-canvas(話布):DeepSeek Harness 協作畫布插件

前言

在 DeepSeek Harness(DSH)的聊天窗口中,AI 生成的長文檔容易刷屏,修改一個段落往往需要重發全文,且對話歷史中的版本難以追溯。collab-canvas(話布)提供瞭解決方案:它將長內容從對話中剝離,託管到一個獨立的 Markdown 文檔畫布上。你在瀏覽器內直接編輯,AI 通過 9 個專用工具讀寫,雙方的操作均進入撤銷歷史並支持衝突檢測。

核心功能

  • 瀏覽器內編輯:畫布在 DSH 界面內渲染與編輯,改動自動保存。
  • AI 可讀寫:AI 通過 canvas_* 系列工具直接操作畫布,而非將內容貼入對話。
  • 撤銷歷史:每次寫入入棧,人和 AI 的改動均可回退。
  • 衝突檢測:canvas_write 支持 baseVersion 強一致檢查,若內容被覆蓋則返回 E_CONFLICT。
  • 文件持久化:畫布以普通 Markdown 文件存儲,配合 .canvases.json 記錄元信息。
  • 劃詞引用:選中畫布文字可彈出引用欄,將段落帶入對話。
  • 文檔鏈接/拖放:支持在畫布內拖入文檔或生成鏈接。
  • 存儲根可配:通過 canvas_configure 可將畫布根目錄固定到任意位置。
  • 跟隨主題:界面使用 var(--dsw-*) 設計 token,自動適配主題換膚。

安裝與啓用

安裝命令如下:

dsh plugin --profile web add collab-canvas

安裝完成後,必須進行兩步配置才能啓用插件:

  1. 在 profile 的 package.json 中將 "collab-canvas" 加進 dsh.profile.bundles 數組。
  2. 確保 dependencies 字段也包含該包。

注意:只添加 dependencies 而不加 bundles 會導致 cordis.patch.yml 未生效,表現爲“裝上了但功能不在”。推薦使用 npm 安裝,可避免 git 依賴觸發的構建授權問題,且能在市場顯示下載量。

AI 工具

插件提供了 9 個工具,用於管理畫布:

  • canvas_list:列出全部畫布與當前活躍畫布。
  • canvas_create:新建一個畫布。
  • canvas_read:讀取畫布內容(head 參數可截取前 N 字符)。
  • canvas_write:寫入或修改畫布(支持 replace/append/prepend 及 baseVersion)。
  • canvas_save:保存畫布到指定文件路徑。
  • canvas_load:將已有 Markdown 文件加載爲畫布。
  • canvas_locate:在文檔中精確定位一段原文(處理重複文本)。
  • canvas_delete:刪除畫布記錄。
  • canvas_configure:固定畫布存儲根目錄。

數據存放與架構

畫布文件與元信息存儲在指定的存儲根目錄下:

<存儲根>/
├── .canvases.json      # 畫布元信息(id、標題、關聯文件、版本)
├── <標題>.md           # 畫布正文
├── .sessions/          # 會話級清單
└── attachments/        # 粘貼/拖入的圖片

默認存儲根爲當前會話工作區。架構分爲兩部分:

  • Host(DSH Node 進程):運行在 dist/host.js,負責註冊工具、HTTP 端點、狀態持久化與編輯器腳本。
  • Client(瀏覽器頁面):運行在 lib/client.js,負責注入 UI、劃詞欄及與 Host 的 RPC 通信。

開發與部署

開發涉及構建與搬運到 DSH 部署目錄:

npm run build         # 編譯 src/host/*.js → dist/host.js
npm run deploy        # 搬運到部署目錄
npm run verify        # 上線前總檢

部署目錄默認由 DSH_HOME 推導,可通過環境變量 CCV_DEPLOY_DIR 覆蓋。

生效規則:
- 修改了 src/host/*.js → 搬運後必須完全重啓 dsh web(刷新頁面不夠)。
- 只修改了客戶端 → 搬運後刷新頁面即可。

適用場景

適合需要將 AI 協作內容沉澱爲文檔、進行版本控制或多人(人+AI)協同編輯的場景。使用前請檢查源碼與許可證。

總結

collab-canvas 解決了 DSH 中長文檔難以管理的問題,通過工具化接口讓 AI 能夠安全地讀寫 Markdown 文檔。掌握其安裝配置與部署規則,是高效利用該插件的前提。

GitHub 倉庫

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜