前言¶
DeepSeek Harness (DSH) 的默認會話標題通常僅取首條消息,隨着對話深入,標題往往與當前主題脫節,導致檢索與記憶上下文變得困難。手動維護這些標題不僅耗時,且容易遺漏。針對這一痛點,dsh-smart-title 插件利用大模型對完整對話上下文進行總結與改寫,實現會話標題的自動化、智能化管理。
是什麼¶
dsh-smart-title 是一個記憶類 DSH 插件,由維護者 weibaohui 開發,遵循 MIT 許可證。它通過 LLM 總結改寫會話標題,在每輪對話結束後自動更新標題,旨在讓側邊欄的會話標題反映會話的真實意圖與進度。
核心功能¶
- 全對話總結:對“用戶消息 + 助手回答”的完整轉寫進行一輪總結,標題反映會話真正在做的事,而非複述第一句話。
- 首條消息即時出題:會話第一條消息到達即出 LLM 標題,接管官方
first-prompt節奏。 - 刷新節流:設定最小刷新間隔(默認 2 分鐘),避免長會話每輪對話都消耗 LLM,同時消掉首題與回合結束的重複刷新。
- 長會話凍結:當用戶消息超過閾值(默認 100)後停止自動刷新,降低主題漂移概率(啓動回填路徑除外)。
- 同題靜默跳過:新生成標題與現標題相同時,靜默返回現值,不產生寫入操作與側欄閃爍。
- 失敗自動重試:對官方內置標題提供方的失敗進行兜底重試,防止回退標題永久殘留。
- 手動改名保護:用戶在界面上手動改過的標題(釘住)絕不會被自動覆蓋。
- 範圍可控:可自動跳過子代理會話與 fork 子會話,並可配置是否包含助手回答。
- 啓動回填(可選):對標題仍是回退文案的活躍會話進行逐個重寫(默認關閉)。
- 模型可指定:默認跟隨會話當前模型,也可爲標題生成單獨指定路由。
安裝與啓用¶
執行以下命令安裝插件:
dsh plugin --profile web add @weibaohui/dsh-smart-title -w
安裝完成後重啓 dsh web 即可生效。安裝過程中會自動禁用 DSH 內置的 first-prompt 標題提供方(session-title 服務只允許一個提供方共存,卸載本插件後內置提供方會自動恢復)。
典型用法¶
- 正常使用:安裝並重啓後,正常聊天即可。側邊欄會話標題會在第一輪對話後自動變成總結式標題。
- 可視化配置:進入 設置 → 會話智能標題,可調整總開關、標題長度、刷新節流間隔、長會話凍結閾值、標題模型路由、範圍排除及啓動回填等參數。保存後配置立即生效。
- 存量會話修復:打開「啓動回填」選項,重啓一次 DSH 實例。插件會對標題仍是回退文案的活躍會話逐個重寫(用戶手動改過的不受影響)。
- 直接編輯配置:也可直接編輯
~/.dsh/settings.yaml中的dsh-smart-title:節,保存後約 2 秒熱生效。
工作原理¶
插件通過 DSH 官方的 sessionTitle 服務日誌事件機制(session/title)進行標題寫入,與內建提供方共用同一通道,客戶端側邊欄無感知自動刷新。
- 觸發機制:插件註冊唯一提供方接管
first-prompt自動節奏,並訂閱session/event的turn/end(completed)事件觸發顯式刷新。 - 上下文構建:每次刷新時,插件讀取完整會話日誌構建轉寫。用戶消息按
seq歸屬,助手回答按預算裁剪,生成摘要。 - 獨立請求:通過
ctx.llm以purpose: session-title發起獨立輔助請求,不影響主對話上下文與 KV Cache。 - 過濾與節流:在
turn/end刷新前,會檢查兩個條件:refreshMinIntervalMs(距上次生成的最小間隔,覆蓋首題在內的所有路徑)與refreshMaxTurns(長會話凍結,回填路徑豁免)。 - 去重:若生成結果與現標題同題(忽略大小寫與空白差異),則靜默返回現值,不寫入與告警。
適用場景與注意¶
此插件適合需要長期維護會話上下文、依賴側邊欄快速檢索會話主題的 DSH 用戶。
插件以當前 DSH 進程的權限運行。在使用前,建議檢查插件源碼與許可證(MIT)以確認安全性。
總結¶
dsh-smart-title 提供了一套從安裝到配置再到回填的完整方案,解決了默認標題不相關與手動維護繁瑣的問題。對於追求會話管理效率的開發者,它是一個值得納入工具箱的插件。