dsh-auto-title

DSH PLUGIN模型与账号接入

仓库 sumingwang233/dsh-auto-title

模型与账号接入 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

dsh-auto-title 是 sumingwang233 维护的 模型与账号接入 类 DSH 可安装插件, 仓库为 sumingwang233/dsh-auto-title,许可证 MIT。 下面按「装什么、怎么装、验没验过、跑起来要注意什么」逐项列出。

一句话选型结论

按资料字段整理

dsh-auto-title 是模型与账号接入类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类模型与账号接入 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-29 创建于 2026-10-29
README 9.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:sumingwang233/dsh-auto-title
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注

上游标签

deepseek-harnessdsh-pluginsession-title

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在模型与账号接入场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-auto-title当前 L5 · 运行验证通过 低风险 0 未标注 有
archify L4 · 沙盒安装通过 低风险 8.0 万 未标注 有
DeepSeek-Reasonix L4 · 沙盒安装通过 低风险 3.6 万 未标注 有
nocobase L3 · 安装规范通过 低风险 2.5 万 0.1.1-rc.2 无
learn-harness-engineering L4 · 沙盒安装通过 低风险 2.0 万 未标注 有
dsh-our-free-model 未做沙盒验证 未标注 8,064 未标注 无

仓库档案

模型与账号接入
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方sumingwang233仓库 dsh-auto-title · 默认分支 main
分类模型与账号接入ai
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言未标注仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-29 · 2026-10-29最后推送 2026-10-29
本站收录2026-10-30首次进入本站目录的时间

README 全文

9.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-auto-title

给 DeepSeek Harness 的会话自动起名:不再是把你第一句话截断几个字塞进任务栏,而是等第一条助手回复结束后,用「项目|具体任务」的格式取一个真正能区分会话的标题。

(示意,非真实运行记录)
改前(内置行为,截断首条提问) →  改后(本插件生成)
帮我看看这个 pnpm 报错…        →  pnpm|lockfile 供应链校验报错排查
再写一版                        →  写作|把笔记改成一页纸说明
那个 bug 修了吗                 →  debug|会话标题事件没触发

为什么需要它

内置的 session-title-llm 行在首条人类消息上就定型标题,内容基本等于把提问截断,于是 20 个会话里有 15 个长得一样,列表没法扫读。本插件换成在首轮对话结束后命名:它能同时看到「你要什么」和「最后做成了什么」,从而给出可分类的名字。

手动重命名(会话行的「…」菜单)

自动命名只管首轮。想给任意一条已有会话重新起名时,点会话行右侧的「…」菜单,里面会多出一行 AI 重命名(排在原生「重命名」之后):

  1. 点它 → 读取该会话的首条人类提问与最近一次带文本的助手回复,走一次辅助模型调用,弹出对话框并预填建议标题;
  2. 标题可编辑,回车或点「应用」提交,Esc / 「取消」放弃;
  3. 提交走的是原生用户重命名(sessionTitle.rename,source.kind === 'user'),所以这个标题会被钉住,之后任何自动命名都不会覆盖它。

实现上分两半:客户端 bundle 注册菜单行与 shell.overlay 对话框,宿主注册两个同源 HTTP 路由(POST /dsh-auto-title/title 生成建议、POST /dsh-auto-title/apply 提交),因为菜单行拿不到宿主服务。会话未打开时会被自动 resume 后再改名。

失败会以本地化文案显示在对话框里:没有人类提问(422 empty-session)、会话从未跑过模型且没配 provider/model(409 no-route)、模型没给出可用标题(502 model-empty)。

