前言¶
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 提供了一套从安装到配置再到回填的完整方案,解决了默认标题不相关与手动维护繁琐的问题。对于追求会话管理效率的开发者,它是一个值得纳入工具箱的插件。