DSH SessionGraph:把當前會話整理成可編輯導圖

前言

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 code
  • npm err、pnpm err
  • warning、debug、verbose 日誌
  • 重複試錯過程
  • 大段終端命令輸出

整理結果可以在彈窗裏繼續編輯,支持手動修改節點、增加子節點、刪除不想要的節點,也支持一鍵複製導出結果。

三種導圖模式

插件支持三種模式:

模式 內容 適合場景
默認導圖 會話目標、最終結論、關鍵要點、決策與取捨、待辦、文件 / 產出 平時整理一段會話
精簡導圖 只保留最終結論和待辦 快速覆盤、交接、寫 commit 前看一眼
詳細導圖 默認導圖 + 壓縮後的時間線 會話比較長,想回頭看過程時使用

導出格式

目前支持這些格式:

  • Markdown 大綱
  • Mermaid mindmap
  • PlantUML mindmap
  • XMind 縮進文本
  • 待辦清單簡介

這些格式都適合複製後繼續編輯,例如貼進文檔、代碼倉庫說明、覆盤記錄或思維導圖工具。

安裝與啓用

插件要求:

  • engines.node: >=20
  • dsh.client.platform: web

在插件目錄裏執行:

dsh plugin --profile web add .

這條命令的作用是把當前目錄作爲插件加入 DSH 的 web profile。

安裝後重啓或刷新 DSH,打開一個已有內容的會話,就能看到輸入框上方右側的 SessionGraph ▾ 按鈕。

如果只是想確認安裝入口,不建議憑倉庫名直接拼接遠程安裝命令;已覈實資料裏給出的本地安裝方式就是上面的 dsh plugin --profile web add .。

典型用法

下面是一組常見流程:

  1. 打開一個已經有一定內容的 DSH 會話。
  2. 點擊輸入框上方右側的 SessionGraph ▾ 按鈕。
  3. 選擇默認導圖、精簡導圖或詳細導圖。
  4. 在彈窗裏檢查生成的節點。
  5. 手動刪除無關節點,補充遺漏結論或待辦。
  6. 點擊一鍵複製,導出 Markdown、Mermaid、PlantUML、XMind 縮進文本或待辦清單簡介。

這個流程適合用在:

  • 一次開發會話結束後做簡短覆盤。
  • 把長對話壓縮成一份可交接的要點。
  • 寫 commit message 或任務記錄前快速回顧結論。
  • 把會話中的文件產出整理成清單。

提取規則

主要解析邏輯在 lib/extractor.js。當前實現是本地規則,不依賴額外模型。

大致流程如下:

  1. 從當前 ConversationSnapshot 裏讀取用戶消息和助手消息。
  2. 默認跳過 reasoning / thinking 內容。
  3. 對每一行做清理,過濾明顯噪聲。
  4. 優先保留最後幾條助手回覆裏的結論。
  5. 識別一些結論類關鍵詞。
  6. 從文本里抓取疑似文件路徑,放進“文件 / 產出”節點。

它會識別這些關鍵詞:

  • 結論
  • 總結
  • 完成
  • 結果
  • 決定
  • 待辦
  • 下一步
  • TODO
  • Decision
  • Summary

文件路徑會被放到“文件 / 產出”節點裏,便於後續整理。

需要注意的是,這套規則不是完整記錄所有過程,而是爲了快速得到一份現在還能用的信息。

項目結構

倉庫結構大致如下:

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 或 TODO brief。

適用場景與注意

適合以下場景:

  • DSH 會話比較長,希望快速提取結論。
  • 需要在開發、調試、排查問題後整理一份要點。
  • 需要把會話中的待辦和文件產出單獨複製出來。
  • 想把一次會話轉成可編輯的 Markdown、Mermaid、PlantUML 或 XMind 大綱。

使用前需要注意:

  • 它只讀取當前頁面已有的會話快照,不修改會話持久化文件。
  • 它會主動過濾一部分過程噪聲,因此結果不是完整聊天記錄。
  • 它會以當前 DSH 進程擁有的權限運行,安裝前應檢查源碼、依賴和許可證。
  • 當前實現面向 web 端,依賴關係在 package.json 中聲明。

項目地址:

  • GitHub: https://github.com/lwklbb/DSH-SessionGraph
  • 許可證:MIT © 2026 lwklbb
羽毛球分组比赛记分
小程序二维码

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

小夜