dsh-session-title:讓模型按你的規則改會話標題

前言

DeepSeek Harness(DSH)在 Host 側已經提供了會話重命名能力(ctx.sessionTitle 服務、session/rename Remote),但模型工具目錄裏原先沒有對應的改名工具,會話標題往往只能由人在側欄手動改。若你希望智能體在任務推進過程中主動把標題改成團隊約定的格式,並釘住以免被自動生成標題覆蓋,就需要額外補一層工具。下面介紹社區插件 dsh-session-title(維護者 ly6170),它向模型暴露 set_session_title,規則由你在 Web 設置或 profile 配置裏自行定義。

這是什麼

dsh-session-title 是 DeepSeek Harness 插件:給模型一個按你自己定義的規則設置會話標題的工具。命名規則不寫死在代碼裏,可在 設置 → 會話標題 中配置正則、字節上限等校驗項;校驗通過後調用宿主 rename 並釘住標題,之後該會話不再被自動標題覆蓋。插件不讀寫會話文件、不碰工作區、不做歸檔或刪除。

分類上在 SkillHub 目錄 中歸爲「模型推理」;源碼與說明見 GitHub:ly6170/dsh-session-title(當前 package 版本 0.1.0,許可證 MIT)。SkillHub 與 DeepSeek / 幻方無官方從屬關係,屬於社區插件生態。

核心功能

項 說明
工具名 set_session_title,參數 title(完整標題字符串)
生效方式 調用 ctx.sessionTitle.rename(agent.session, title);通過校驗即寫入並釘住
規則來源 設置頁或 profile config:,二者同一份配置,改完無需重啓
默認狀態 關閉(enabled 默認爲 false);未啓用時模型看不到該工具

不合規標題會以工具錯誤返回明確原因,模型可據此改寫後重試。規則變更後,工具說明會自動帶上當前生效的正則與字節上限,減少模型盲猜格式。

開箱默認正則示例爲 MMDD | 版本或 tag | 描述(對應 pattern ^(\d{4}) \| ([^\|]+) \| ([^\|]+)$),可按倉庫或團隊約定替換。

安裝與啓用

官方安裝命令如下(web profile):

dsh plugin --profile web add dsh-session-title

bundle 集合變化不會熱加載,裝完需重啓 dsh 進程。然後:

  1. 打開 Web 界面 設置 → 會話標題;
  2. 按需修改「標題正則」(不會寫可參考 README 中的 LLM 提示詞模板);
  3. 勾選「啓用」並保存。

若希望跳過第 3 步、裝上即用,可在 profile 的 cordis.patch.yml 裏預設 enabled: true(見下文配置示例)。

dsh 不在 PATH 或使用 DSH Desktop / 源碼檢出時,可手動編輯 ~/.dsh/profiles/web/package.json,在 bundles 中加入 dsh-session-title,在 dependencies 中聲明 "dsh-session-title": "^0.1.0",在 profile 目錄執行 pnpm install 或 npm install 後重啓。client 側產物 lib/client.js 已隨包提供,無需本地構建。

卸載:

dsh plugin --profile web remove dsh-session-title

或從 profile 的 dependencies 與 dsh.profile.bundles 中移除並重裝依賴;已釘住的標題不受影響。

配置規則

主要配置項(設置頁與 config: 一致,運行中切換 enabled 即時生效):

配置項 類型 默認 說明
enabled boolean false 啓用後模型纔可見工具
pattern string 見 README 默認三段式 JS 正則,不帶動界符
patternMode match / search / none match 全串匹配 / 包含 / 關閉正則校驗
patternHint string "" 正則不匹配時給模型的提示
maxTitleBytes number 80 整標題 UTF-8 字節上限(前置校驗)
forbidTrailingPunctuation boolean true 禁止句末標點
forbidControlCharacters boolean true 禁止控制字符
normalizeSeparatorSpacing boolean true \| 前後空白規範爲單空格
caseInsensitive boolean false 正則是否忽略大小寫

用配置文件預設示例(編輯 profile 的 cordis.patch.yml):

- insert:
    - id: session-title-tool
      name: dsh-session-title
      config:
        enabled: true
        pattern: '^\[(BUG|FEAT)\] .+$'
        maxTitleBytes: 60

若只保留字節與標點規則、不校驗格式:

      config:
        enabled: true
        patternMode: none
        maxTitleBytes: 120

注意 maxTitleBytes:宿主 session-title 服務有硬上限,rename() 會按該值截斷。本插件的 maxTitleBytes 是前置校驗,應小於或等於宿主配值;base 組合裏宿主默認爲 80,插件默認也爲 80。

典型用法

  1. 安裝並重啓 dsh,在 設置 → 會話標題 啓用並保存規則。
  2. 在對話中讓模型在合適時機調用 set_session_title,傳入完整標題,例如符合默認三段式的:0924 | v0.1.0 | 修復登錄跳轉。
  3. 若標題不符合規則,工具返回錯誤原因;模型調整標題後重試直至通過。

設置頁提供「示例提示詞:讓 LLM 幫你寫一條正則」摺疊塊,複製後填入你的命名需求,將 LLM 返回的一行正則(無 / 定界符、無 flags、無代碼塊)粘貼到「標題正則」即可。

適用場景與注意

適合:需要會話標題與 issue 編號、版本 tag、日期分段等規範對齊的團隊;希望模型在總結或里程碑節點自動改名並釘住,避免側欄手工維護。

運行與權限:插件以當前 dsh 進程權限運行,安裝前應閱讀 源碼倉庫 與 MIT 許可證,自行評估是否納入 profile。

依賴:Node.js >= 20;host 側依賴 @deepseek-ai/schemastery;Web 設置面板依賴平臺注入的 @deepseek-ai/dsh-client-ui-settings 等 client 模塊。

小結

dsh-session-title 補上模型側缺失的會話改名工具,規則可配置、默認關閉、啓用後即時生效。目錄頁:SkillHub — ly6170/dsh-session-title;源碼與完整說明:GitHub — ly6170/dsh-session-title。

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

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

小夜