DeepSeek Harness (DSH) 内置了一个标题生成器 (session-title-first-prompt-llm),但它是一次性操作,且 maxOutputTokens: 64 的限制使其在面对推理模型时经常失败。这导致许多会话长期停留在“提示词截取”的回退标题上,缺乏主题感。dsh-session-topics 插件通过重试机制和自动补丁,确保每个会话最终都有一个有意义的 LLM 生成标题,并提供会话列表的悬停大小数据。
插件介绍¶
dsh-session-topics 是 DeepSeek Harness 的会话主题标题插件,旨在解决会话标题长期失效的问题。它不注册独立的标题提供者,而是直接向 session/title 日志事件追加内容。该插件由 SipengXie2024 维护,开源协议为 MIT。
核心功能¶
-
启动扫描
DSH 启动 8 秒后,插件会对所有持久化的会话进行检查。如果会话仍使用回退标题,插件会使用当前默认模型生成并写入一个真实的主题标题。 -
轮次结束重试
插件监听代理状态变化。当代理状态从running变为idle时,如果该会话的标题依然是回退标题,插件会尝试重新生成标题。 -
数据接口
插件提供两个 HTTP 端点:
-GET /topics-size?id=<sessionId>:返回指定会话的持久化日志字节数,用于悬停卡片。
-GET /topics-sweep:手动触发全量扫描,并以 JSON 格式返回每个会话的重命名结果,用于调试。 -
悬停卡片大小补丁
会话列表的悬停卡片属于 DSH 的核心 UI 组件,没有预留插件槽位。该插件通过源码补丁的方式,在 v0.3.0 版本起实现了自愈机制。插件会在每次启动时自动应用此补丁,无需手动干预。
安装与启用¶
使用官方提供的安装命令将插件添加到 DSH 的 Web 配置文件中。注意:安装命令需要本地存在对应的 .tgz 压缩包文件。
dsh plugin --profile web add .\dsh-session-topics-0.3.0.tgz
安装完成后,需要重启 DSH Web 进程以使插件生效。
典型用法¶
手动触发标题扫描
如果你需要立即查看所有会话的重命名情况,可以直接调用接口:
GET /topics-sweep
检查会话大小
在会话列表的悬停卡片中查看日志大小时,需要先通过接口获取数据:
GET /topics-size?id=<sessionId>
手动执行悬停补丁
对于没有运行该插件的机器,可以运行脚本进行手动补丁:
node scripts/patch-hover-size.mjs
适用场景与注意¶
- 适用场景:需要维护会话标题规范,希望避免看到 “System prompt…” 或 “User: …” 等无意义回退标题的开发者;需要通过悬停卡片查看会话日志大小的场景。
- 注意事项:
- 用户重命名保护:用户手动重命名(固定)的标题永远不会被插件修改。
- 幂等性:插件具有幂等性。如果检测到锚点漂移(例如 DSH 版本升级导致文件结构变化),插件会报错退出,不会尝试修改文件。
- 显示控制:当插件未运行时,悬停卡片上的大小行会自动隐藏。
- 版本更新:重新安装相同版本的插件是无操作,不会重复生效。
总结¶
dsh-session-topics 通过启动扫描和轮次重试,解决了 DeepSeek Harness 会话标题失效的问题。配合自愈的悬停卡片补丁,它为会话管理提供了更清晰的视图。更多细节可参考 GitHub 仓库 或 社区目录。