标题怎么来的

  1. 会话提交人类消息后(默认只在第一条),标题服务调用本插件;节奏由 automatic 决定。
  2. 插件先等这轮对话的助手回复(带文本的 assistant/message,或 turn/end 的完成/超长原因;失败或超时则以空字符串继续),最多等 waitForReplyMs。
  3. 把「人类请求 + 助手回复」一起交给一次辅助模型调用(不占用会话正文的上下文预算,也不会打断当前生成)。
  4. 结果做规范化:去掉引号/空白、折叠换行、去句末标点、按 maxTitleLength 截断。
  5. 以 { title, messageSeqs: [触发消息 seq], model } 交回标题服务;服务负责持久化并把新标题推给界面。

任一步失败(模型报错、超时、输出为空)都会抛出带 code 的错误,标题服务保持上一个标题不变——不会把会话改成空名字。

安装

dsh plugin add https://github.com/sumingwang233/dsh-auto-title

或在桌面端 设置 → 插件市场 → 添加插件,把同一个地址填进去。装完重启 DSH 桌面端(或重连该 profile)使新 bundle 生效。

本地开发时也可以直接从工作副本装:dsh plugin add <本目录绝对路径>。

> 本插件与内置的 session-title-llm 争用同一个槽位,所以它的 cordis.patch.yml 会先禁用内置行再插入自己——安装时你不需要改任何基础 bundle。

它会关掉内置的标题 provider

ctx.sessionTitle 只接受一个 provider(第二个注册会抛错)。内置的 session-title-llm 行在基础 bundle 里,所以本包的 cordis.patch.yml 先把它禁用,再插入自己:

- id: session-title-llm
disabled: true

- insert:
- id: auto-title
name: 'dsh-auto-title'

因此:

  • 停用本插件 = 内置标题行为自动恢复,不需要改基础 bundle;
  • 若你的 profile 里还有别的会话标题插件,两者会争抢同一个槽位,本插件会安静地不注册(日志 warn),不导致启动失败。

在桌面端使用

重启桌面端后,插件在两个地方出现:

1. 设置侧栏 →「dsh-auto-title」(设置页)

它是设置导航里的一级条目(和「内置插件」「邮件」并列),不在「插件」页里——桌面端这一版没有「插件」页。页面里可以改 enabled、provider、model、language、maxTitleLength、waitForReplyMs、timeoutMs,改完点保存立即生效(下一次命名就用新配置)。页面下方是最近事件日志:每次自动命名、每次手动 AI 重命名、每个失败原因都会记一行,可刷新、清空、一键复制——排查问题或提 issue 时直接贴这段。

日志同时镜像到 <插件目录>/log.jsonl(与 settings.json 同目录),即使设置页打不开也能用 cat 看到;也可以直接请求 GET /dsh-auto-title/log?limit=100。

2. 会话列表每一行的「…」菜单 →「AI 重命名」

点开后会先跑一次辅助模型,把「首条提问 + 最近几条对话」压成候选标题,在弹窗里给你改,确认后才写入。失败时弹窗直接显示原因(没有可用路由、没有人类提问、模型返回空、超时、HTTP 错误码)。

日志里常见的失败原因:

日志 含义
this session has not called a model yet 会话还没有模型路由,去卡片里填 provider / model
HTTP 500 + WebRoute 客户端与主机版本不匹配(本仓库已修;旧 bundle 会这样)
模型在输出上限(N tokens)内没有写出标题 推理占满了预算:加大 maxOutputTokens,或换一个非推理模型
no provider / provider disabled 卡片里关掉了自动命名,或 provider/model 只填了一个

配置

运行时配置(推荐,设置卡片写的就是它):<插件目录>/settings.json(本机即 ~/.dsh/profiles/desktop/node_modules/dsh-auto-title/settings.json;可用环境变量 DSH_AUTO_TITLE_SETTINGS 改到别处)。优先级最高,保存后下一次命名立即生效,无需重启。卡片上的「恢复默认」会把它清空,回到下面的加载期配置。

加载期配置(可选,用于在 profile 里固化默认值):在 profile 目录的 cordis.patch.yml 里(apply 在最后、能覆盖 bundle 层)追加覆盖行:

