前言¶
DSH 的理念是「一切皆插件」,但寫一個 DSH 插件不止是寫一份清單:界面要跑在宿主裏,能力要註冊到 Cordis運行時裏,兩邊還要共享同一套實現。很多插件要麼只做界面、能力另起爐竈,要麼只有 Host 側邏輯,UI 找不到入口。下面介紹 @demo/plugin(維護者 wodaimnd,倉庫 wodaimnd/plugin),一份可直接讀源碼的示例插件,演示 Web 半邊與 Host 半邊如何在同一份 bundle 裏配合。它不解決某個具體業務問題,而是給出「插件入口長什麼樣、bundle 行怎麼聲明」的最小可運行樣板。
這是什麼¶
@demo/plugin 是一個 DeepSeek Harness 插件,面向 DeepSeek Harness (DSH) Desktop / Web GUI。包名是 @demo/plugin,版本 1.0.1,許可證 MIT,作者署名 Kewei Chen wodaimnd@users.noreply.github.com。它在 DSH 的左側欄 / 設置中提供一個插件入口,同時通過 dsh.bundle 聲明 Cordis bundle,由插件管理器負責安裝 / 啓用 / 禁用。
核心功能¶
下面是 README 中明確列出的四項能力。
- Web 界面:安裝後在 DSH 左側欄 / 設置中出現插件入口,界面風格與 DSH 宿主一致。
- Host 能力:Host 半邊註冊服務、HTTP 接口或 Agent 工具,並與界面共享同一套實現。
- DSH 插件:通過
dsh.bundle聲明 Cordis bundle,隨插件管理器安裝 / 啓用 / 禁用。 - 關鍵詞:
deepseek、dsh、dsh-plugin(寫在package.json裏,用於檢索)。
源碼側的分半邊約定在目錄結構裏很直白:index.js 是 Host 半邊,client.js 是瀏覽器半邊。也就是說界面邏輯和後端能力都在這個目錄裏,不依賴外部服務。
安裝與啓用¶
README 給出兩條路徑,都需要先把目錄拿到本地,沒有 dsh plugin add github:owner/repo 這種一行命令的安裝方式。
先克隆倉庫:
git clone https://github.com/wodaimnd/plugin.git
cd plugin
方式一:把該目錄當作本地 bundle 安裝。可以讓 Agent 執行下面這條插件管理器命令:
plugin_manager action=install_bundle target=<絕對路徑>/plugin
方式二:手工在界面裏操作。打開 設置 → 插件 → 添加,選擇本地目錄,然後啓用 @demo/plugin。
兩條方式的差別只在誰來執行 install_bundle;target 要寫成目錄的絕對路徑,不能用相對路徑或倉庫 URL。
典型用法¶
安裝並啓用後,刷新 DSH Web 頁面,在左側欄找到對應入口即可打開插件頁面。這一步不需要額外配置。
Host 半邊隨 bundle 行激活;需要調整行爲時,改 cordis.patch.yml,或在插件管理器的配置頁面裏調整配置項。具體配置鍵名 README 沒有展開,改動前應先讀 cordis.patch.yml 和源碼確認。
目錄結構與開發¶
完整目錄如下:
plugin/
├── package.json # DSH 插件清單(dsh.bundle / dsh.client)
├── index.js # Host 半邊
├── client.js # 瀏覽器半邊
├── cordis.patch.yml # bundle 行聲明
└── README.md
package.json 中與本插件直接相關的字段:
{
"name": "@demo/plugin",
"version": "1.0.1",
"type": "module",
"main": "./index.js",
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
},
"client": {
"platform": "web",
"immediately": true
}
}
}
dsh.bundle.patch 指向 bundle 行聲明文件;dsh.client 聲明平臺爲 web 並 immediately 加載。這是一份無構建步驟的純 ESM 插件:修改源碼後刷新即可生效,不需要打包。
適用場景與注意¶
適合想研究 DSH 插件結構的人:改 client.js 調界面、改 index.js 加 Host 能力、改 cordis.patch.yml 調 bundle 行,改完刷新就能看到結果,出錯也能直接定位到文件。
需要注意三點:
- 插件以當前 dsh 進程的權限運行。安裝前先讀一遍
index.js與cordis.patch.yml,確認沒有超出預期的文件訪問、網絡請求或 Agent 工具註冊。 - 許可證是 MIT,見倉庫內
LICENSE文件。保留版權聲明即可自由使用和修改。 - 兼容性上,
dsh.client聲明要求 DSH 的 Web 前端支持插件模塊加載。如果你的 Web 前端版本沒有這個能力,界面半邊不會加載;Host 半邊隨 bundle 行激活,不受此限制影響。
小結¶
@demo/plugin 的價值在於給出一個可直接改的樣板:Web 半邊與 Host 半邊在同一個目錄裏,接入方式是本地 bundle 而非遠程拉取。想理解 DSH 插件怎麼註冊界面、怎麼聲明 bundle 行、界面與能力怎麼共享實現,先跑通這份示例比讀文檔更快。
目錄頁:https://www.skillhub.cn/plugins/wodaimnd/plugin
GitHub:https://github.com/wodaimnd/plugin
需要說明:上述內容以 GitHub README 與 package.json 爲唯一依據,README 未提供 star 數、下載量或用戶反饋,本文不補充。