dsh-session-rename:让 AI 自行重命名 DSH 会话

前言

在 DeepSeek Harness(DSH)里,会话标题会出现在 Web UI 侧栏和事件流里,用来区分不同对话。宿主本身可以改标题,GUI 也有改名对话框,但模型侧没有对应的工具调用入口:Inspect 类工具只能读 Cordis,不能当业务服务用;命令行也没有等价命令。长对话若一直沿用自动标题,列表里很难一眼看出「这条线在干什么」。dsh-session-rename 由社区维护者 qinu321 发布,在客户端侧补上一个零依赖 Host 插件,把改名能力暴露成模型可调用的 session_rename。

这是什么

dsh-session-rename 是 npm 包名与插件 bundle 名,当前资料中的版本为 1.0.0,许可证 MIT。它只做一件事:注册工具 session_rename,让当前 Agent 会话可以把标题改成一行短语(用用户语言描述会话在做什么)。分类属于客户端插件;社区目录页见 SkillHub 条目,源码与说明在 GitHub。

核心功能:session_rename 工具

插件向工具列表增加 session_rename,参数如下(与 README 一致):

参数 类型 说明
title string(必填) 新标题:一行短语,用用户的语言说明这个会话在做什么

实现上,工具内部调用宿主已挂载的 sessionTitle 服务:

ctx.sessionTitle.rename(exec.agent.session, title)

这与 Web UI 改名对话框走的是同一条路(dsh-api-session-controller 的 rename 内部同样只调它)。因此:

  • 标题经归一化(去控制字符、压空白、按 UTF-8 字节截断)后落成一条 session/title 事件,来源为 user;
  • 该标题会被钉住:DSH 对该会话的自动标题生成停止,后续用户消息不再触发自动重命名;
  • GUI 标题通过会话投影/事件流更新,不需要额外通知。

作用域仅限当前会话:工具名与参数都不接受会话 id。资料中说明,若以后要「改任意会话」,只需加可选 sessionId 并改用 ctx.sessions.get(id) 取活会话,那是扩展方向,不是当前包的行为。

插件声明 inject = ["tools", "sessionTitle"]。若某部署没有挂载 sessionTitle,插件保持未激活(不抛错),工具也不会出现。

安装与启用

包已发布到 npm,装进某个 profile 时使用资料中的命令(不要自行拼接 github:owner/repo 形式):

dsh plugin --profile web add dsh-session-rename

命令把参数转发给 profile 目录里的 pnpm;成功后会顺带把新出现的 bundle 登记进 dsh.profile.bundles(插件包声明了 dsh.bundle 就会自动启用)。重启 dsh web 后生效。

同样的效果也可以走插件面板,或通过:

plugin_manager { action: "install_bundle", target: "dsh-session-rename" }

从本地目录开发时,把上面的 target 换成该目录的绝对路径,会装成 link: 依赖。

插件是纯 Host 插件:零依赖、零构建——index.js 不 import 任何包,直接注册符合 ToolDefinition 契约的普通对象,因此不存在依赖解析失败的风险。

典型用法

模型在合适时机(例如任务主题已明确、用户要求改名、或需要让侧栏可读)调用工具即可,参数只有必填的 title。没有单独 CLI 子命令;改名即一次工具调用。

维护者在仓库提供离线自检,不依赖运行时:

node selftest.mjs

用于验证工具定义形状与全部错误路径。

卸载与回滚

plugin_manager { action: "remove_bundle", target: "dsh-session-rename" }

若当初是用命令行安装的:

dsh plugin --profile web remove dsh-session-rename

移除后 dsh.profile.bundles 里的条目会一起被清理,工具消失,已写入的会话标题不受影响(session/title 事件仍在日志里)。

适用场景与注意

适合在 DSH 里跑长任务、多轮协作的智能体场景:让模型在对话早期或里程碑处把侧栏标题改成可读短语,而不必等用户点开 GUI 改名。

安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限运行,与任何 Host 插件一样,只应安装你信任的来源。DSH 生态强调「一切皆插件」;SkillHub 等社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-session-rename 填的是「AI 不能自行改名」这一小缺口:与 GUI 同路径写 session/title、钉住自动标题、零依赖安装。需要时可从 目录页 跳转说明,或直接在 GitHub 阅读 README 与 index.js。

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

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

Xiaoye