把 DSH 会话标题从一句话精简为不含动词的短语,目标五个词以内。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Relethe/dsh-brief-session-title
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
English | 中文
DeepSeek Harness(DSH)会话标题精简插件:把「一句完整的话」压成「一个词」,便于回忆。
为什么做这个插件
DSH 的会话标题由官方 session-title-first-prompt-llm 插件生成。它经常输出一句完整的话——"解释一下 JavaScript 闭包到底是什么"这种原样照搬的句子会直接出现在侧边栏里,冗长、不便于扫读和回忆。
问题根源在官方提示词:它的长度约束只有一句 "Aim for about 5 words"——"目标大约是"是软约束,模型容易超;而且它只要求"简洁",没有告诉模型"简洁成什么样"。目标不够明确,是标题冗长的主要原因。
本插件不动官方任何逻辑,只做一件事:重写系统提示词,用明确规则 + 正反例句,把"简洁"变成可执行的标准。
效果样例
| 会话内容(原句) | 本插件输出 |
|---|---|
| 解释一下JavaScript闭包到底是什么 | JS闭包浅说 |
| 用英语表达中国近代半文言文文法 | 半文言文法表达 |
| 中式微恐2.5D沙盒生存游戏系统PRD | 游戏PRD |
| Fixing Memory Leak in Node | Node memory leak |
| Database Schema Design Review | Schema review |
核心思路:提示词优化
新提示词给了模型四条硬规则:
- 英语按 PLAIN ENGLISH 原则——平实、直接;
- 中文按文白相间(literary-vernacular hybrid)原则——文言白话结合,凝练(如"浅说""文法表达");
- 输出中避免动词——动词是"句子"的骨架,去掉动词,句子自然塌缩成词组;
- 尽力压到 5 个词以内,像一个专业诗人——宁短勿长。
再加上六组正反例句(Incorrect / Correct 对照),让模型直接"抄"出目标风格,而不是猜测"简洁"是什么意思。
特性
- 零侵入:与官方
first-prompt-llm逻辑完全一致(取第一条人类消息、流式生成、失败回落 fallback),只换提示词; - 自动接管:与官方插件互斥,装载时自动关闭官方 provider,保证同一时间只有一个标题生成器;
- 失败安全:模型报错、超时、输出为空时,自动回落到官方确定性 fallback 标题,会话不会没标题;
- 纯配置可调:输入字节上限、输出 token 上限、超时时间均可配。
安装
本插件是一个 dsh bundle,直接通过 GitHub 安装即可,无需手动改任何配置:
dsh plugin --profile web add github:Relethe/dsh-brief-session-title
发布到 npm 后,也可以用包名安装:
dsh plugin --profile web add dsh-brief-session-title
本地目录安装(相对路径以你执行命令的目录为基准,绝对路径直接传):
dsh plugin --profile web add ./dsh-brief-session-title
安装时 dsh plugin 会把参数转发给 pnpm,装完后自动对账:检测到本包声明了 dsh.bundle,就会把它加入 profile 的 bundle 层;bundle 自带的 cordis.patch.yml 随之自动应用(禁用官方标题插件 + 挂载本插件)。
重启 DSH 后,新会话的标题即生效。
配置项
| 键 | 默认 | 说明 |
|---|---|---|
maxInputBytes |
4096 | 输入 JSON 帧的字节上限,超限直接失败(不截断历史) |
maxOutputTokens |
64 | 标题请求的输出 token 上限 |
timeoutMs |
60000 | 单次标题请求超时(毫秒) |
provider / model |
省略 | 同时给出则用独立路由生成标题;省略则复用当前会话主请求的路由 |
注意事项
- 只影响之后的标题:已存在会话的标题已落盘,不会自动重算;
- 手动改名会钉住:用户在 UI 里手动改过标题后,自动生成不再覆盖(DSH 官方行为);
- 还原方式:
dsh plugin --profile web remove dsh-brief-session-title,官方标题插件自动恢复。
许可
MIT
链接
同类插件
Minglink/dsh-infinite-gen-4★ 2281
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
ranxianglei/billion-context★ 499
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
liangmianya/dsh-synapse★ 467
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
Nwflower/dsh-chat-import★ 209
把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
Totoro-qaq/dsh-plugin-bridge★ 165
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
Anionex/dsh-turn-rewind★ 127
对话回退:基于持久 Change Ledger 回滚会话与工作区状态。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。