前言¶
DSH 社區目錄是一個獨立站點,與 DeepSeek / 幻方沒有官方從屬關係。在 DSH「一切皆插件」的思路下,很多開發者會圍繞自己的會話流程加裝輕量工具。
長會話裏常見的問題是:中間有大量調試、報錯、反覆修改和終端輸出,最後真正需要留下的卻只有結論、決策、待辦和文件產出。dsh-sessiongraph 是 lwklbb 維護的一個 DSH web 插件,用來讀取當前會話,把內容整理成可編輯、可複製的結構化大綱與導圖。
下面介紹它的功能、安裝方式、典型用法和提取規則。
這是什麼¶
dsh-sessiongraph 是一個給 DSH 用的小插件,目標是把當前會話整理成可編輯、可複製的結構化大綱與導圖。
它的特點是:
- 只在當前 DSH 會話頁面上增加一個按鈕入口。
- 不接管原來的輸入框。
- 不修改會話持久化文件。
- 只讀當前頁面已有的會話快照。
- 真正功能在瀏覽器側完成。
MIT許可,維護者是lwklbb。
package.json 中的 package 名是 dsh-sessiongraph,倉庫地址是 https://github.com/lwklbb/DSH-SessionGraph。
核心功能¶
插件在會話輸入框上方右側增加一個 SessionGraph ▾ 按鈕。
點擊後,它會讀取當前會話內容,提取以下信息:
- 會話目標
- 最終結論
- 關鍵要點
- 決策與取捨
- 待辦 / 下一步
- 文件 / 產出
同時,它會過濾一些明顯不需要進入導圖的內容,例如:
stack trace- 終端日誌
stdout、stderr、exit codenpm err、pnpm errwarning、debug、verbose日誌- 重複試錯過程
- 大段終端命令輸出
整理結果可以在彈窗裏繼續編輯,支持手動修改節點、增加子節點、刪除不想要的節點,也支持一鍵複製導出結果。
三種導圖模式¶
插件支持三種模式:
| 模式 | 內容 | 適合場景 |
|---|---|---|
| 默認導圖 | 會話目標、最終結論、關鍵要點、決策與取捨、待辦、文件 / 產出 | 平時整理一段會話 |
| 精簡導圖 | 只保留最終結論和待辦 | 快速覆盤、交接、寫 commit 前看一眼 |
| 詳細導圖 | 默認導圖 + 壓縮後的時間線 | 會話比較長,想回頭看過程時使用 |
導出格式¶
目前支持這些格式:
Markdown大綱MermaidmindmapPlantUMLmindmapXMind縮進文本- 待辦清單簡介
這些格式都適合複製後繼續編輯,例如貼進文檔、代碼倉庫說明、覆盤記錄或思維導圖工具。
安裝與啓用¶
插件要求:
engines.node: >=20dsh.client.platform: web
在插件目錄裏執行:
dsh plugin --profile web add .
這條命令的作用是把當前目錄作爲插件加入 DSH 的 web profile。
安裝後重啓或刷新 DSH,打開一個已有內容的會話,就能看到輸入框上方右側的 SessionGraph ▾ 按鈕。
如果只是想確認安裝入口,不建議憑倉庫名直接拼接遠程安裝命令;已覈實資料裏給出的本地安裝方式就是上面的 dsh plugin --profile web add .。
典型用法¶
下面是一組常見流程:
- 打開一個已經有一定內容的 DSH 會話。
- 點擊輸入框上方右側的
SessionGraph ▾按鈕。 - 選擇默認導圖、精簡導圖或詳細導圖。
- 在彈窗裏檢查生成的節點。
- 手動刪除無關節點,補充遺漏結論或待辦。
- 點擊一鍵複製,導出 Markdown、Mermaid、PlantUML、XMind 縮進文本或待辦清單簡介。
這個流程適合用在:
- 一次開發會話結束後做簡短覆盤。
- 把長對話壓縮成一份可交接的要點。
- 寫
commit message或任務記錄前快速回顧結論。 - 把會話中的文件產出整理成清單。
提取規則¶
主要解析邏輯在 lib/extractor.js。當前實現是本地規則,不依賴額外模型。
大致流程如下:
- 從當前
ConversationSnapshot裏讀取用戶消息和助手消息。 - 默認跳過
reasoning/thinking內容。 - 對每一行做清理,過濾明顯噪聲。
- 優先保留最後幾條助手回覆裏的結論。
- 識別一些結論類關鍵詞。
- 從文本里抓取疑似文件路徑,放進“文件 / 產出”節點。
它會識別這些關鍵詞:
結論總結完成結果決定待辦下一步TODODecisionSummary
文件路徑會被放到“文件 / 產出”節點裏,便於後續整理。
需要注意的是,這套規則不是完整記錄所有過程,而是爲了快速得到一份現在還能用的信息。
項目結構¶
倉庫結構大致如下:
DSH-SessionGraph/
├─ cordis.patch.yml
├─ lib/
│ ├─ index.js # host 側入口,目前保持 no-op
│ ├─ client.js # 瀏覽器 UI 和 slot 註冊
│ └─ extractor.js # 會話解析、導圖生成、格式導出
├─ test/
│ └─ extractor.test.mjs
├─ docs/
│ └─ sessiongraph-showcase.png
├─ package.json
├─ LICENSE
└─ README.md
其中:
lib/index.js是 host 側入口,目前只是空實現。lib/client.js負責瀏覽器側 UI 和 slot 註冊。lib/extractor.js負責會話解析、導圖生成和格式導出。
核心函數包括:
extractMessages(snapshot):從會話快照提取可用消息。summarizeSession(snapshot, mode):按模式生成導圖樹。exportGraph(tree, format):把導圖樹導出爲Markdown、Mermaid、PlantUML、XMind或TODObrief。
適用場景與注意¶
適合以下場景:
- DSH 會話比較長,希望快速提取結論。
- 需要在開發、調試、排查問題後整理一份要點。
- 需要把會話中的待辦和文件產出單獨複製出來。
- 想把一次會話轉成可編輯的
Markdown、Mermaid、PlantUML或XMind大綱。
使用前需要注意:
- 它只讀取當前頁面已有的會話快照,不修改會話持久化文件。
- 它會主動過濾一部分過程噪聲,因此結果不是完整聊天記錄。
- 它會以當前 DSH 進程擁有的權限運行,安裝前應檢查源碼、依賴和許可證。
- 當前實現面向 web 端,依賴關係在
package.json中聲明。
項目地址:
- GitHub:
https://github.com/lwklbb/DSH-SessionGraph - 許可證:
MIT © 2026 lwklbb