前言¶
在 DSH Web 里,会话列表通常按工作区与时间堆在一起。对话一多,靠标题回忆「上次改配置、查接口、排错」分别在哪一条,成本会明显上升。原生列表没有「按项目/主题分组」这一层,也不会在每轮结束后帮你判断这条会话该归到哪一类、标题是否还够用。
下面介绍 CleverYyt 维护的客户端插件 dsh-session-categories(仓库 CleverYyt/dsh-session-categories)。它在侧边栏增加「分类」入口,把历史会话划入分类、在分类下直接开新会话,并在每轮对话正常结束后可选地调用模型给出分类与标题建议。Host 侧在 index.js(无额外依赖),Client 侧在 client.js(无构建步骤)。
这是什么¶
一句话:DSH Web 插件,把聊天会话分组到分类里,支持在分类下新建会话,并在每轮结束后向模型请求分类归属与更合适的标题。
- 维护者:CleverYyt
- 分类:客户端(Web)
- 许可:MIT(README 徽章)
- 版本与兼容:当前 Release 为 v0.2.0;
package.json要求 Node >= 20,DSH>=0.2.0-0 <0.3.0-0 - 社区目录:SkillHub 插件页(与 DeepSeek / 幻方无官方从属;DSH 生态里插件由社区索引与用户自行安装)
分类、归属与设置落在本地 $DSH_HOME/storages/dsh-session-categories/state.json,不写会话日志;删掉该文件等于重置分类。
核心功能¶
1. 划入分类与在分类下开新会话¶
- 划入分类:在分类面板里点会话行尾按钮,或原生侧边栏会话行尾的「移动到分类」,从分类 chip 里选一项即可。一个会话只属于一个分类;README 说明未做拖拽(原生列表组件难以可靠接管落点)。
- 在分类下新增会话:分类标题右侧的
+,用面板顶部当前选中的工作区创建空白会话,创建后自动打开并归入该分类。
2. 分类面板与侧边栏筛选¶
- 侧边栏图标列增加 分类 图标,点开为居中弹窗(Esc 或点遮罩关闭)。弹窗含搜索(按标题 / 会话 id / 工作区名 / 分类名)、分类跳转条、按时间排序的分类卡片(分类内会话默认展示 10 条,可展开全部)。
- 归档:归档后的分类不在主列表;独立「已归档」视图可恢复。归档分类不参与新建会话与自动分类。
- 侧边栏按分类筛选:工作区分区上方有常驻漏斗按钮,可筛「全部 / 各分类 / 未分类」;筛选仍用原生会话列表,仅隐藏不匹配行,并保留原生字号、时间、工作区分组等表现。
3. AI 自动分类与标题建议¶
- 自动分类:每轮对话结束(
turn/end且正常完成)时,若会话尚未分类且未被用户「忽略」过,Host 可后台判断一次;设置里可整体关闭「AI 自动分类」。无结论时不打扰;已有待处理建议的会话不重复判断。一次判断无结论时,至少隔 3 轮再问,连续空结果 5 次则停止,直至分类变更或手动再判。 - 标题:自动与手动两条线。自动按「标题检查频率」(设置里 0~20 轮)检查标题是否同时写清「对象」与「具体操作」;不合格时在输入框工具行出现
标题建议 …chip。手动路径:原生会话菜单 →「重新生成标题」。用户确认改名后来源为user,不再被自动覆盖。 - 提示展示:输入框工具行有
归入 ● 分类名 ✕等 chip;面板右上角另有「待处理建议 N」(默认收起),避免会话未打开时找不到建议。点「忽略」则该会话永久退出自动分类(手动移入/移出分类会重置该标记)。
4. 花费与调用记录¶
设置与页脚可查看花费统计(当日 / 本周 / 本月)。通过页脚金额或设置 → 花费统计 → 查看调用记录,可打开调用记录弹窗(最多保留 300 条,可清空;清空不影响总账)。
安装与启用¶
安装前请自行查看仓库源码与 MIT 许可证。插件在 DSH 进程权限下运行,会调用模型做分类/标题判断,产生 API 花费。
Release 包(推荐,版本固定):
dsh plugin --profile <profile> add https://github.com/CleverYyt/dsh-session-categories/releases/download/v0.2.0/dsh-session-categories-0.2.0.tgz
跟随 main 分支:
dsh plugin --profile <profile> add github:CleverYyt/dsh-session-categories
本地开发挂载:
dsh plugin --profile <profile> add link:$PWD
装完后重载插件或刷新页面,侧边栏应出现「分类」图标。
从 Discover 索引安装(需先在 Web 端启用「自定义插件市场」):
- 侧栏 插件 →「实验性插件」旁 更多 → 启用 自定义插件市场。
- 在 发现 里添加索引源:
https://raw.githubusercontent.com/CleverYyt/dsh-session-categories/main/market/index.json
- 在索引里安装「会话分类」(安装参数由索引中的 git commit 固定)。
README 提醒:npm 上的裸包名
dsh-session-categories并非本仓库(已被他人占用);本插件未发 npm 裸名,若将来发布会使用 scope(如@cleveryyt/dsh-session-categories)。
部分配置项在 cordis.patch.yml 的 config 下,改完需重载插件;界面设置写入同一 state.json。常用 UI 设置包括:AI 自动分类、会话行分类色条、筛选清单排序、花费统计档位、对话轮次(1~20 或全部)、标题检查频率(0 关闭)、最低置信度等(详见 README 设置表)。
典型用法¶
- 装插件并重载,确认侧边栏有「分类」图标。
- 新建分类:打开分类弹窗 → 右上角「新建分类」,按需选工作区。
- 整理旧会话:在面板或原生列表行尾把会话移入分类;或用漏斗在侧边栏只看某一类。
- 在新主题下开聊:进入目标分类 → 标题右侧
+,在新会话里对话;若开启自动分类,未分类会话会在轮次结束后收到 chip 或「待处理建议」。 - 处理 AI 建议:在输入框 chip 或「待处理建议」里采纳分类/标题,或点忽略;不想花钱时可调大「标题检查频率」、关闭自动分类,或提高「最低置信度」。
- 归档不再用的分类:弹窗右上角归档入口进入归档视图;恢复后回到主列表。
适用场景与注意¶
适合:长期用 DSH Web、会话数量多、希望按主题/项目浏览侧边栏,并愿意用模型辅助归类与改标题的开发者。
注意:
- 自动分类与标题检查会调用模型,有费用;可在设置中关闭或降频。
- 插件依赖 DSH 0.2.x 与若干
@deepseek-ai/dsh-client-*peer 包,升级 DSH 大版本前先看package.json的engines与peerDependencies。 - 数据仅在
state.json;升级 DSH 或换模型一般不会动该文件,但不应把未审计的插件装在生产敏感环境而不读 Host 代码。 - 实现细节、存储结构与边界见仓库 ARCHITECTURE.md。
结尾¶
dsh-session-categories 在不动 DSH 核心会话存储的前提下,补了一层分类视图、侧边栏筛选,以及可配置的 AI 归类与标题建议;归属与设置本地化,适合把 Web 侧边栏当「工作台索引」来用。