🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

自动会话标题 SarahDeady/dsh-auto-title

DeepSeek Harness
SarahDeady6 天前有提交已提供中文文档扫描:未发现敏感能力

每轮对话后自动提炼不超过十二字的会话标题

29.7/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/11/2 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add SarahDeady/dsh-auto-title
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
暂无时间戳·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]✓
活跃:最近一次提交在 6 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    client.js:118
    fetch(`${ROUTE}?sessionId=${encodeURIComponent(sessionId)}`, {
扫描于 2026/11/4(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DSH 插件:自动把会话标题提炼成最多 12 个字;用户手动改名后自动停手,侧栏会话菜单可一键重新提炼。Auto Session Title for DeepSeek Harness.

README

由 DeepSeek 最新模型翻译生成
dsh-auto-title · 自动会话标题 给会话起一个像样的名字,而不是「帮我搞一个自动更新会话标题的插件」。 一个 DeepSeek Harness 插件,让每个会话都带上一行简短、有意义的标题。 中文名:自动会话标题 English: Auto Session Title icon 它做什么 - 自动提炼:每轮对话之后,用会话上下文重新总结标题,始终是一行、不超过 12 个汉字宽(一个汉字计 1,其他字符计 0.5)。 - 你说了算:只要你在侧栏手动改过一次标题,它就永久停手,不再自动覆盖——这是 Harness 标题服务自带的「用户改名即锁定」语义,插件只是顺着它工作。 - 随时重来:会话「⋯」菜单里多了一行 刷新标题,点一下立刻重新提炼;正在提炼时该行显示「正在提炼标题…」并禁用,失败会红字提示并给出原因,再点一次即可重试。 - 没打开的会话也能刷:重启后侧栏里那些没点开的旧会话一样能刷新——插件直接读它的会话日志提炼标题,再把结果写回日志,不要求会话正在运行。 - 省钱:同一会话 4 秒内不重复调模型;子会话(子智能体)不调模型,直接用确定性的短标题。
展开完整文档(README 剩余 1 节)
dsh-auto-title · 自动会话标题

给会话起一个像样的名字,而不是「帮我搞一个自动更新会话标题的插件」。
一个 DeepSeek Harness 插件,让每个会话都带上一行简短、有意义的标题。

中文名:自动会话标题 English: Auto Session Title

icon

它做什么

- 自动提炼:每轮对话之后,用会话上下文重新总结标题,始终是一行、不超过 12 个汉字宽(一个汉字计 1,其他字符计 0.5)。
- 你说了算:只要你在侧栏手动改过一次标题,它就永久停手,不再自动覆盖——这是 Harness 标题服务自带的「用户改名即锁定」语义,插件只是顺着它工作。
- 随时重来:会话「⋯」菜单里多了一行 刷新标题,点一下立刻重新提炼;正在提炼时该行显示「正在提炼标题…」并禁用,失败会红字提示并给出原因,再点一次即可重试。
- 没打开的会话也能刷:重启后侧栏里那些没点开的旧会话一样能刷新——插件直接读它的会话日志提炼标题,再把结果写回日志,不要求会话正在运行。
- 省钱:同一会话 4 秒内不重复调模型;子会话(子智能体)不调模型,直接用确定性的短标题。

怎么装

前提:已经装好 DeepSeek Harness(桌面端),并且你把仓库拿到了本地:

git clone https://github.com/SarahDeady/dsh-auto-title.git

方式一:让 DSH 自己装(推荐)

在 Harness 里对 Agent 说一句:

用 plugin_manager install_bundle 安装 C:\path\to\dsh-auto-title 这个目录

安装成功会返回 "application": "applied"。重启 Harness 让新的 Host 模块生效。

方式二:手动挂载(高级)

在你的 profile 目录(Windows 一般是 C:\Users\<你>\.dsh\profiles\desktop)里:

1. 让它指向仓库目录——在 profile 的 package.json 依赖里加一条 "dsh-auto-title": "link:C:/path/to/dsh-auto-title",然后 pnpm install;
2. 在同一个 package.json 的 dsh.profile.bundles 数组末尾加上 "dsh-auto-title";
3. 重启 Harness。

两种方式装完后,都去会话「⋯」菜单确认出现了 刷新标题。

它替换了什么(重要)

Harness 的 sessionTitle 服务只接受一个标题 provider。本插件注册一个 automatic: 'all-prompts'(每轮都更新)的 provider,因此会在 cordis.patch.yml 里停用内置的 session-title-llm(first-prompt 生成器)。停用它不会影响其它功能,只是把「起标题」这件事交给本插件。

想换回去:删掉 profile 里本插件的 bundle 行,并在 profile 的 cordis.patch.yml 里把 session-title-llm 的 disabled 去掉。

菜单项怎么用

右键(或点「⋯」)任意会话 → 刷新标题:

| 状态 | 显示 |
| 空闲 | 刷新标题 |
| 提炼中 | 正在提炼标题…(禁用) |
| 成功 | 菜单关闭,侧栏标题与页头标题自动更新 |
| 失败 | 刷新失败,点击重试(悬停可看具体原因) |

工作原理

用户发消息 │ ├─ 内置 sessionTitle 服务收集消息 ──► 本插件 generate() │ │ │ ├─ ctx.llm.stream({ purpose: 'session-title' }) │ └─ 清洗成一行 ≤ 12 列 → { title, messageSeqs, model } │ └─ 服务 append session/title 事件 ──► 内置 title session projection ──► UI 自动更新

- 注册座位:ctx.sessionTitle.register({ id: 'auto-title', automatic: 'all-prompts', generate })。
- 只走注入的服务:Host 半不 import 任何 Harness 包,因此跨 Harness 版本升级不易碎。
- 手动改名即暂停:侧栏改名走的是服务自己的 rename(),它追加 source: user 的标题事件并锁定;此后服务不再为用户消息调度自动生成——插件什么都不用做。
- 刷新按钮:客户端 GET /auto-title/refresh?sessionId=… → Host 调 ctx.sessionTitle.refresh(session),绕过上面的锁定/节流强制重算;新的标题照样通过 projection 回到 UI。用 GET 是有意为之:Harness Web 的鉴权层会把未认证的 POST 直接回 405,GET 则照常进入路由表。路由会在 webServer 服务就绪后再挂(冷启动时它可能还没出现)。 会话不在内存里(没打开过)时,改走日志路径:sessionPersistence.open(id, 'read') 读日志 → 用最后的用户消息与最后一条 request/header 的路由提炼 → open(id, 'write') 追加 session/title 事件 → flush()。侧栏列表标题是宿主侧缓存快照,冷会话刷完若列表没变,Ctrl+R 刷新页面即可。

调参

Host 半顶部导出了 DEFAULTS:

| 键 | 默认 | 含义 |
| maxTitleUnits | 12 | 标题上限,单位「汉字宽」(汉字 1、其他 0.5) |
| maxOutputTokens | 512 | 单次模型调用的输出上限 |
| maxMessageChars | 600 | 每条用户消息送进模型前的截断长度 |
| maxInputChars | 4000 | 送入消息的总字符预算 |
| tailMessages | 8 | 除首条外,额外携带的最近消息条数 |
| minAutoIntervalMs | 4000 | 同一会话两次自动提炼的最小间隔 |

想改成 8 个字?把 maxTitleUnits 改成 8 即可(改完重启 Harness)。

要求与限制

- DeepSeek Harness 桌面端,Web profile 运行(菜单动作需要 Host 的 webServer 服务;没有它时插件仍会装好,只是菜单行点不动,日志里会有一条 warn)。
- 只对 live(当前 Harness 进程里打开着)的会话生效。
- 子会话(子智能体)不调模型,用确定性短标题。
- 模型没有可用路由(会话还没发过请求,或 provider 未配置)时,退回确定性标题,不会报错。
- 标题按 UTF-8 列宽 记账,不是字符数:12 个汉字或 24 个拉丁字母。

开发

npm test # 16 个用例:provider 注册、模型调用参数、长度与清洗、节流、子会话、刷新路由 400/404/200/冷会话写回、清理
npm run check # 语法检查

测试不需要 Harness:test/smoke.mjs 用一个假 ctx 直接跑 Host 半。

许可

MIT © 2026 SarahDeady

Auto Session Title 让每个 DeepSeek Harness 会话都带一个短标题,从上下文里提炼,最多 12 列宽(一个 CJK 字形算 1,其他算 0.5)。

- 每轮用户发言后,通过内置的 sessionTitle 服务重新生成标题(automatic: 'all-prompts')。
- 一旦你给会话改名,就永久停止:Harness 会固定用户写的标题,服务不再安排自动生成。
- 在会话的「⋯」菜单里加一行 Refresh title,通过 ctx.sessionTitle.refresh() 强制重新提炼,带忙碌 / 失败状态。
- 子会话(子代理)跳过模型调用,自动运行按会话节流到每 4 秒一次。

安装:克隆仓库,让 DSH 执行 plugin_manager install_bundle <repo path>,然后重启 Harness。插件的 cordis.patch.yml 会禁用内置的 session-title-llm 服务商,因为 sessionTitle 服务只容纳一个服务商。

Host 半的所有逻辑都走注入的服务(sessionTitle、llm、sessions,可选的 webServer);不导入任何 Harness 包,所以升级基本不会把它弄坏。

MIT © 2026 SarahDeady
预览分享卡片长什么样 ↓SarahDeady/dsh-auto-title
分享 · DeepSeek Harness Hub
SarahDeady/dsh-auto-title

每轮对话后自动提炼不超过十二字的会话标题

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部