前言¶
用智能體做落地頁、UI 草稿或可預覽原型時,常見做法是直接讓模型寫第一版,再在同一份結果上反覆改。方向一旦定死,後面的修訂都疊在同一條線上,想並排看幾個明顯不同的方案,只能自己開新會話、複製粘貼、再靠記憶對比。
DeepSeek Harness(dsh)把這類能力做成插件:官方倉庫的定位是「一切皆插件」,由 DeepSeek AI 開源,當前仍是 developer preview,接口可能不兼容地變動。社區站點 DeepSeek Harness 插件庫 會收錄第三方插件,它是獨立目錄,與 DeepSeek / 幻方沒有官方從屬關係。
dsh-ramify 就是這個目錄裏的一款工具與能力插件。它在 DSH 網頁界面裏嵌一塊樹狀畫布,把多個創作方向、可運行作品和後續修訂組織成一棵即時更新的創意樹,用來生成、對比和繼續分叉。
本文按插件目錄頁、GitHub 倉庫 README、package.json 與源碼交叉覈對後整理:它是什麼、怎麼裝、怎麼用,以及使用時要注意的邊界。
這是什麼¶
dsh-ramify 是專爲 DeepSeek Harness 寫的 dsh-plugin,包名爲 @ramify/dsh-ramify,當前版本 0.1.0。GitHub 倉庫是 yanglongyun/dsh-ramify,目錄頁標註維護者爲 yanglongyun,許可證爲 MIT(LICENSE 中的版權聲明爲 Copyright (c) 2026 Sider AI)。倉庫主要語言是 TypeScript,GitHub 當前顯示 9 個 star。
它要解決的問題很具體:Agent 一次給出多個方向後,結果仍散落在對話裏,既不好看,也不好比,更不好從某一個節點繼續改。Ramify 把這些結果寫成畫布上的節點,舊方案保留,新修訂作爲子節點長出來。
插件走 DSH 標準插件清單、Cordis 服務和 Client UI 插槽,不修改 Harness 源碼。package.json 裏 dsh.client.platform 聲明爲 web,界面出現在網頁側欄和覆層裏,不是終端 TUI 插件。
核心功能¶
樹狀畫布,而不是一條對話¶
README 把工作流程寫成五步:
- 點擊 DSH 左側欄的 Ramify,打開內置工作臺。
- 在 Ramify 原生輸入框裏填寫需求,並選擇要生成的方案數量。
- 插件先創建項目並立刻進入畫布,同時把任務交給當前 DSH 會話和模型。
- Agent 通過 Ramify 工具持續往畫布寫方案,節點和預覽會即時出現。
- 點節點右上角的發散按鈕,輸入修改要求,就可以從該節點繼續生成分支。
過程中不需要複製本機地址,也不需要在 Ramify 裏再配一遍模型或 API Key。界面提交走的是 DSH 官方會話輸入能力,模型調用仍由當前會話負責。
也可以不點輸入框,直接在 DSH 對話裏要求 Agent 使用 Ramify。README 給的例子是:
使用 Ramify 爲這個 AI 搜索產品探索三個明顯不同的落地頁方向,做出可預覽頁面讓我比較。
作品類型與預覽¶
節點不只是文本。源碼把卡片分成 title、note 和作品類;作品類型包括 HTML、Markdown、SVG、圖片、視頻和音頻。README 寫明這些作品可以在畫布上直接預覽。
預覽有兩層,行爲不一樣:
- 畫布卡片縮略圖使用空的
sandbox,不會跑 JavaScript,避免大量作品同時執行腳本把畫布拖慢。 - 右側詳情和新窗口打開的作品不使用 sandbox 或 CSP,可以正常運行腳本、加載外部資源、聯網和提交表單。
也就是說,詳情頁更接近「普通網頁」,不是沙箱演示。
本地 runtime 與持久化¶
架構上分成兩塊:DSH 網頁裏的 Ramify 覆層(iframe),以及本機的 Ramify runtime。README 給出的默認地址是:
- DSH Web UI:
http://127.0.0.1:3099(這是插件 README 的示例端口;官方 Harness 文檔裏npx @deepseek-ai/dsh web默認是3080) - Ramify runtime:
http://127.0.0.1:9519
插件啓動時會拉起打包好的 runtime。源碼 src/runtime.ts 裏子進程環境變量 HOST 設爲 0.0.0.0,PORT 默認 9519;插件自身通過 http://127.0.0.1:9519 做健康檢查和 API 調用。如果該端口上已經有健康的 Ramify 實例,會複用而不是再開一份。卸載插件時,只清理自己拉起的進程。
項目、節點和作品用 SQLite 加本地 artifact 文件保存。dataDir 省略時走操作系統應用數據目錄:
- macOS:
~/Library/Application Support/Ramify/ - Windows:
%APPDATA%/Ramify/ - Linux:
${XDG_DATA_HOME:-~/.local/share}/ramify/
升級或重啓默認不會清空。前端用輕量輪詢感知變更。
註冊給模型的工具¶
插件向當前模型註冊一組工具,名稱與用途以 README 爲準:
| 工具 | 用途 |
|---|---|
ramify_start |
啓動或連接畫布 |
ramify_project_create |
創建項目與根節點 |
ramify_project_list |
列出項目 |
ramify_project_tree |
讀取完整創意樹 |
ramify_node_add |
添加單個節點或作品佔位符 |
ramify_node_batch |
原子化創建多層節點樹 |
ramify_node_complete |
寫入 HTML、Markdown、SVG 或媒體作品 |
ramify_node_update |
更新標題、文本或樹位置 |
ramify_settings |
切換主題和界面語言 |
源碼裏 ramify_settings 的主題取值爲 light / dark / system,語言取值爲 system / zh-CN / en / ja / es / de。ramify_node_batch 一次最多創建 100 張卡片。系統提示要求:有比較價值的修訂寫成子節點,而不是覆蓋舊方案;不要把 loopback 服務地址當成給用戶看的主結果,主界面是 DSH 側欄裏的工作臺。
安裝與啓用¶
環境要求來自 README:
- Node.js 22.19 或更高版本
- DeepSeek Harness
0.1.0-rc.6(倉庫寫明的當前測試版本)或兼容版本
社區目錄頁給出的安裝命令是:
dsh plugin add github:yanglongyun/dsh-ramify
需要可復現安裝時,目錄頁建議固定 commit 哈希:
dsh plugin add github:yanglongyun/dsh-ramify#commit
把 #commit 換成實際提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼,裝之前應檢查源碼倉庫和許可證。
因爲客戶端聲明是 web,倉庫 README 把「當前推薦」寫成裝進 web profile。先克隆再本地添加:
git clone https://github.com/yanglongyun/dsh-ramify.git
cd dsh-ramify
npm install
npm run build
dsh plugin --profile web add "$PWD"
dsh web --port 3099
README 同時說明:lib/ 與 app/dist/ 會提交進倉庫,從本地 checkout 或 Git 安裝時不必再跑安裝期構建腳本。上面的 npm run build 是源碼開發路徑;若只按目錄頁的 github: 規格安裝,用的是倉庫裏已經提交的構建產物。
README 另有一節「npm 包發佈後」:
dsh plugin --profile web add @ramify/dsh-ramify
截至本文覈對時,npm registry 上還沒有 @ramify/dsh-ramify 這個包(返回 404),所以不要把這條當成現在就能用的安裝方式。
啓動後點擊 DSH 左側欄底部的 Ramify。插件會自動啓動 runtime,並把工作臺嵌進 DSH 覆層;頂部的外部打開按鈕只是可選的獨立窗口。
需要改端口或數據目錄時,可在 profile 的 cordis.patch.yml 裏覆蓋。倉庫自帶的默認補丁是:
- insert:
- id: ramify
name: '@ramify/dsh-ramify'
config:
port: 9519
startupTimeoutMs: 5000
shutdownTimeoutMs: 3000
README 還允許增加 dataDir,必須寫成絕對路徑。
典型用法¶
裝好並打開 Web UI 之後,有兩條入口。
第一條是 Ramify 自己的輸入框:寫清需求、選方案數量,提交後進入畫布等節點長出來。看中某一版,再從該節點發散,舊節點保持不動。
第二條是在當前 DSH 會話裏直接下指令,讓 Agent 調 Ramify 工具。可以沿用 README 的落地頁例子,也可以換成 UI 草稿、Markdown 文檔或 SVG。Agent 會先 ramify_project_create,再按卡片類型往樹上加節點;作品可以先佔位,再用 ramify_node_complete 把 HTML / Markdown / SVG / 媒體寫進去。
畫布更新不需要刷新對話。前端輪詢本地 runtime,節點和預覽會跟着 API 寫入出現。
適用場景與注意事項¶
比較適合這些情況:
- 需要同時看多個視覺或結構方向,而不是在同一份稿上改來改去
- 作品本身能在瀏覽器裏預覽(HTML、Markdown、SVG、圖片、音視頻)
- 已經在用 DSH 的 Web UI,希望複用當前會話和模型,不想再配一套 API Key
需要注意的邊界:
- 這是社區插件,不是官方應用商店裏的「認證擴展」。 目錄站與 DeepSeek / 幻方無官方從屬關係。Harness 本身仍是 developer preview。
- 權限與安裝安全。 插件以當前
dsh進程權限運行,安裝可能執行代碼。裝前閱讀源碼和 MIT 許可證;需要可復現時固定 commit。 - 只覆蓋 Web 客戶端。
dsh.client.platform爲web,側欄入口出現在網頁界面。官方默認 Web 端口是 3080,插件 README 示例用 3099,按你實際啓動命令爲準。 - runtime 監聽地址。 源碼把子進程
HOST設爲0.0.0.0,DSH 側用127.0.0.1:9519訪問。如果本機網絡環境比較敏感,應清楚這一點,不要想當然認爲服務只綁在 loopback。 - 詳情頁沒有沙箱。 縮略圖不跑 JS;右側詳情和新窗口按普通網頁執行,可以跑腳本、聯網、提交表單。預覽來源不可信時,不要隨手點開詳情。
- 不保存模型密鑰,但會持久化作品。 插件不讀取、不接收、不保存模型 API Key;項目數據默認寫在系統應用數據目錄,卸載插件不一定等於刪掉這些文件。
- npm 包尚未發佈。 當前應按 GitHub 源碼或目錄頁的
github:yanglongyun/dsh-ramify安裝,不要去裝不存在的 registry 包。
小結¶
dsh-ramify 把「一次生成多個可預覽方案,再從中意的節點繼續分叉」做成 DSH 網頁裏的一塊原生畫布。它複用當前會話和模型,用 SQLite 把樹狀修訂留在本地,舊方案不會被新修訂蓋掉。
項目仍是早期版本(0.1.0),測試基線寫的是 Harness 0.1.0-rc.6。如果這個工作流正好是你缺的那一塊,可以從目錄頁或倉庫自行評估後再裝。
- 目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-ramify/
- GitHub:https://github.com/yanglongyun/dsh-ramify
- DeepSeek Harness:https://github.com/deepseek-ai/deepseek-harness