前言¶
在 DeepSeek Harness(dsh)里用上一段时间后,历史会话会越积越多。某次会话里调好的 MCP config、定下来的方案,隔几天想引用,却记不起它在哪个工作区、哪一天聊的。逐个翻会话不现实,凭记忆让模型复述也不可靠。
dsh 本身提供了会话全文索引(session-query-sqlite)和跨会话引用的注入机制,但这两项能力此前没有直接的用户入口。dsh-session-workbench 补的就是这一层:搜索、定位、召回三步串成一个界面,另加会话视图标签栏的管理。下面按功能、安装、用法逐节介绍。
这是什么¶
dsh-session-workbench 是 dsh web profile 的一个插件,作者 PolinniZhong,MIT 许可证。一句话定位:搜索所有历史会话,把需要的会话以 @references 召回给模型,同时管理会话视图标签栏的显示/隐藏与排序——一个插件,三个入口。
它遵循 dsh「一切皆插件」的思路,以静态 bundle 形式装进 web profile,由客户端运行时加载。
名称说明:目录页与抓取来源用的是 dsh-session-kb,而 README 标题与 package.json 的 name、repository 均为 dsh-session-workbench,本文以 package.json 为准。
核心功能¶
README 用 v1.1 / v1.2 标注部分功能的引入版本,package.json 当前版本号为 1.0.1,两者的对应关系资料中未确认,下文沿用 README 的标注。
跨会话搜索¶
- 覆盖所有历史会话(所有工作区)的全文搜索,支持工作区、时间范围、归档三类筛选与游标分页;
- 搜索默认包含已归档会话,结果带 Archived 徽标,可按「全部 / 仅活跃 / 仅归档」筛选;
- 无关键词时显示最近会话列表,默认排除已归档;
- 匹配是字面短语(FTS 限制),输入
MCP config就按这个短语找; - 被压缩(compacted)的会话内容仍可被搜索:官方 FTS 索引包含被 shadow 的内容。
片段命中与定位¶
搜索结果按会话返回片段命中卡片(v1.1):每张卡给出该会话的最佳命中片段,高亮命中句并附上下文,懒加载。展开片段卡可查看同会话的其余命中(v1.2):先列 5 条,可加载更多,均高亮。
点卡片上的 Locate 会打开对应会话,滚动到确切的命中消息并闪烁高亮;v1.2 起使用复合锚点。匹配失败时以非阻塞 toast 提示手动滚动,不打断当前操作。
召回(Recall)¶
在结果里勾选会话(每条消息最多 3 个),点 Insert references into input,输入框出现 @session 引用 chips;继续输入问题并发送后,平台注入只读快照(## Referenced sessions),模型结合历史上下文作答。
每会话快照默认上限 64 KB,过大的会话可能只保留部分内容,预览里会给出提示。
会话视图管理¶
1.0.0 新增:管理会话标签栏上的自定义视图,支持显示/隐藏与拖拽排序。两个入口:设置页的「会话工作台 → 会话视图」,以及会话标签栏的右键 / 双击面板。
本地运行与设置¶
插件完全本地运行,零网络请求;只读取会话元数据与命中片段,不修改、不删除任何会话,细节见项目的 PRIVACY.md。界面的颜色、间距、圆角、字体与交互均按 DSH 自身设计系统度量。设置项包括启用/禁用开关、默认搜索范围和隐私声明。
安装与启用¶
插件要求 dsh 的 web profile。安装命令:
dsh plugin --profile web add dsh-session-workbench
插件是静态 bundle,客户端在运行时提供:客户端内容变更刷新页面即可生效,host/profile 变更则需要重启。
要使用会话库搜索,还需手动启用持久化 FTS 索引。web profile 默认禁用 FTS(openAt: never),需要在 <DSH_HOME>/profiles/web/cordis.patch.yml 里覆盖 session-query-sqlite 的配置:
- id: session-query-sqlite
config:
path: '/Users/<you>/.dsh/session-query.sqlite'
openAt: startup
两点要求:path 必须是绝对路径,平台用 path.resolve 解析,不展开 ~ 或环境变量;索引用 openAt: startup 在启动时构建并复用,不要用 :memory:——它会在每次搜索时重建并阻塞 host。
配置改完后,重启 DSH 应用。
典型用法¶
下面是完整走一遍「搜索 → 定位 → 召回」的步骤:
1、在右侧栏打开 Session KB 标签页(可在「设置 → Session KB」启用/禁用);
2、无关键词时显示最近会话;点右上角搜索图标展开输入框,输入关键词(字面短语匹配,例如 MCP config)切换到搜索结果;
3、点 ⋯ 按钮,按工作区、时间范围、归档状态筛选;
4、点结果展开预览(命中上下文 + 会话元信息);点 Locate 打开会话并滚动到命中消息;确认后勾选(最多 3 个);
5、点 Insert references into input,输入框出现 @session chips;
6、继续输入问题并发送,平台注入只读快照,模型结合历史上下文作答。
管理会话视图是另一条独立路径:打开「设置 → 会话工作台 → 会话视图」,或右键 / 双击会话标签栏,在面板里切换各视图的显示并拖拽 ⋮⋮ 排序。
适用场景与注意事项¶
适合的用户:在多个工作区长期使用 dsh、经常需要回翻旧会话取上下文的人;已归档的会话默认就在搜索范围内,翻旧账不用先取消归档。
使用前注意:
- 插件以当前 dsh 进程的权限运行,安装前建议先审阅源码与许可证(MIT);
- 搜索是字面短语匹配,不支持同义词或语义检索;README 的 Platform limitations 一节列有完整限制,本次抓取时该节不完整,以原文为准;
- 每条消息最多引用 3 个会话,每会话快照默认 64 KB;
- 隐私方面:完全本地运行、零网络请求,只读不写(详见 PRIVACY.md)。
结语¶
dsh-session-workbench 把 dsh 已有的会话索引和引用能力串成了可操作的界面:搜得到、跳得准、召回得了,另附会话视图标签栏的整理能力,全程本地运行。
相关链接:
- 目录页:https://www.skillhub.cn/plugins/PolinniZhong/dsh-session-kb
- GitHub:https://github.com/PolinniZhong/dsh-session-kb
说明两点:目录站点 skillhub.cn 是社区维护的独立站点,与 DeepSeek / 幻方无官方从属关系;package.json 中的 repository/homepage 写的是 dsh-session-workbench,与上面链接中的 dsh-session-kb 不一致(可能为仓库改名),当前规范地址未能确认。