dsh-smart-namer: One-click short name generation based on session and workspace content

前言

在 DeepSeek Harness(DSH)里开很多会话、挂多个工作区时,侧栏标题往往是默认名或随手起的词,事后很难从列表里认出「哪一条在改哪个问题」。手动改名可以,但要自己概括内容,重复劳动多。社区插件 dsh-smart-namer(维护者 Blueteemo)走另一条路:只读会话或工作区已有的标题、项目信息、少量用户发言等文本,让模型给出最多 3 个候选短名,选中其一即可改名;另提供 /rename 命令和 Agent 工具 rename_target。插件只使用 DSH 公开接口,不修改宿主安装目录,属于客户端类插件。

这是什么

dsh-smart-namer 在 DSH 侧栏增加「智能命名」入口:模型根据对象自身内容生成候选名,用户点选或走命令完成重命名。npm 包当前版本为 1.1.0(MIT),可通过 npm、GitHub、本地路径或 release 包安装。目录页:skillhub.cn/plugins/Blueteemo/dsh-smart-namer;源码:github.com/Blueteemo/dsh-smart-namer。

核心功能

侧栏:会话与工作区

  • 会话:在侧栏会话行「…」菜单中选「智能重命名」。弹窗先显示「正在想…」,随后最多 3 个名字;选中即改名并 toast「已改为 X」。Esc 或点遮罩关闭,不改名。
  • 工作区:在侧栏面板列表「更多」中选「智能重命名工作区」。弹窗顶部有工作区下拉(默认当前会话所在工作区,其余按最近活动排序);切换下拉会重新拉候选,后续与会话相同。

/rename 命令

在输入框输入 /rename,从命令菜单选择 rename:

  • 无参数:调用模型,取第一个候选改名,并回复「已改为「X」。备选:A、B」;失败时按原因说明(响应太慢 / 模型服务异常 / 没想出更好的),不改名。
  • 带偏好,例如 /rename 突出工具链:后面文字作为偏好提示传给模型,仍生成 3 个候选。

命令执行沿用 20 秒超时,不启动 Agent 轮次。

命名素材与模型

插件不读工具输出、文件内容和完整日志。发给模型的素材如下:

对象 素材
会话 现有标题、所属项目、项目代号、按阶段均匀采样的 5 条用户发言
工作区 解码后的文件夹名、代号、最近 5 个会话的标题、最近一条用户发言

会话命名默认跟随该会话最近一次实际运行的模型;工作区没有独立模型,用 profile 默认。两者均可在插件配置页修改。一次调用超时 20 秒,不向用户流式输出。

自定义提示词

设置 → 插件 → dsh-smart-namer → Configure 中有「会话命名提示词」「工作区命名提示词」。留空则用内置模板(占位符即模板本身);保存后立即生效,写入当前 profile 目录的 dsh-smart-namer.prompts.json。

占位符:

对象 占位符
会话 {project} {codes} {title} {user_samples} {last_assistant_text}
工作区 {folder} {codes} {workspace_path} {titles} {first_user_message}

Agent 工具 rename_target

直接改名,不调用模型:

{ "kind": "session", "id": "session-...", "title": "新名字" }

kind 为 session 或 workspace。会话走 sessionController.rename(必要时先恢复会话);工作区走 workspaceController.rename(校验非空和重名)。

安装与启用

推荐从 npm 安装(预构建,免构建授权):

dsh plugin --profile desktop add dsh-smart-namer

也可从 GitHub 最新源码:

dsh plugin --profile desktop add github:Blueteemo/dsh-smart-namer

本地开发:

dsh plugin --profile desktop add file:/absolute/path/to/dsh-smart-namer

或使用 release 预构建包:

dsh plugin --profile desktop add https://github.com/Blueteemo/dsh-smart-namer/releases/latest/download/dsh-smart-namer.tgz

安装后若侧栏没有入口,需完全退出 App(Cmd+Q)再打开。客户端 bundle 有 immutable 缓存和宿主内存 memoize,仅刷新页面(含硬刷新)不会重新加载客户端代码。

典型用法小结

  1. 日常整理侧栏:对单个会话用菜单「智能重命名」,对工作区用「智能重命名工作区」并在下拉里切换目标。
  2. 在对话里快速改名:输入 /rename 或 /rename + 偏好说明,由命令直接取第一个候选。
  3. 在 Agent 流程里确定性改名:调用 rename_target,传入 kind、id、title。

调试命名效果时,可只改 Configure 里的提示词,对同一会话反复试,无需改插件代码。

适用场景与注意

适合长期在 DSH 中维护多会话、多工作区、希望标题能反映内容摘要的开发者。命名质量取决于所选模型与提示词;超时或上游异常时会明确失败原因,不会 silent 改掉原名。

DSH 生态理念是「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。插件以当前 dsh 进程权限运行,安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。

结尾

dsh-smart-namer 把「读已有元数据 → 模型出 3 个短名 → 一点或一条命令改名」接到 DSH 侧栏与命令体系里,并留出提示词与 rename_target 供定制和自动化。需要安装说明与截图时可查阅仓库 README;插件索引见 SkillHub 目录页,源码与 issue 见 GitHub。

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

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

Xiaoye