DeepSeek Harness (DSH) 內置了一個標題生成器 (session-title-first-prompt-llm),但它是一次性操作,且 maxOutputTokens: 64 的限制使其在面對推理模型時經常失敗。這導致許多會話長期停留在“提示詞截取”的回退標題上,缺乏主題感。dsh-session-topics 插件通過重試機制和自動補丁,確保每個會話最終都有一個有意義的 LLM 生成標題,並提供會話列表的懸停大小數據。
插件介紹¶
dsh-session-topics 是 DeepSeek Harness 的會話主題標題插件,旨在解決會話標題長期失效的問題。它不註冊獨立的標題提供者,而是直接向 session/title 日誌事件追加內容。該插件由 SipengXie2024 維護,開源協議爲 MIT。
核心功能¶
-
啓動掃描
DSH 啓動 8 秒後,插件會對所有持久化的會話進行檢查。如果會話仍使用回退標題,插件會使用當前默認模型生成並寫入一個真實的主題標題。 -
輪次結束重試
插件監聽代理狀態變化。當代理狀態從running變爲idle時,如果該會話的標題依然是回退標題,插件會嘗試重新生成標題。 -
數據接口
插件提供兩個 HTTP 端點:
-GET /topics-size?id=<sessionId>:返回指定會話的持久化日誌字節數,用於懸停卡片。
-GET /topics-sweep:手動觸發全量掃描,並以 JSON 格式返回每個會話的重命名結果,用於調試。 -
懸停卡片大小補丁
會話列表的懸停卡片屬於 DSH 的核心 UI 組件,沒有預留插件槽位。該插件通過源碼補丁的方式,在 v0.3.0 版本起實現了自愈機制。插件會在每次啓動時自動應用此補丁,無需手動干預。
安裝與啓用¶
使用官方提供的安裝命令將插件添加到 DSH 的 Web 配置文件中。注意:安裝命令需要本地存在對應的 .tgz 壓縮包文件。
dsh plugin --profile web add .\dsh-session-topics-0.3.0.tgz
安裝完成後,需要重啓 DSH Web 進程以使插件生效。
典型用法¶
手動觸發標題掃描
如果你需要立即查看所有會話的重命名情況,可以直接調用接口:
GET /topics-sweep
檢查會話大小
在會話列表的懸停卡片中查看日誌大小時,需要先通過接口獲取數據:
GET /topics-size?id=<sessionId>
手動執行懸停補丁
對於沒有運行該插件的機器,可以運行腳本進行手動補丁:
node scripts/patch-hover-size.mjs
適用場景與注意¶
- 適用場景:需要維護會話標題規範,希望避免看到 “System prompt…” 或 “User: …” 等無意義回退標題的開發者;需要通過懸停卡片查看會話日誌大小的場景。
- 注意事項:
- 用戶重命名保護:用戶手動重命名(固定)的標題永遠不會被插件修改。
- 冪等性:插件具有冪等性。如果檢測到錨點漂移(例如 DSH 版本升級導致文件結構變化),插件會報錯退出,不會嘗試修改文件。
- 顯示控制:當插件未運行時,懸停卡片上的大小行會自動隱藏。
- 版本更新:重新安裝相同版本的插件是無操作,不會重複生效。
總結¶
dsh-session-topics 通過啓動掃描和輪次重試,解決了 DeepSeek Harness 會話標題失效的問題。配合自愈的懸停卡片補丁,它爲會話管理提供了更清晰的視圖。更多細節可參考 GitHub 倉庫 或 社區目錄。