dsh-session-kit
English | 中文
dsh-session-kit 是一个 DeepSeek Harness 插件,用于增强会话页的日常管理能力。它不修改 DSH 核心源码,而是通过官方扩展点为会话增加管理菜单、归档会话管理、任务管理与任务档案、运行时全局提示、运行时上下文压缩配置、轮次级删除/重新生成、本地记忆管理与召回,以及左右侧话题快捷导航。
安装
从 dsh 桌面版安装(推荐):
直接输入插件名称 dsh-session-kit 进行安装
从 npm 安装(推荐):
dsh plugin --profile web add dsh-session-kit
从 github 安装:
dsh plugin --profile web add github:ltxlong/dsh-session-kit
注意
如果更新了dsh版本0.1.5导致出现会话加载失败报错,比如:历史加载失败 @deepseek-ai/dsh-session-format-v0-to-v1 refuses this format v0 Session,
解决方法是:“会话管理”->“修复会话”-> 点击“修复”按钮即可修复当前会话
功能特点
- 删除会话到系统回收站,包括子代理的会话日志
- 轮次级删除对话(直接删除到最新对话)
- 刷新对话(删除 + 重新发送)
- 编辑对话(删除 + 编辑 + 重新发送)
- 左右导航(左导航是对话内层级导航,右导航是对话导航,都支持开启/关闭)
- 可以新增自定义全局提示词
- 可以调整上下文压缩配置参数
- 上下文压缩后即刻恢复被吞掉的记忆快照
- 归档会话可以快捷预览和恢复,可以收藏
- 记忆功能拒绝黑箱,完全透明、可视化可编辑、每轮对话都可以看到上下文中的记忆快照
- 灵活的记忆隔离模式,工作区可以绑定单个记忆项目,会话可以绑定多个记忆项目
- 可以设置自定义记忆格式和固定召回,自动召回功能可以手动关闭
- 生成记忆时,会根据已激活的记忆格式的名称来自动识别,已内置代码类记忆格式
- 临时记忆可以手动转为永久记忆,会话不会召回自己生成的临时记忆,跨会话可以召回
- 记忆召回分为固定召回、自动召回、手动召回
- 停用/删除记忆后上下文会立即生效
- 任务管理-作为记忆功能的扩展,跨会话使用
示例
image
image
image
image
image
image
image
image
image
image
image
image
点击查看详细说明
功能概览
会话管理菜单
插件会在会话页头部增加 会话管理 按钮,菜单包含:
- 删除会话:会话停止后,经确认删除当前会话;运行中的会话会被保护,不能删除。
- 记忆管理:可以管理记忆项目、临时记忆、永久记忆、记忆标签。
- 任务管理:查看、创建、提取、注入和维护任务档案。
- 统计调用:统计当前会话的工具调用,并按工具名显示总数、成功、失败、未完成次数。
- 重新命名:通过官方 Session API 修改当前会话标题。
- 分叉会话:在当前轮次允许分叉时,从当前会话创建一个新会话。
- 归档会话:把当前会话加入工作区归档列表,从侧边栏隐藏。
- 打开目录:使用系统文件管理器打开当前会话日志目录。
- 导出会话:调用 DSH Session 日志 的导出能力。
- 全局提示:配置运行时注入的全局系统提示词,支持开关;保存成功后显示提示,不修改官方代码或配置文件。
- 压缩配置:仅在运行时覆盖当前压缩引擎,不修改官方或预设配置文件。
- 打开归档:进入归档会话管理弹窗。
任务管理与任务档案
任务管理用于记录任务从识别到完成的全过程,包括子任务、工具操作、文件观察、踩坑和涉及会话。数据与记忆共用同一个本地 SQLite 文件(默认 <profile>/.dsh-session-kit/memory.sqlite,随记忆存储目录设置一同变更)。
任务状态
任务状态与回收站生命周期是两个维度。任务状态共有 5 种:
| 状态 | 含义 |
|---|
not_started | 未开始 |
active | 进行中 |
paused | 已暂停 |
completed | 已完成 |
abandoned | 已放弃 |
回收站不是一种任务状态,而由 deleted_at 标记。回收站任务不会计入“全部”页签的列表、统计圆环或自动提示。
自动识别与同步
- 插件监听会话中的
todo/write、tool/call、tool/result、turn/end 和文件观察事件。
- 当前会话没有任务绑定时,第一次有效的
todo/write 会自动创建任务,并根据会话工作目录记录项目名。
- Todo 会按内容、名称和顺序尽量匹配已有子任务;被移出 Todo 列表的历史子任务会保留,以避免丢失已记录的操作历史。
- 任务在所有子任务完成时自动变为
completed;paused 和 abandoned 等人工状态不会被自动覆盖。
- 工具调用、结果和文件观察会按工具调用创建时的任务归属写入,避免在会话切换任务后污染其他任务。
自动提示与完整注入
每轮开始前,插件最多为当前会话提示两个已经参与过的 active 任务。自动提示只包含任务名、项目、进度和已知踩坑等摘要,不会自动把完整任务档案塞入上下文。
当模型判断当前需求确实属于某个任务时,可以调用 task_inject;用户也可以在任务管理卡片上点击“注入当前会话”。完整档案会以插件来源的用户消息加入当前会话,并建立该任务与会话的关联。重复注入会重新建立当前任务归属,后续事件会同步到最近注入的任务。
手动创建与提取
License
MIT