会话智能标题:每轮对话结束后用一次独立的辅助 LLM 调用对「用户消息+助手回答」的完整转写做总结,标题跟随会话真实主题而不是复述第一句话;首条消息即时出题、内置标题失败在后续轮次自动重试、用户手动改名绝不被覆盖、自动跳过子代理与 fork 会话。
安装
# npm 包(预构建)
dsh plugin --profile web add @weibaohui/dsh-smart-title
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:weibaohui/dsh-smart-title
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
会话智能标题插件:用 LLM 自动改写会话标题,告别「第一行」式标题。
核心功能
- 全对话总结:每轮对话结束后,对「用户消息 + 助手回答」的完整转写做一轮总结,标题反映会话真正在做的事,而不是复述第一句话
- 首条消息即时出题:会话第一条消息到达即出 LLM 标题(接管官方
first-prompt节奏),不用等第一轮结束 - 刷新节流:距上次标题生成不足最小间隔(默认 2 分钟,可配)就不再重复生成,长会话不再每轮烧一次 LLM;顺带消掉首轮「即时出题 + 回合结束刷新」的背靠背重复
- 长会话冻结:会话用户消息超过阈值(默认 100,可配)后停止自动刷新——后期主题漂移概率低;启动回填不受冻结影响
- 同题静默跳过:新生成标题与现标题相同(忽略大小写与空白差异)时不写入,侧栏不闪烁、无失败告警
- 失败自动重试:官方内置标题提供方请求失败后回退标题会永远残留;本插件每轮结束自动重试刷新
- 手动改名保护:你在界面上手动改过的标题(用户钉住)绝不被自动覆盖
- 范围可控:自动跳过子代理会话与 fork 子会话;可开关「是否包含助手回答」
- 启动回填(可选):对标题仍是回退文案的活跃会话逐个补刷(默认关闭,可设开启与会话上限)
- 模型可指定:默认跟随会话当前模型,也可为标题单独指定一条便宜/快速的模型路由
安装
dsh plugin --profile web add @weibaohui/dsh-smart-title -w
装完重启 dsh web 即生效,无需任何配置。安装时会自动禁用内置的 first-prompt 标题提供方(session-title 服务只允许一个提供方,两者不能共存;卸载本插件后内置提供方自动恢复)。
使用
- 装好重启后,正常聊天即可——侧边栏会话标题会在第一轮对话后自动变成总结式标题
- 想调行为:设置 → 会话智能标题——总开关、标题长度、刷新节流间隔、长会话冻结阈值、标题模型路由(provider/model 下拉选择)、范围排除、启动回填等全部可视化,保存即生效
- 存量会话修复:打开「启动回填」后重启一次实例,插件会对标题仍是回退文案的活跃会话逐个重写(用户手动改过的不动)
- 也可直接编辑
~/.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(距上次生成的最小间隔,覆盖官方 first-prompt 首题在内的所有生成路径)与refreshMaxTurns(长会话冻结,回填路径豁免);生成结果同题时静默返回现值,不产生写入与告警
联系我 :飞书群
版本兼容性
本插件与 DeepSeek Harness(@deepseek-ai/dsh)的版本对应关系:
| 插件版本 | 适配 dsh 版本 | 备注 |
|---|---|---|
| 0.1.8 | 0.1.7-rc.2 | 当前版本;修复降级路径 Config 导出 null——宿主 settings schema() 不排除 null,会炸 settings.describe() 拖垮整份设置文档(同 dsh-continue#4) |
| 0.1.5 | 0.1.7-rc.2 | 修复宿主将 volatile 字段物化为 {} 导致的设置毒化(saneConfigValues 清洗 + 移除 Config 兼容字符串字段) |
| 0.1.4 | 0.1.7-rc.2 | 适配 0.1.7 settings 模型(导出 volatile Config,ctx.settings.update 持久化),面板改动重启不再丢失 |
| 0.1.3 | 0.1.7-rc.2 | 已在 @deepseek-ai/dsh@0.1.7-rc.2 下验证运行 |
发版约定:每次发布新版本时,请在上表追加一行,记录该插件版本实际验证所用的
@deepseek-ai/dsh版本。package.json的engines.dsh声明最低支持版本;本表记录实际验证版本,二者配合使用。
链接
同类插件
Minglink/dsh-infinite-gen-4★ 3602
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 3149
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 598
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 259
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
MichengAI/dsh-archive-manager★ 256
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
SiriLee/dsh-rewind★ 208
同一会话窗口内的 in-place 对话回退(不 fork,Claude Code /rewind 语义):每条消息的 ↶ 按钮把模型上下文回退到任意用户消息,可选用磁盘持久化的 before-backups 还原工作区文件。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。