dsh-handy:給 DSH Web 客戶端補上會話筆記本與關鍵信息面板

前言

在 DSH Web 客戶端裏做多輪智能體調試時,往往會遇到幾類反覆出現的麻煩:長會話裏隨手記的決策和臨時憑據散落在對話框裏,一旦分叉就取不回來;會話列表很長時,重要的那幾條要反覆滾動才能找到;右側邊欄開了一堆文件、預覽標籤,逐個點關閉很費時間。官方客戶端目前的 UI 側重會話與工作區管理,這些問題更多靠使用者自己用外部筆記應付,缺乏一個就地存放、隨會話流轉的機制。

dsh-handy 是 dayutech 維護的一個 DSH Web 客戶端增強插件,圍繞「會話級筆記本 + 關鍵信息面板」補齊了這些缺口。它把筆記本、關鍵信息、會話組和星標都放在本機瀏覽器 localStorage,只有顯式點擊「再次注入」時,關鍵信息纔會進入當前會話上下文。

本文基於插件 README 整理,先講清楚它提供哪些能力,再給安裝命令和典型用法。

這是什麼

dsh-handy 是一個 DeepSeek Harness Web 插件,定位是客戶端增強,而不是替換宿主功能。它屬於社區目錄 skillhub 收錄的「客戶端」分類插件,維護者爲 dayutech,倉庫地址 https://github.com/dayutech/dsh-handy。

它解決的核心問題是:DSH 會話本身是對話流,缺少適合存放「分析記錄」和「暫時用不上的憑據」的獨立空間,分叉時這些信息也不會自動帶上。dsh-handy 用瀏覽器本地存儲把這些信息按會話隔離保存,並在分叉時自動繼承,同時順手處理了側邊欄標籤批量關閉、工作區排序等界面層面的瑣碎操作。

插件只修改當前 Web 界面狀態,不寫入 Host 會話日誌或工作區文件。

核心功能

下面這些能力全部來自 README 的功能表和功能詳解。

會話筆記本

入口在會話頂部「對話 / 軌跡 / 筆記本」中的「筆記本」標籤。每個會話有獨立的文本區,不與其他會話串內容。

  • 輸入後約 250ms 自動保存,失焦、切換標籤或離開頁面時也會刷新保存。
  • 刷新頁面、重新打開會話後恢復;同一瀏覽器不同標籤頁會同步。
  • 提供字數統計、複製全文和清空當前會話筆記。
  • 數據只保存在本機,不跨設備同步,也不會自動發送給模型。

關鍵信息懸浮欄

入口在會話頁右上角的鑰匙徽標,默認收起,有內容時徽標顯示條目數。用於集中記錄目標地址、SSH 賬密、Web 登錄信息、數據庫連接信息以及任意自定義鍵值對。

要點如下:

  • 每個條目包含「名稱 / 值 / 說明(可選)」,支持複製值和刪除條目。
  • 快速添加預設:目標地址、SSH 賬密、Web 賬密、數據庫賬密,也可添加自定義條目。
  • 每個條目可單獨摺疊,摺疊後只顯示名稱,但仍保留單條注入、複製和刪除按鈕。
  • 每個條目有獨立的「注入此條」按鈕,只發送當前條目;底部「再次注入」發送全部有值條目。
  • 面板頂部提供「全部摺疊 / 全部展開」。
  • 展開面板可拖動標題移動;收起爲徽標後,可按住鼠標右鍵拖動徽標。
  • 懸浮欄位置按會話保存,並限制在當前會話工作區內;右側邊欄打開時會隨工作區右邊界向左移動,雙擊標題可恢復默認位置。
  • 如果當前會話被另一個 DSH 進程佔用,注入會提示「會話正被佔用」,這是宿主寫入句柄限制,不是靜默失敗。

指定輪次分叉與分叉繼承

在對話框輸入 /fork 會列出當前會話已加載歷史中的用戶輪次,選擇其中一輪後從該輪之後建立分支,並自動打開新會話。也可以走 DSH 原生分叉入口。

  • 完整輪次從該輪迴復之後分叉;仍在進行中的輪次從當前進度分叉,由宿主補齊未閉合的工具調用。
  • 原生分叉和 /fork 都會把源會話的筆記本與關鍵信息複製到新會話。
  • 複製內容包括關鍵信息條目、值、說明、條目摺疊狀態和懸浮欄位置;不復制工作區歸屬、會話組、高亮星標或模型設置。
  • 分叉繼承的是本機保存的 dsh.handy.v1 狀態。如果源會話尚未自動保存剛輸入的筆記本內容,可能只複製最近一次已保存內容。

工作區會話組

會話組是工作區下的邏輯子文件夾,不是真實文件系統目錄。

  • 入口:工作區行 … →「新增會話組」;會話組行 … 管理組;會話行菜單「加入會話組…」移動會話。
  • 支持最多 3 級嵌套;組與會話必須屬於同一工作區。
  • 可以在組內添加會話、新建會話,也可以把會話卡片拖到會話組行上移動。
  • 組和歸屬關係保存在本機,不寫入 Host 會話日誌;跨工作區拖拽會被拒絕並給出提示。

會話高亮

