smart-session-title:DeepSeek Harness 智能会话标题插件

在 DeepSeek Harness (DSH) 中,会话标题是快速定位上下文的重要索引。DSH 自带的 session-title-llm 提供商在处理超长提示词或弱提示词(如仅包含 “继续写”)时,往往存在直接拒绝生成或无法反映真实任务的问题。smart-session-title 插件旨在解决这些痛点,通过压缩提示词、等待有意义任务以及提供更灵活的控制,为 DSH 提供更智能的自动标题能力。

该插件由开发者 y2zyyr 维护,版本为 0.5.0-rc.18(发布候选,对应 npm 的 next 标签)。它替换了内置的 session-title-llm 提供商,直接使用对话中实际使用的 Provider 和 Model 来生成标题。

核心功能

  • 任务摘要与压缩:自动总结第一条有意义任务为短标题。对于超长或代码密集的提示词,插件会进行压缩处理而非拒绝。
  • 智能等待:当对话以问候语开始时,插件会等待直到出现有意义任务,避免过早生成标题。
  • 手动保护与防漂移:保护手动设置的标题,防止自动生成导致的标题漂移。
  • 显式重新生成:支持通过 /retitle 命令或界面头部按钮进行显式标题重新生成。显式请求会覆盖弱提示词过滤器,即使消息仅为短命令也能重新生成。
  • 高度可配置:
    • 标题形状与内容:设置字符上限(含日期)、日期前缀/后缀、标题风格(如 action-object 或 short-name)、语言(中文/英文)。
    • 排除词与锁定:支持设置 titleExclusions(排除客户名或内部代码)和 lockedSessionIds(锁定特定会话 ID,禁止自动重写)。
  • 批量优化:提供批量优化已存储会话标题的功能,支持进度跟踪、搜索和对比。
  • 隐私与诊断:提供原生设置界面,并在页面底部显示插件版本号。插件使用本地诊断,无遥测服务。

安装与启用

环境要求

  • DSH Core:0.1.5-rc.1 或 0.2.0-rc.1
  • Node.js:>= 22.15.0

安装步骤

在 DSH 的 profile 目录下执行:

npm install smart-session-title@next --legacy-peer-deps

配置 Bundle

安装完成后,需在 dsh.profile.bundles 中添加该 Bundle。Bundle 的顺序必须位于 @deepseek-ai/dsh-base 和 @deepseek-ai/dsh-web-app 之后,否则可能无法正常工作。

{
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "smart-session-title"
      ]
    }
  }
}

重启 DSH 后,日志应显示 smart-session-title provider registered ... automatic=all-prompts。

设置说明

插件提供详细的设置项,配置后点击页面底部的 “Save settings” 即可生效。

字段 默认值 说明
enabled true 总开关,控制是否启用智能标题。
mode Follow the session¹ 模式:current-session(当前会话)、configured(使用配置的 Provider/Model)或 disabled(禁用)。
provider Unset 使用的 Provider ID。
model Unset 使用的 Model ID。
timeoutMs 15000 单次尝试超时时间,UI 范围 1000–120000 ms。
maxAttempts 2 最大尝试次数,范围 1–3。
maxTitleCharacters Unset (80 bytes) 整个标题(含日期)的字数上限,Unicode 码点,范围 8–120。
titleDatePosition Unset 日期位置:prefix(前缀)或 suffix(后缀)。
titleDateFormat ymd 日期格式:ymd (2026-09-13) 或 md (09-13)。
titleStyle Unset 标题风格:action-object 或 short-name。
titleLanguage Unset 语言强制:zh 或 en。
titleExclusions Unset 排除词列表(最多 50 个,每个最多 64 字符),生成的标题中不能包含这些词。
lockedSessionIds Unset 锁定会话 ID 列表(最多 500 个),锁定后自动生成、重新生成和批量列表均会跳过。

¹ 对于旧版本部署,bundle 行中的显式 Provider/Model Pin 仍有效,直到用户选择模式。

典型用法

  • 强制重新生成:如果自动标题不理想,使用 /retitle 命令或界面顶部的按钮进行显式重新生成。
  • 批量优化历史记录:在设置界面切换到 “Batch optimize” 页签,选择要优化的会话,查看并应用新的标题。
  • 排除敏感词:在 titleExclusions 中添加客户名称或内部代码,防止它们出现在标题中。
  • 保护重要会话:在会话标题旁点击锁定按钮,防止批量优化或自动生成覆盖该标题。

注意事项

  • 数据持久化差异:Core 0.1 将设置持久化在 $DSH_HOME/settings.yaml 的 smart-session-title 命名空间下;Core 0.2 使用插件自身的 volatile Config。DSH 保留 Fallback 标题、持久化、投影、取消和陈旧结果保护,此插件仅替换标题生成逻辑。
  • 卸载与恢复:卸载插件时,需同时移除 Bundle 配置并重启,然后删除 npm 包。仅禁用插件行而保留 Patch 不会恢复内置的 session-title-llm 提供商。
  • 版本状态:当前安装的是 0.5.0-rc.18 发布候选版本,建议在测试环境验证后再升级。
羽毛球分组比赛记分
小程序二维码

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

小夜