DeepSeek Harness Hub
← 返回列表

9Ashwin/dsh-session-rename

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

一个 DSHDeepSeek Harness 插件,给模型一个 renamesession 工具——让 agent…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/13 · 已提供中文文档

DSH 插件:一个面向模型的 rename_session 工具,让智能体可以在对话中重命名会话。

综合分
29.6
GitHub 分
29.6
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 9Ashwin/dsh-session-rename
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-session-rename

一个 DSH(DeepSeek Harness) 插件,给模型一个 rename_session 工具——让 agent 能在对话中直接重命名当前会话。

一个 DSH 插件:给模型一个 rename_session 工具,让 agent 在对话中直接重命名当前会话。

为什么

DSH 的会话标题有三个来源——首条用户消息的确定性回退、可选的 LLM 生成 provider、显式重命名——但只有 Host 侧 API(ctx.sessionTitle.rename(session, title))和线级的 session.rename。内置的 Web 客户端里没有改名入口,也没有任何模型可见的工具。这个插件补上模型这一侧。

它不做自动总结。要不要改名、改成什么,由模型按你的规则决定——典型用法是在 AGENTS.md 里约定:开始一个新需求时,把需求 id 写进会话标题。

工具

rename_session

| 参数 | 必填 | 说明 |
|---|---|---|
| title | 是 | 新标题。归一化后必须含可见字符。 |
| session_id | 否 | 目标会话 id。省略即重命名当前会话——日常用法。 |

返回 { session_id, title, seq }(格式化 JSON 文本)。

标题语义由 @deepseek-ai/dsh-session-title 决定:写入一条 source.kind === 'user' 的 session/title 事件,钉住标题——进行中的自动生成被取代,后续用户消息也不再触发自动修订。标题只进会话日志,绝不进入模型输入。

安装

dsh plugin --profile web add -w github:9Ashwin/dsh-session-rename

-w 是给 pnpm 的:新版 profile 目录里有 pnpm-workspace.yaml,不加它会以
ERR_PNPM_ADDING_TO_ROOT 失败。若你的 profile 没有这个文件,去掉 -w 即可。

然后重启 dsh web。dsh plugin add 会读取本包的 dsh.bundle 清单并自动把
dsh-session-rename 追加进 dsh.profile.bundles。

本地开发用 link:(绝对路径):

dsh plugin --profile web add -w link:/absolute/path/to/dsh-session-rename

卸载:

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

配方:按工作项命名会话

把这条加进你的 AGENTS.md,模型就会在有需求 id 时自己改名:

- 开始一个新需求(出现 PRD-NNN、Issue #NNN 等需求 id)时,调用 rename_session,
把会话标题改成  ,例如 PRD-042 重构 router 层。

title 由模型组织,插件不做任何拼装——所以规则想怎么写就怎么写(带不带 id、用哪种编号、要不要加阶段前缀都行)。

设计说明

零运行时依赖。 本插件不 import 任何 @deepseek-ai/* 包:工具对象按
ctx.tools.register() 的契约手写(defineTool 只是 spec→JSON Schema 的转换器,
SessionId 只是恒等 brand)。这样做的原因很实际:

- CLI 自带的 dsh-tools 与 profile 侧解析到的版本经常不一致;
- 以 link: / github: 安装的插件若 import 官方包,Node 会从插件的 realpath
逐级向上找 node_modules,而 profile 的 node_modules/@deepseek-ai/ 未必有对应版本。

结果是同一个 peer 被解析成两个版本、链接期抛
does not provide an export named ...。不 import 就同时避开这两个问题。

代价是自己做参数校验(defineTool 原本会包一层 JSON Schema 校验),test.mjs 覆盖了这些分支。

限制

- 只能改已加载的会话。 传 session_id 时走 ctx.agents.get(),冷会话会报
not loaded — open or switch to it first。省略 session_id 走当前会话,无此限制。
- 没有专属卡片。 纯 host 插件,工具调用在对话流里显示为通用卡片;要专属视图需要
额外注册客户端的 tool.call.toolview。
- 不自动触发。 改成什么、什么时候改,由模型(即你的规则)决定。

开发

node test.mjs

行为断言零依赖,永远运行;另外两项断言会用宿主真实的 schema 校验器验证工具定义,
解析不到 @deepseek-ai/dsh-tools 时自动跳过(可用 DSH_TOOLS=/abs/path 指定)。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(9Ashwin)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群