dsh-think-summary:DSH 長思考即時分段總結插件

前言

推理模型的思考鏈對調試和評估很有價值,但在聊天界面裏它通常一滾而過:回答結束後想回頭看「模型當時是怎麼推的」,往往沒有入口,只能翻原始日誌。

dsh-think-summary 解決的就是這個問題。它是一個 DSH(Cordis 架構)雙面插件:檢測模型的長思考,邊思考邊分段、逐段產出摘要,即時展示在聊天區,附帶設置頁與歷史持久化。下面按功能、安裝、驗證、注意事項的順序介紹。

這是什麼

插件名爲 dsh-think-summary,倉庫位於 https://github.com/oakcakerolls/dsh-think-summary ,許可證 MIT,當前版本 0.1.2。

它分兩個半面:Host 半面(src/host/*,TypeScript)負責檢測、分段、總結、精煉、持久化;客戶端半面(src/client/*,純 JS)負責即時面板、總結條、視圖與設置卡。需要強調一點:總結不寫回會話上下文,只做展示,對對話零污染。

核心功能

長思考檢測與語義分段

Host 半面在 llm/stream 瀑布中即時觀察 reasoning-delta,用輕量 token 計數(CJK 自適應、原始計數不取整)衡量思考量。超過閾值(默認 2000 token)自動進入分段模式;默認過濾 purpose 非空的旁路流(壓縮、標題生成等輔助調用)。

分段採用雙閾值:最小窗口 1500 token,達到後等待語義邊界再切;硬上限 3000 token,到點強制切並回溯到最近的句末或行末。切分感知 Markdown 結構:圍欄狀態機保證代碼塊整體原子、表格整體保留、列表只在項邊界切。緩衝區只緩存未總結的餘量,內存有界,state 級哈希去重。

逐段總結與精煉

每段先由啓發式提取產出摘要(0 token,即時可用);開啓精煉後,可精煉的段會用會話 provider 的最小可用模型重新生成摘要,帶輸入預算與三檔裁剪(頭尾 / 僅尾部 / 完整保留,默認 headtail)。精煉併發池默認 3,任務互不打斷,超時釋放併發位,異常時自動回退啓發式並在段上標註原因。段頭同時顯示原始輸出 token 與精煉實際 token。

代碼塊和表格有三態處理:ignore(默認,內容不寫內存、卡片不顯示任何痕跡)、keep-skip(保留並做結構化摘要、跳過精煉)、keep-refine(保留並精煉)。

界面上的三個位置

1、即時面板:composer 上方,展示思考進度和滾動追加的分段摘要,僅「對話」視圖顯示。客戶端每 1.5 秒輪詢 /api/think-summary/state

2、聊天流內總結條:每條回覆末尾(turnTail 槽位)顯示該 turn 的思考總結,按每次思考(step)分組,默認摺疊。

3、思考總結視圖:會話頭部的「思考總結」選項卡,列出當前會話全部被記錄的思考,可摺疊、自動滾底,摺疊狀態經 localStorage 持久化。

兜底與可選的自產小結

session/event 事件流斷流或異常時,插件會補跑分段總結,兜底分段同樣入隊精煉(用會話默認模型),不丟摘要。

另有主模型自產小結,默認關閉:把 selfSummary 設爲 prompt 後,向系統提示詞注入小結指令,流內捕獲【思考小結】標記直接展示。它只是展示層面的補充,不影響外部分段。

持久化與清理

思考總結保存到 ~/.dsh/dsh-think-summary.json,採用原子寫(tmp+rename),每次狀態變更同步落盤,重啓 dsh 後仍可查看歷史。支持已歸檔會話的自動/手動清理:自動清理默認關,歸檔保留天數默認 30,立即清理默認寬限保留最近 24 小時。

設置頁與 HTTP 接口

設置頁位於側邊欄「設置 → 插件配置 → think-summary」卡片,分組可摺疊。由於官方設置橋只服務白名單命名空間,本插件自建了 loopback 設置橋,改動即時生效、無需重啓。主要默認值:長思考閾值 2000、段最小窗口 1500、段硬上限 3000、精煉開(預算 1024 token、併發 3、超時 60 秒、模型 auto)、代碼塊/表格處理 ignore、自產小結 off。

Host 提供六個 HTTP 接口,瀏覽器同源直連:

GET  /api/think-summary/state               會話思考狀態視圖
GET  /api/think-summary/models              精煉模型下拉數據源
POST /api/think-summary/settings/describe   設置命名空間視圖
POST /api/think-summary/settings/mutate     逐字段 set/unset
POST /api/think-summary/clear-archived      清理已歸檔會話總結
POST /api/think-summary/pause               切換全局暫停

其中 settings / clear-archived / pause 三個接口爲 loopback-only,拒絕非本機來源。

安裝與啓用

npm 包方式一行命令完成安裝:

dsh plugin --profile web add dsh-think-summary

本地開發安裝(README 標⭐推薦,需要本機可用的 pnpm):

dsh plugin --profile web add link:/絕對/路徑/to/dsh-think-summary
# Windows 示例:
dsh plugin --profile web add link:D:/Files/zzj/Programs/webs/dsh-plugins/dsh-think-summary

該命令在 ~/.dsh/profiles/web/ 下寫入 link: 依賴、建立符號鏈接並把包加入 dsh.profile.bundles。卸載用 dsh plugin --profile web remove dsh-think-summary

如果只需要 Host 面,也可以在 cordis.yml 裏手動加一行:

- path: /絕對/路徑/to/dsh-think-summary
# 或
- pkg: dsh-think-summary

注意:手動 cordis.yml 方式只裝載 Host 面,檢測、分段、總結、精煉、持久化均可用,但沒有設置頁與即時面板。

使用與驗證

1、向模型提出需要深度推理的問題,讓思考量超過長思考閾值。

2、思考進行中,composer 上方出現即時面板 ● 思考中 · N tok · M 段,分段摘要滾動追加;開啓精煉的段稍後標記「已精煉」。

3、思考結束,面板轉爲「思考結束」;下一次思考的積累期會保留上次總結作參照。

4、每條回覆末尾出現可摺疊的「思考總結」條,按 step 分組;會話頭部的「思考總結」選項卡可查看當前會話全部歷史總結。

閾值內的短思考不產出分段,不打擾正常對話。

本地開發與調試

克隆倉庫後依次執行 npm installnpm run buildnpm run typecheck 即可構建。調試循環用 npm run watch:all 並行監聽兩端:客戶端改動刷新瀏覽器即生效,Host 半面(src/host)改動需重啓 dsh web。倉庫還帶兩個迴歸腳本:

node scripts/seg-check.mjs    # 分段算法迴歸
node scripts/order-check.mjs  # 客戶端 bundle 模塊順序檢查

適用場景與注意

適合在 DSH web 上重度使用推理模型、需要回顧和檢查模型推理過程的開發者與評估人員。

幾點注意:

1、總結不寫回會話上下文,不會影響模型後續輸入;閾值內的短思考不產出分段。

2、手動 cordis.yml 或手動補丁方式只有 Host 面,看不到設置頁與即時面板。

3、settings / clear-archived / pause 接口僅限本機訪問,這是有意爲之的安全邊界。

4、插件以當前 dsh 進程權限運行,安裝前建議先閱讀源碼與許可證(MIT)再決定是否啓用。

結尾

經過上面的步驟,dsh-think-summary 把原本一滾而過的長思考變成了可即時觀察、可事後回顧、可持久保存的記錄,且對會話上下文零污染。項目地址:https://github.com/oakcakerolls/dsh-think-summary ;也可在社區目錄查看:https://www.skillhub.cn/plugins/oakcakerolls/dsh-think-summary (該目錄爲獨立社區站點,與 DeepSeek、幻方無官方從屬關係)。

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

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

小夜