- id: auto-title
config:
language: zh
maxTitleLength: 20
waitForReplyMs: 90000
字段 默认 说明
enabled true false = 只加载不注册(等价于停用,但保留包)
automatic 'first-prompt' 命名节奏:first-prompt = 只在首轮;all-prompts = 每条新消息都重命名(每条多一次小请求)
provider / model '' 留空 = 用会话自己的路由;填了就必须两个一起填
language 'auto' auto / zh / en,决定提示词要求的标题语言
maxTitleLength 24 标题最大字符数(含中英文,按字符计)
maxInputChars 6000 请求 + 回复拼进提示词时的总字符上限,超出按比例截断
maxOutputTokens 512 辅助调用输出上限。推理模型会先把预算花在推理上,给小了会「有推理、没标题」,所以留了余量(上限 8192)
waitForReplyMs 120000 等首条助手回复的预算;到点就用「只有请求」命名
timeoutMs 30000 辅助模型调用自身的超时
stopWords [] 标题里要去掉的词(大小写不敏感)

配错类型会在加载时抛 TypeError(例如 maxTitleLength: "24"),行会以错误状态出现而不是静默忽略。取值范围:maxTitleLength 1–80,maxInputChars 1–20000,maxOutputTokens 1–8192,两个毫秒字段 1–600000。

验证

git clone https://github.com/sumingwang233/dsh-auto-title && cd dsh-auto-title
npm test          # 49 个用例:core 规则 + host 装配/事件等待/流解析/命名节奏 + 手动改名路由 + 设置存储与配置/日志路由 + 客户端 bundle

真机验证(需要重启后):

  1. 设置侧栏出现「dsh-auto-title」,页面能打开,provider/model 能保存;
  2. 会话列表某行「…」→「AI 重命名」,弹窗出现候选标题,应用后列表标题变化;
  3. 若弹窗报错,同一张卡片下方日志里能看到这次请求的失败原因与细节。

已知边界

  • 默认只在首轮命名一次:automatic: 'first-prompt' 下后续大改需求不会自动改名(可手动重命名)。想让它跟着对话演进改名,设 automatic: 'all-prompts'——代价是每条新消息多一次小请求。
  • 多一次模型调用:每条命中的消息多一次小请求(约几百 token 输入、≤512 token 输出)。不想付这个成本就把 enabled: false 或用便宜模型(provider/model)。
  • 回复超过 waitForReplyMs 才出现时,会退化成「只看请求」命名——仍然是完整主题词,不是原始截断。
  • 标题服务对同一个会话可能有并发/重试调用,本插件是纯函数式的(不做去重、不写存储),重复调用只会产生更新的标题。

卸载

桌面端 设置 → 插件市场 → 找到 dsh-auto-title → 卸载,或用 plugin_manager 工具 action: "remove_bundle"、target: "dsh-auto-title"。

从 dsh.profile.bundles 移除后,被禁用的 session-title-llm 重新生效,行为回到原生。

许可

MIT

常见问题

6 问
答案由本站依据条目字段整理,不引用上游原文
dsh-auto-title 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:sumingwang233/dsh-auto-title` 即可。

dsh-auto-title 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-auto-title 安全吗?

低风险。

dsh-auto-title 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-auto-title 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
模型与账号接入
按星标排序,可作替代方案

archify

archify

从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

L4 · 沙盒安装通过 8.0 万 星

nocobase

nocobase

L3 · 安装规范通过 2.5 万 星

dsh-our-free-model

dsh-our-free-model

为 DeepSeek Harness 挂载免登录、免 API Key 的免费前沿模型通道,装完即用,并附用量看板与 OpenAI 兼容本地转

未标注验证等级 8,064 星

dsh-purge

dsh-purge

dsh-purge 是一款 DeepSeek Harness 设置插件,可修改默认副本、权限策略和工具限制,并添加规则卡片以分组应用补丁,支

L5 · 运行验证通过 4,573 星

sumingwang233 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。