前言¶
用 DeepSeek Harness(DSH)處理複雜任務,很少是一條直線:你可能在第二輪問題裏分叉出一個新會話試另一條方案,又在幾個並行會話之間來回切換找上下文。原生對話列表能列出會話,卻難以一眼看清「誰從哪一輪分叉出來、哪條路徑還在探索、當前焦點在哪」。
dsh-synapse(Synapse)是社區維護者 liangmianya 推出的客戶端類 Web 插件,目前在 SkillHub 插件庫 歸類爲「客戶端」,目錄顯示 GitHub 184 stars、24 forks,採用 MIT 許可證,當前包版本 0.3.0。它不替代 DSH 的模型、工具、會話或權限邏輯,而是在原生對話界面上增加可視化工作臺,把同一工作區內的會話、追問和分支呈現爲可拖拽、可縮放的對話地圖。
需要說明的是:SkillHub 是面向中國用戶的 DSH 插件社區目錄,與 DeepSeek / 幻方無官方從屬關係;DSH 本身的理念是「一切皆插件」,這類目錄便於發現與安裝,但不等於官方應用商店。
這是什麼¶
一句話定位:dsh-synapse 是 DeepSeek Harness 的可視化、非線性對話工作區插件——在一張畫布上瀏覽會話關係,同時繼續使用 DSH 原生的打開、追問、分叉與歸檔能力。
維護者爲 liangmianya,源碼倉庫:https://github.com/liangmianya/dsh-synapse。插件僅向 web profile 的 Web 組合注入補丁,複用 DSH 現有 Web 服務,不啓動第二個應用進程,也不創建第二套 Agent。
核心功能與亮點¶
會話地圖:原生對話與畫布一鍵切換¶
頂部提供「會話地圖」與「對話」開關。進入畫布後,同一工作區內的會話以卡片節點呈現;點擊頂部「對話」或卡片上的「在 DSH 中打開」,可回到原生聊天界面。複雜探索不必犧牲熟悉的 DSH 對話體驗。
分支可見:真實分叉點連線¶
分支通過 DSH 原生 session fork 創建,Synapse 按真實分叉輪次把節點連起來,而不是把列表裏的會話平鋪成無關卡片。想保留一條替代路徑時,用「分支」操作即可,關係會留在地圖上。
持續投影與工具過程摺疊¶
用戶消息和助手回覆投影到對應卡片;流式回覆在卡片「詳情」中持續更新。工具調用與結果按 callId 配對,摺疊進對應助手回覆卡,不再單獨佔一張卡,畫布更乾淨。
雙向會話同步¶
原生對話頁與會話地圖同步當前會話:任一側切換焦點,另一側跟隨高亮。側邊欄點會話、畫布點卡片,效果一致。
畫布交互與工作區映射¶
支持拖動畫布、縮放視圖(最高 4×)、移動卡片(位置自動保存)、展開或摺疊後續對話子樹、一鍵定位當前會話,卡片內可平滑滾動。插件讀取 DSH 工作區與目錄歸屬,便於在正確的項目上下文中創建和瀏覽會話。
不改變模型與工具執行¶
Synapse 只讀取已提交的會話事件並渲染畫布,不向模型請求添加系統提示、工具 schema 或請求上下文,也不影響 KV 緩存複用。會話內容仍由 DSH session log 保存和管理。
安裝與啓用¶
插件以 當前 dsh 進程權限 運行,安裝前建議閱讀源碼與 MIT 許可證,確認可接受其數據與安全邊界。
環境要求¶
- 已安裝支持
dsh pluginprofile 插件機制的 DeepSeek Harness(官方 README 標明 2026-08 及之後版本); - Node.js ≥ 22.19(
package.json的engines字段要求>=22.19.0); - 本插件僅支持
webprofile。
從 GitHub 安裝¶
目錄頁與 README 給出的安裝命令一致:
corepack pnpm dsh plugin --profile web add github:liangmianya/dsh-synapse
GitHub 安裝會執行本包的 prepare 腳本(node --check 語法校驗)。
若使用 pnpm ≥ 10,默認可能攔截 git 依賴的構建腳本。安裝被攔截時,把 pnpm 打印的確切鍵(包名加 tarball URL,內含 commit,不是裸包名)寫入 DSH profile 的 pnpm-workspace.yaml:
allowBuilds:
"dsh-synapse@https://codeload.github.com/liangmianya/dsh-synapse/tar.gz/<commit>": true
然後重新執行安裝命令。上游推送新 commit 後該鍵會變化,需複製 pnpm 新打印的鍵。
本地開發可使用 link: 指向本地檢出,改代碼即時生效:
corepack pnpm dsh plugin --profile web add link:E:\path\to\dsh-synapse
啓動 Web 服務¶
corepack pnpm dsh web # 默認 http://127.0.0.1:3080
corepack pnpm dsh web --port 0 # 3080 被佔用時自動分配空閒端口
打開 http://127.0.0.1:3080/,點擊頂部「會話地圖」進入畫布。
卸載¶
corepack pnpm dsh plugin --profile web remove dsh-synapse
remove 只移除插件依賴與 profile 激活層,不會刪除畫布數據($DSH_HOME\synapse\workspaces.json)。重裝後舊數據會自動遷移恢復。若要徹底清理,需手動刪除 $DSH_HOME\synapse\ 目錄。
典型用法示例¶
按官方 README 的使用流程,日常操作可以概括爲四步:
- 在 DSH 中選擇工作目錄,或打開一個已有會話;
- 點擊頂部「會話地圖」進入畫布;
- 瀏覽卡片:點擊卡片或側邊欄會話即可切換當前會話(原生頁同步跟隨);需要替代路徑時使用「分支」;
- 點擊卡片底部「詳情」查看完整對話;通過頂部「對話」或卡片「在 DSH 中打開」回到原生界面。
可選配置¶
插件通過 profile 的 cordis.patch.yml 注入,可在自有 patch 中按行 id synapse 覆蓋 config(需重述全部鍵):
| 鍵 | 默認值 | 說明 |
|---|---|---|
dataFile |
$DSH_HOME/synapse/workspaces.json |
畫布元數據持久化路徑 |
autoProjection |
true |
是否自動把已提交的 DSH 會話事件投影爲畫布卡片 |
projectionWorkspaceTitle |
DSH 任務 |
投影工作區的標題 |
trustedHosts |
[] |
額外放行的 Host;localhost 與 127.0.0.1 始終放行,局域網訪問需加入你的主機 |
示例:
- id: synapse
config:
dataFile: !!js dshHomePath('synapse/my-workspaces.json')
autoProjection: true
projectionWorkspaceTitle: 我的任務
適用場景與注意事項¶
適合誰用:
- 在同一項目裏並行探索多種方案,需要看清分叉關係而不是在會話列表裏盲找;
- 長鏈路調試或調研,想在一屏內定位「從哪一輪岔出去、哪條路徑已放棄」;
- 已習慣 DSH Web 對話,希望加一層可視化組織而不換 Harness 或自建第二套 UI;
- 需要工具調用細節留在助手卡片內,避免畫布被大量工具節點淹沒。
使用前請注意:
- 權限與安全:插件與 DSH 同進程權限運行;安裝前請檢查源碼與許可證。畫布元數據保存在本地
$DSH_HOME/synapse/workspaces.json(當前 schema v4,舊版自動遷移),與會話正文分離。 - 數據邊界:單條消息投影上限 8000 字符,超出會截斷並標註「—…(詳情查看全文)」。刪除
workspaces.json會丟失畫布佈局與分支錨點,不會丟失 DSH 會話日誌。 - 單實例建議:兩個
dsh web實例共享同一 profile 時會寫同一個workspaces.json;運行時已加跨進程寫鎖與外部修改警告,但最後寫入覆蓋的風險仍在——請只運行單個實例。 - 平臺限制:僅 web profile;Headless 或其他 profile 不會加載此插件。
- 社區數據:Stars、Forks 隨時間變化,本文寫作時 SkillHub 目錄顯示約 184 stars;以你打開目錄頁或 GitHub 時的即時數據爲準。
結尾¶
dsh-synapse 把 DSH 裏最難「一眼看懂」的非線性對話關係,落到一張可交互的畫布上:分叉、同步、投影與工具摺疊都圍繞原生會話能力展開,而不是另起一套 Agent 棧。若你經常在 Harness 裏開分支、並行試路,這個客戶端插件值得裝到 web profile 裏試一輪。