入口是會話行右側星標,或會話行菜單「標記爲重要」。重要會話在左側列表中帶彩色漸變底和左側色條,便於在長列表中掃視。高亮狀態按會話保存在本機並支持跨窗口同步,不改變會話內容或歸檔狀態。

運行工作區排序

有會話正在運行,或該會話有子 agent 正在運行的工作區,會自動提升到側邊欄最上方;多個運行工作區按 Host 原始順序穩定排列,任務結束後按 Host 順序恢復,不會永久打亂工作區。運行中的會話轉圈改爲更醒目的藍色並帶輕微藍色光暈。這部分只調整 Web 側邊欄的顯示順序和狀態顏色,不修改會話狀態或工作區數據。

右側邊欄標籤批量關閉

右鍵任意右側邊欄標籤,可以選擇「關閉當前標籤頁」「關閉左側所有標籤頁」「關閉右側所有標籤頁」或「關閉所有標籤頁」。該能力對文件、預覽、終端以及後續新增的 dock 標籤類型統一生效,不依賴標籤內容類型。

  • 系統自帶的菜單項「關閉」已隱藏,避免與插件的「關閉當前標籤頁」重複,標籤上的單獨 X 按鈕仍保留。
  • 關閉操作通過右側邊欄控制器執行,仍遵循宿主對當前可關閉標籤的判斷。

安裝與啓用

從 npm 安裝(推薦,預構建包,安裝時不需要構建):

dsh plugin --profile desktop add dsh-handy

從 GitHub 源碼安裝:

dsh plugin --profile desktop add https://github.com/dayutech/dsh-handy

從本地目錄安裝:

dsh plugin --profile desktop add D:\path\to\dsh-handy

如果使用 CLI profile,把 desktop 換成實際 profile 名。安裝後重啓對應的 Harness 進程並刷新頁面。卸載用:

dsh plugin --profile desktop remove dsh-handy

也可以在 ~/.dsh/profiles/<profile>/package.json 中把本包加入依賴,並確保 dsh.profile.bundles 包含 dsh-handy。

版本與兼容性:當前最新版本 0.8.1,插件聲明的 engines.dsh 爲 >=0.2.1-rc.3 <0.2.3-0,在 DSH 0.2.2-rc.1 上構建和驗證;許可證爲 MIT。注意 0.2.2 起 DSH 以 engines.dsh 判斷第三方插件兼容性,聲明範圍不覆蓋當前版本時,整個 bundle 層會被跳過,插件表現爲「裝了但完全沒反應」。

典型用法

以下按「配置會話 → 分叉 → 維護界面」的順序給出一個可直接復現的流程。

1、打開任意工作區下的會話,點擊右上角鑰匙徽標,用預設添加「目標地址」和「SSH 賬密」兩條關鍵信息,填好值和說明。

名稱:目標地址
值:https://example.internal
說明:預發環境入口

2、展開懸浮欄,把標題拖到順手的位置(例如會話區右側靠上),雙擊標題可恢復默認位置。

3、在會話頂部切到「筆記本」標籤,用簡短條目記錄這次要排查的問題和中間結論。輸入後約 250ms 會自動保存,切走標籤頁或刷新頁面都不會丟。

4、對當前會話輸入 /fork,選擇某個用戶輪次,插件會從該輪之後建立分支並自動打開新會話。新會話會帶上源會話的筆記本和關鍵信息內容,條目摺疊狀態與懸浮欄位置也都一致。

5、把當前會話卡片拖到某個會話組行上,即可把它移入該組。跨工作區拖拽會被拒絕並提示。

6、右鍵右側邊欄的某個文件或預覽標籤,選「關閉左側所有標籤頁」,可一次性清理多餘標籤。

適用場景與注意

適合的使用場景:經常做會話分叉、需要在同一會話裏保留排查筆記和臨時憑據、側邊欄標籤容易堆積、希望按工作區用會話組組織長列表的 DSH Web 使用者。

使用前需要注意幾點:

  • 插件代碼以當前 dsh 進程的權限運行。安裝前應先檢查源碼與許可證,確認 cordis.patch.yml 的 Host 側補丁和 dsh.client.inject 的注入列表符合自己的安全要求。本插件不對第三方插件、模型或宿主本身的安全性作保證。
  • 筆記本和關鍵信息保存在本機 localStorage 的 dsh.handy.v1 鍵中,不走插件自己的網絡請求;關鍵信息是明文本數據,可能包含 SSH、Web、數據庫憑據,不要在共享設備或不受信任的瀏覽器配置中使用。
  • 點擊「再次注入」會把這些內容作爲用戶消息發送到當前會話隊列,應確認當前會話和模型環境允許處理這些憑據。
  • 0.2.x 的舊版「全局編組」數據不再兼容,升級後需要按工作區重新創建會話組。

結尾

dsh-handy 的價值在於把「會話筆記本」和「關鍵信息面板」這兩樣原本散落在別處的東西收回到會話內部,並讓分叉繼承、會話組、高亮和批量關閉這些操作各歸其位。它沒有替換宿主能力,只是補上了 Web 客戶端界面層面的幾塊短板。

目錄頁:https://www.skillhub.cn/plugins/dayutech/dsh-handy

GitHub:https://github.com/dayutech/dsh-handy

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

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

小夜