DSH 生態採用插件化架構。在長對話場景下,模型容易遺忘早期上下文。dsh-session-summarizer 插件提供了一種原生解決方案,通過讀取會話內容並生成中文摘要,輔助模型快速恢復上下文。
插件定位¶
本插件是 DSH 生態原生 Cordis 插件,由開發者 KhalilYamber 維護。它利用 DSH 官方運行時讀取會話並生成摘要,不依賴任何外部服務。
核心能力如下:
* 讀取指定、當前或最近會話並生成中文上下文摘要。
* 註冊模型可見工具 session_summarize。
* 全程走 DSH 官方運行時 @deepseek-ai/dsh-session(讀取會話)與 @deepseek-ai/dsh-llm(生成摘要)。
* 支持通過 lastTurns 參數限制摘要的用戶消息輪數。
安裝與啓用¶
以 bundle patch 形式將插件裝入 profile 的 node_modules,隨 dsh plugin 命令完成安裝。
dsh plugin --profile <profile名> add dsh-session-summarizer
安裝後啓動 profile,session_summarize 工具隨插件註冊。摘要模型、轉錄預算等行爲可在配置文件中調整。
典型用法¶
在會話中讓模型調用 session_summarize 工具。
參數說明¶
| 參數 | 必填 | 說明 |
|---|---|---|
sessionId |
否 | 要摘要的會話 id;缺省時優先當前會話,再回退最近活躍落盤會話 |
lastTurns |
否 | 只摘要最後 N 輪用戶消息;缺省不限制(計數單位爲「用戶消息」,非 assistant 消息) |
調用示例¶
-
文本指令調用:在會話中輸入以下內容,讓模型調用工具。
> 請用 session_summarize 彙總當前會話最近 20 輪,幫我恢復上下文。 -
工具調用:模型在生成回覆時直接調用
session_summarize工具並指定sessionId參數。
輸出格式¶
工具執行成功會返回 JSON,字段說明如下:
| 字段 | 類型 | 說明 |
|---|---|---|
ok |
boolean | 是否成功 |
summary |
string | 摘要正文 |
sessionId |
string | 實際摘要的會話 id |
source |
string | 會話來源:explicit / current-agent / recent-active / none / error |
readPath |
string | 讀取路徑:live-sessions / persistence-inspect / none / error |
chars |
integer | 送入摘要模型的轉錄字符數(截斷後) |
message |
string(可選) | 失敗時的錯誤說明 |
限制與說明¶
轉錄策略¶
- 轉錄基於派生消息或落盤事件日誌,只保留 user / assistant 文本,不含工具調用內部細節。
- 長會話轉錄採用「保留首尾、截斷中段」策略,默認預算
transcriptChars: 12000字符,超長部分以提示行替代。 lastTurns按「用戶消息數」計數,assistant 消息不佔用輪數上限。
依賴環境¶
- 摘要生成依賴
ctx.llm.stream的deepseek-official路由與默認模型deepseek-v4-flash(可在配置中覆蓋)。
總結¶
dsh-session-summarizer 爲 DSH 用戶提供了一套在長會話中恢復上下文的工具。安裝後,模型即可通過 session_summarize 工具主動請求生成摘要。