dsh-session-namer:用首條消息給 DSH 會話標題加上 Emoji 分類前綴

前言

在 DSH 裏開了很多會話之後,側邊欄往往只剩下一串按首句截斷的裸標題。關掉標籤頁再回來,很難一眼區分「這次是在查代碼」還是「這次在修報錯」。有人靠手動改名,有人在筆記裏記 session id,都是額外負擔。

dsh-session-namer 是社區維護的 DSH 插件:在會話收到第一條用戶消息時,根據內容判斷任務類型,把標題改寫成固定格式 {emoji}{分類} | {標題}。分類和 emoji 一一對應,前綴長度與分隔符固定,便於在列表裏掃視歸類。

這是什麼

  • 名稱:dsh-session-namer(npm 包名同倉庫名)
  • 維護者:CresBigB
  • 許可證:MIT
  • 目錄分類(SkillHub):趣味換裝
  • 當前版本(package.json):1.0.0

插件讀取首條用戶消息,在九類任務(探索、研究、修復、研發等)中選一類,生成帶 emoji 前綴的會話標題;無該插件時,標題通常只是首句摘要,沒有統一分類語義。

標題格式與分類表

生成格式爲:

{emoji}{分類} | {標題}

README 給出的對應關係如下(emoji 爲單碼點,前綴固定 13 字節,分隔符固定爲 |):

emoji 分類 id 判定信號(摘要)
🔍 探索 explore 查看代碼/結構/位置,瞭解現狀,不改代碼
🔬 研究 research 選型、對比、調研、評估可行性
🔧 修復 fix 報錯、異常、測試失敗、崩潰、性能迴歸
🚧 研發 build 新功能、實現、重構、加接口
🎨 設計 design 界面、佈局、配色、交互
📝 文檔 docs README、註釋、說明、文章
🧰 配置 config 依賴、環境變量、部署、CI、權限
💬 問答 qa 概念解釋、原理,無執行意圖
📦 整理 tidy 批量改名、歸檔、清理、遷移

示例(來自倉庫 README):

首條消息 生成的標題
幫我修一下登錄接口報 500 🔧修復 \| 修登錄接口報500
對比一下 pgvector 和 qdrant 🔬研究 \| pgvector與qdrant對比
這個倉庫的鑑權在哪實現的 🔍探索 \| 倉庫鑑權實現位置
給設置頁加個深色模式開關 🚧研發 \| 設置頁深色模式開關

核心功能與工作方式

下面行爲均以倉庫 README 爲準。

  1. 接管內置命名:sessionTitle 服務只接受一個 provider;插件通過 bundle patch 禁用內置的 session-title-llm,自行完成命名。
  2. 觸發時機:first-prompt——僅主會話的第一條用戶消息會觸發;帶 parentSession 的 fork 與子代理會話不觸發,避免污染子代理日誌。
  3. 混合分類:generate() 先用本地關鍵詞規則打分,再調用會話當前模型,要求返回 {"category":"<id>","title":"<標題>"}。
  4. 降級策略:模型失敗、超時、無路由、輸出不可解析或分類非法時,退回「規則分類 + 首句截斷」;除 abort 外不拋錯,標題始終有值。
  5. 長度預算:標題總長 256 字節(含 13 字節前綴),超長按 UTF-8 碼點截斷,不加省略號。

安裝與啓用

通過 DSH 插件管理器從 GitHub 安裝:

dsh plugin add github:CresBigB/dsh-session-namer

或在 DSH 內將本地克隆目錄作爲 bundle 安裝:

plugin_manager: { action: "install_bundle", target: "<本倉庫路徑>" }

安裝後需要新建會話纔會看到效果:標題只在首條消息時生成一次,已有會話不會被追溯改名。

配置項

可在插件配置中調整下列鍵(默認值見 README):

鍵 默認 說明
mode hybrid hybrid:規則 + 模型;rules:僅本地規則,不消耗 token
targetCjkCharacters 14 標題中文目標字數
maxTitleBytes 256 標題總字節預算(含前綴)
maxInputBytes 8192 送給模型的輸入上限;首條消息會先裁到約 6000 字節
maxOutputTokens 512 模型輸出上限
timeoutMs 5000 單次命名超時(毫秒)
provider / model 未配置 留空則跟隨會話當前模型;兩者須同時配置

純規則模式 mode: rules 下不產生模型調用;沒有路由信息(例如尚未選擇模型)時也不會調用模型,直接使用規則標題。

典型用法

  1. 安裝插件(見上文命令)。
  2. 在 DSH 中新建一個會話。
  3. 發送第一條用戶消息,例如「幫我看一下這個服務的健康檢查實現在哪」。
  4. 觀察側邊欄標題是否變爲 🔍探索 | … 這類格式。

若希望完全離線、零 token,可將 mode 設爲 rules,僅依賴本地關鍵詞分類與截斷標題。

適用場景與注意

適合:長期在 DSH 裏並行多個任務、希望用統一前綴區分探索/修復/研發等類型的開發者。

依賴:@deepseek-ai/dsh-session-title 與 @deepseek-ai/dsh-session-title-llm 由 DSH 本體提供(peerDependencies);另依賴 @deepseek-ai/cordis、@deepseek-ai/schemastery、@deepseek-ai/dsh-session 等生態包。

安全與權限:插件隨當前 DSH 進程加載,安裝前建議閱讀 倉庫源碼 與 MIT 許可證;不宜在未審閱的情況下在生產敏感環境盲目安裝第三方 bundle。

DSH 生態主張「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,並非官方應用商店。

結尾

dsh-session-namer 在首條消息處一次性改寫會話標題,用固定 emoji 與九類中文標籤標註任務性質,並在模型不可用時回退到規則命名。若你受困於側邊欄「全是第一句摘要」、難以復盤會話意圖,可以按官方命令安裝後開新會話試用。

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

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

小夜