前言¶
DSH 裏跑一段時間後,對話窗口會越開越多:同一個工作區的分支話題互相有關聯,跨工作區的對照又完全不同。原有界面把對話按時間排成列表,你得靠標題和記憶去回憶“這條對話是跟着哪條往下走的”。本文介紹的 dsh-talk-pages 就是解決這件事的:它把已有的對話渲染成一張可視化白板,卡片可以自由擺放,用連線表示關聯,用框把幾段對話收在一起。
先說它不是官方組件。這是一個社區插件,倉庫在 github.com/HanYu-me/dsh-talk-pages,維護者 HanYu-me,在 SkillHub 目錄中歸類爲「客戶端」。它也不是另一個可視化插件 dsh-talk-map 的替代品式包裝——兩者使用不同的存儲和接口,下文會說明。以下內容全部來自倉庫 README 與 package.json,可直接覈對。
這是什麼¶
一句話:dsh-talk-pages 給 DeepSeek Harness 加上一層「按工作區分頁的對話畫布」,把現有對話作爲卡片鋪在頁面上,支持自由擺放、框分組和卡片間連線。
對話本身仍然歸 dsh 所有,插件只讀取對話內容,並在你分叉時通過官方接口新建對話。畫布上的位置、框、連線和摘要是插件自己存的一份數據。
核心能力¶
分頁¶
頂部標籤欄列出每個工作區,並帶上該工作區的對話數,點擊即可切換。每個頁面各自記住鏡頭位置,最後停留的頁面重開時還在。
自由擺放¶
卡片落在哪就在哪,插件不會替你重排。右上角的「吸附」開關控制卡片落下時是否對齊 16px 網格。
框¶
+ 新建框,或在空白處右鍵新建。雙擊標籤改名,右鍵換顏色,可拖動,也可從四邊四角縮放。把卡片拖進框裏(以卡片中心落在框內爲準)即入框,拖出來就恢復自由。刪除框只是解散成員,不會刪除任何對話。
框內默認自由擺放(成員位置由你定,拖動框時成員跟着走),右鍵框可切換成網格排列;放不下的成員會摺疊成堆疊格。
連線¶
從卡片手柄拖到另一張卡片即建立關聯;拖到空白處可以分叉出一個帶上下文的新對話。連線只畫在同一頁內的卡片之間。
卡片正面與狀態燈¶
卡片正面顯示標題、你最後說的話、相對時間和狀態燈,狀態燈覆蓋運行中 / 等待 / 未讀 / 中斷四種。左側狀態欄只列帶燈的卡片。
顯示 / 隱藏、歸檔與選擇¶
- 在畫布空白處右鍵 →「顯示 / 隱藏對話…」,列出當前頁面(工作區)的全部對話(含已歸檔),帶 ✓ 的在地圖上;列表保持打開,可連續點擊切換。
- 已歸檔的對話在卡片上標「已歸檔」;點擊卡片會先取消歸檔再跳轉到該對話,不會跳到新對話。在搜索結果裏點已歸檔對話行爲相同。
- 頂部「選擇對話」彈窗列出全部對話(含已歸檔),勾選哪些放在地圖上,應用後自動加入或移出。新對話默認不會自動出現,彈窗裏可以打開「自動加入新對話」。
優先級¶
右鍵卡片可以標記 高 / 中 / 低,卡片左側出現色條和標籤;左側「重點對話」欄按優先級列出所有已標記卡片,點擊即定位。側欄裏的置頂不影響地圖。
讓對話來整理地圖¶
插件提供了文件接口,允許 Agent 直接讀寫畫布數據。開一個新對話說「按行業整理個股研究」之類,Agent 就能按 ~/.dsh/talk-pages/ 下的約定操作佈局。具體接口見倉庫內的 docs/AGENT.md 和 skills/talk-pages-layout/SKILL.md。
安裝與啓用¶
官方安裝命令,直接執行:
dsh plugin add github:HanYu-me/dsh-talk-pages
構建產物已提交在倉庫裏,不需要自己構建。執行後重啓 dsh,側欄底部會出現按鈕。
package.json 裏聲明瞭運行要求:Node >=22.19.0,dsh >=0.2.1-rc.1 <0.3.0-0。當前版本 0.2.3,許可證 MIT。
典型用法¶
下面是幾個可復現的操作:
1、新建對話卡片。在畫布空白處雙擊,新的卡片就生成在點擊的位置;雙擊已有卡片則打開該對話。
2、建立關聯或分叉。從一張卡片的手柄拖到另一張卡片建立關聯;拖到空白處則會帶上下文分叉出一條新對話。
3、用框收攏相關對話。右鍵空白處新建框,命名、改色,把幾張卡片拖進框內。需要逐個加入或移出時,改用空白處右鍵的「顯示 / 隱藏對話…」列表。
4、標記重點。右鍵卡片設置 高 / 中 / 低,之後在左側「重點對話」欄點擊對應條目直接定位。
5、讓 Agent 代爲整理。新開一條對話,讓 Agent 按 ~/.dsh/talk-pages/ 的接口組織頁面,例如「按行業整理個股研究」。
數據與邊界¶
畫布數據存在:
$DSH_HOME/storages/talk_pages.json
包含位置、框、連線和摘要。對話內容不復制進插件,插件只讀;只有分叉時才通過官方接口新建對話。
它與 dsh-talk-map 使用不同的存儲和接口,可以並存,但兩者都在側欄佔一個按鈕,建議只啓用一個。已有 talk-map 數據可以用 node scripts/migrate-from-talk-map.mjs 一次性遷入,遷移後舊的文件夾會變成同名的框。
適用場景與注意¶
適合對話數量多、分支之間有參照關係的 DSH 使用者:跨話題對照、給一組相關對話做分組、給重要對話打優先級。如果你只是偶爾開幾條對話,列表界面足夠用。
兩點提醒:
- 插件運行在當前 dsh 進程權限內,因此安裝第三方插件前應先讀一遍源碼(倉庫爲 MIT,源碼與
cordis.patch.yml都在倉庫內),並確認你能接受它讀寫$DSH_HOME下的畫布數據。 - 這是第三方插件,SkillHub 目錄與 DeepSeek / 幻方沒有官方從屬關係,本文也不構成任何背書。
小結¶
dsh-talk-pages 做的是一件事:把 DSH 已有的對話搬進一張可自由擺放、可連線、可用框分組的畫布,並按工作區分頁,每頁記住自己的鏡頭位置。它只讀對話、自行保存畫布數據,還留了文件接口讓 Agent 參與整理。如果你在對話列表裏已經找不到上次那條討論的上下文,可以試試裝它。
目錄頁:https://www.skillhub.cn/plugins/HanYu-me/dsh-talk-pages
倉庫:https://github.com/HanYu-me/dsh-talk-pages