前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的架構:貼吧、B 站、QQ 橋、記憶、畫布、Office 等能力各自獨立,各有設置頁、數據目錄和記憶庫。插件之間互不感知,問一句「這事歸哪個插件管」「上次配置在哪改的」「以前記過沒有」,往往要逐個翻卡片或翻目錄。
better-plugin-combine-dsh-society(README 中稱「辦公廳 · Office Catalog for DSH」)在本機爲已安裝插件提供只讀「前臺」:彙總職能、工具、入口與數據位置,必要時跨記憶庫檢索,但不代執行任何部門能力。下面介紹其定位、能力與安裝用法。
這是什麼¶
維護者 shiliman,倉庫 better-plugin-combine-dsh-society,社區目錄分類爲客戶端。當前 package.json 版本爲 0.1.0,許可證 MIT。
一句話定位:只讀的部門目錄——知道本機每個插件做什麼、對外有哪些工具、設置頁在哪、數據存在哪、記憶條數與最後活動時間;要動手時只告訴你該找誰,不替你跑任務。
它解決什麼¶
插件 README 歸納爲三件事:
- 目錄——每個插件一張卡:一句話職能、工具名、入口、數據位置、記憶條數、最後活動時間;
- 檢索——平時只留一行索引,需要時再展開;可跨 meow-memory 的多個庫查過往;
- 轉交——能答就答,要動手則交給原插件,不代跑。
設計動機是:模型上下文裝不下幾十張完整卡片,但裝得下「一個工具,按需查」。
核心功能:兩個只讀工具¶
兩個工具均只讀:不寫記憶庫、不改插件配置、不執行各部門能力。
office_catalog¶
| 參數 | 說明 |
|---|---|
| 不傳 | 返回索引:每個部門一行 包名 版本 | 一句話職能 | T工具數 M記憶數 @最後活動 |
name |
單個部門的詳情卡(職能 / 工具列表 / 入口 / 數據目錄 / 記憶 / 宿主要求 / 包目錄 / 邊界) |
q |
按關鍵詞篩部門(名字、職能、說明、工具名) |
limit |
q 模式最多返回幾張,默認 6 |
office_ask¶
| 參數 | 說明 |
|---|---|
query |
必填。關鍵詞,空格分隔更準(如 貼吧 日報 簽到),避免整段長句 |
limit |
返回幾條記憶摘錄,默認 8 |
libs |
只查某幾個庫,逗號分隔(id 由配置決定) |
返回命中部門、記憶摘錄(庫 / 表 / 記憶 id / 時間 / 分數),並提示全文需用 memory_read。外部記憶庫默認只給約 240 字摘錄。
數據從哪來(全部只讀)¶
掃描結果緩存在 $DSH_HOME/storages/office-catalog/catalog.json,過期則重掃;一次掃描幾十個插件約 1 秒。字段來源包括:
- 名字 / 版本 / 說明:
package.json與locale/*.json的meta.title/description; - 一句話職能:從
description提煉(去DSH 插件 ·前綴,取首句,截 42 字); - 工具名:靜態掃宿主側 JS(跳過
client*.js與註釋); - 設置頁入口:掃
client*.js中的settings.section註冊; - 數據目錄:
dsh.dataDir優先,再在$DSH_HOME/storages等路徑探測; - 最後活動:數據目錄內最新文件 mtime;
- 記憶條數:只讀打開 meow-memory SQLite,按
project分組計數。
三條原則:不建第二份真相(緩存非權威)、只讀、懶更新(無後臺輪詢,查詢時比對緩存時間)。
安裝與啓用¶
依賴 Node.js ≥ 22.5(使用內置 node:sqlite),無需 npm install,無第三方包。DSH 引擎要求 dsh >= 0.2.0-rc.2。
- 將倉庫放到任意目錄,例如
~/dsh-plugins/better-plugin-combine-dsh-society; - 在 DSH 中安裝本地 bundle:
plugin_manager action: install_bundle target: <上面目錄的絕對路徑>
- 看到
application: "applied"即生效。宿主側index.js改動需重啓 DSH 客戶端;scan.mjs/query.mjs爲子進程腳本,改後者不必重啓。 - 可讓助手「列出辦公廳目錄」或「查一下刷貼吧的插件歸誰管」做驗證。
卸載:
plugin_manager action: remove_bundle target: better-plugin-combine-dsh-society
$DSH_HOME/storages/office-catalog/(緩存、日誌、libs.json)可一併刪除,下次重掃會重建。
配置¶
寫在 cordis.patch.yml 的 config 裏(或安裝時傳入):
| 鍵 | 默認 | 說明 |
|---|---|---|
dshHome |
$DSH_HOME 或 ~/.dsh |
DSH 家目錄 |
profile |
desktop |
讀哪個 profile 的 node_modules |
nodePath |
自動探測 | 跑掃描腳本的 node |
timeoutMs |
30000 |
單次掃描/檢索超時 |
memoryLibs |
自動探測 | 記憶庫列表 [["main","路徑"], ...] |
記憶庫指定優先級:memoryLibs 配置 → $DSH_HOME/storages/office-catalog/libs.json → 自動探測若干 .dsh-meow/memory.db 路徑;一個都探不到則卡片如實寫「無記憶庫」,不報錯。
典型用法¶
- 不傳參調用
office_catalog:得到全機插件一行索引,快速回答「有哪些插件、各管什麼」。 office_catalog帶q:按關鍵詞篩部門,例如找與「記憶」「貼吧」相關的包。office_catalog帶name:打開單個插件詳情卡,查工具列表與數據目錄路徑。office_ask帶query:跨配置好的記憶庫做關鍵詞檢索,再按返回指針到對應庫讀全文。
README 還提供 examples/tiny_host.py:不裝 DSH 也可讀同一份 catalog.json 的最小示例。
適用場景與注意¶
適合:本機 DSH 插件較多、需要統一查職能與入口、或跨 meow-memory 庫回憶「以前記過什麼」的智能體開發者。
邊界(README 已知):
- 靜態掃描只能看到字面量工具名;運行時拼接或被混淆的工具會標「未靜態識別」。
- 只支持 meow-memory 庫結構;其他記憶插件需改
query.mjs表名與列名。 - 英文插件職能可能直接出英文,無翻譯層。
- 插件以當前 DSH 進程權限運行;安裝前應自行審閱 源碼 與 MIT 許可證。
DSH 社區插件目錄爲獨立站點 SkillHub 條目,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
better-plugin-combine-dsh-society 用「辦公廳」思路給 DSH 裝一個只讀前臺:目錄、檢索、轉交,不復制各部門內容,也不代執行。裝多插件後,優先用 office_catalog 與 office_ask 按需查,再交給對應插件動手。
- 目錄頁:https://www.skillhub.cn/plugins/shiliman/better-plugin-combine-dsh-society
- GitHub:https://github.com/shiliman/better-plugin-combine-dsh-society