🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

lsl1931/dsh-session-namer

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
⚠ 装前注意

DSH Web 插件:会话标题栏一键「总结命名」,用该会话当前的模型总结整段对话并改写标题

基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/18 · 已提供中文文档
综合分
29.5
GitHub 分
29.5
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add lsl1931/dsh-session-namer
未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 1 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · tool
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 8 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/22(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-session-namer(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

未发布到 npm registry,仅可从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/22 15:34:47

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
dsh-session-namer

DSH Web 插件:会话标题右侧加一个「总结命名」按钮 —— 用该会话当前的模型把整段对话
总结成一句话,写成会话标题(顶栏和侧栏会通过官方 title 投影自动更新)。

它做了什么

- 客户端(lib/client.js):往官方插槽 conversation.session.header.utilities 注册一个按钮;
点击时 POST /dsh-session-namer/name {sessionId} 拿 jobId,然后每 700ms 轮询
GET /dsh-session-namer/name?jobId=… 直到拿到标题;按钮上显示「总结中… / 已重命名:xxx / 失败:…」。
- 宿主(lib/index.js):POST 只做参数与会话校验后立刻返回 202 + jobId,总结在后台跑,
结果写进内存 job(保留 10 分钟,懒清理)。
- 为什么分两步:总结要 1~5 秒,一次 POST 等到结果的话,响应会在回程被中间层切断
(客户端报 Response incomplete: length)。分成"立刻返回 + 轮询"就没有这个窗口了。
- 总结内容:读该会话的人类消息(规则与 dsh-session-title 一致),在字节预算内选取要送进模型的
子集(从最近往前收,首条能塞下就带上),调用官方共享策略 generateSessionTitleWithLlm()
(prompt / framing / token 与超时上限都来自 @deepseek-ai/dsh-session-title-llm),
再用 ctx.sessionTitle.rename() 落标题。
- 输入预算按 UTF-8 字节算(官方 maxInputBytes 用 Buffer.byteLength 校验)。*不能用
String.length——那数的是 UTF-16 码元,一个汉字 3 字节却只算 1,中文密集的会话会被
放行到 3 倍上限,然后在官方策略里抛 input is N bytes, exceeding maxInputBytes。
单条消息自己就超预算时按字节截断(保留开头),不整段失败。
- 标题长度:模型目标 5 词 / 8 个汉字,另有一道硬上限 28 显示宽度(≈14 个汉字或 28 个
ASCII 字符),超出按宽度截断。按钮上的状态文案另有 max-width:15em + 省略号,
免得错误信息把顶栏撑变形。
- 模型路由:默认 session.requestHeader().config,即该会话当前用的 provider/model;
也可以在插件配置里写死 provider + model(两个必须同时给)。

配置(可选)

在 profile 的 cordis.patch.yml 里给这个条目加 config:

- id: dsh-session-namer
config:
targetWords: 8            # 非 CJK 目标词数
targetCjkCharacters: 16   # CJK 目标字数
maxInputBytes: 60000      # 送进模型的输入上限
maxOutputTokens: 160
timeoutMs: 30000
provider: dy
model: deepseek-v4-flash

安装 / 卸载

pwsh -NoProfile -File install-session-namer.ps1      # 构建 + 复制进 profile + 注册 bundle
pwsh -NoProfile -File install-session-namer.ps1 -Check
pwsh -NoProfile -File install-session-namer.ps1 -Remove

安装后需要重启 dsh web(或重开 DSH 应用)才会加载。

已知边界

- 纯图片提问的会话拿不到标题:人类消息的判定要求 source.kind === "user" 且文本块非空
(与官方 dsh-session-title 同规则),所以只贴了图、没打字的消息不算数,按钮返回
409 { code: "no-human-message", error: "无文字可总结" },客户端映射成短中文。
不打算为这种会话硬凑标题:送进模型的只有文本,图片不会作为图片块进请求,凑出来只会是
"用户上传了一张图片"这种零信息量结果。
- 只处理进程内活着的会话:ctx.sessions.get(id) 拿不到就返回 404(历史会话先打开一次即可)。
- 点了按钮会往会话日志追加官方同款事件(session/title-llm-request + session/title),
不会打开新的对话轮次,也不进模型上下文。
- 目录是真实复制进 profile 的 node_modules,不是软链:Node 按真实路径解析 import,
软链会让 @deepseek-ai/ 解析失败。以后在该 profile 跑 pnpm install 可能清掉它,重跑安装脚本即可。

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

💬 加入社群

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

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群