dsh-session-manager — 会话管理 × 省钱引擎
省钱第一:DeepSeek 峰谷分时定价(2026-08-17 起高峰时段价格翻倍)下,高峰期自动拦截续跑、低谷窗口错峰批量续完,API 账单直降;配合三段式流程审计(便宜模型干活、贵模型只做验收)与任务完成自动推送,是全 DSH 实例的「账单守护者」。
版本记录
| 版本 | 说明 |
|---|---|
| v1.20.0(当前) | 会话价值判断升级:LLM 高/低价值打分 + 价值五维规则(用户细节补充>活跃>长度>完成数>未完成)+ 关键词无条件置顶 + 孤儿/事件读取失败「宁高不丢」保护(2026-08-22) |
| v1.19.0 | 搜索(列表+全文)、批量/按条件删除、队列改写、workflow-audit 移除、全文搜索并入(2026-08-20) |
| v1.16.0 | 主环境实际运行版(中间版) |
| v1.15.0 | 删除补强 + 错峰定时任务 |
| v1.14.0 | 会话导入导出 |
| v0.8.0 | 合并 dsh-session-transfer |
| v0.7.0 | 高峰期省钱模式 |
| v0.6.0 | 会话分组 + 自动续跑 |
| v0.5.0 | 自动重命名 |
| v0.1.0 | 初始版本 |
待办(规划中,2026-08-20 用户布置)
来源:用户 2026-08-20 布置 9 项重构/新功能。原则:能用官方原生方法就用原生,插件只做整合调用;改不了原生的(如队列)才用自己的方法;全程不碰 DSH 原生源码。状态:待办 → 进行中 → 已完成(完成时按 release-docs-rule 更新本表并重排 README)。
| # | 功能 | 目标一句话 | 方案要点 | 状态 | 联动 |
|---|---|---|---|---|---|
| 1 | 重构会话分组原理 | 移动会话改用「打包导出→导入」官方安全方法,不再「归档+新建承接会话」 | 复用 transfer 导出/导入链路完成会话迁移(保留完整上下文);保留原「新建会话+交接说明」作为可选 | 待办 | group ↔ transfer |
| 2 | 会话价值(LLM 判断) | 会话价值分析升级为 LLM 判断高/低价值 | 已实现 v1.20.0:规则 status + LLM 打分合成高/低价值;价值五维评分(用户细节补充/活跃/长度/完成数/未完成);关键词命中无条件置顶;孤儿/事件读取失败「宁高不丢」;救援恢复时优先只救高价值会话 | 已完成(v1.20.0) | dsh-git-rescue(救援优先级)、session-value-analysis skill |
| 3 | 会话导入导出(原生方法) | 确认走官方原生能力,面板整合调用 | 已实现 zip 合并式导入导出;确认不重造,仅面板整合入口 | 进行中(已有) | — |
| 4 | 会话进入(面板进入对话) | 管理面板点击会话行直接进入对话 | 已实现 onOpenSession → sessions.open()(原生方法);确认保持 |
进行中(已有) | — |
| 5 | 会话搜索(面板+自带搜索加强) | 面板搜索框 + 会话内容全文搜索 | 已并入 v1.19.0:官方 FTS5 优先 + 内置 zstd 扫描兜底;持续加强 | 进行中(已有) | — |
| 6 | 会话删除(面板批量删除) | 面板多选批量删除 + 按条件删除 | 已并入 v1.19.0(官方无删除功能,插件实现);确认保持 | 进行中(已有) | — |
| 7 | 会话队列(第一条消息也排队) | 第一条消息也进排队队列、执行完才消失 | 现状:处理中提示条旁路(不动原生);目标:改写原生方法使第一条真正入队 | 待办 | DSH 原生 queue 逻辑 |
| 8 | 会话压缩指定模型 | 会话模型旁单独选压缩用模型(省 pro 成本) | 已实现 compaction-model API + 设置卡(源码);主环境未部署(P0) | 待办(部署) | 部署链路 |
| 9 | 会话审计(代码级便宜干活贵审计) | 拉起子进程用便宜 AI 干活,贵 AI 审计 | workflow-audit 曾内置后移除(v1.19.0);重新实现为代码级:子进程便宜 AI 执行 → 贵 AI 验收(自创方法) | 待办 | 进程/模型路由 |
| 10 | 归档标题带工作区前缀 + 分类 | 归档后标题前缀显示归档所属工作区,已归档视图按前缀分类 | 归档时真实改标题为 [工作区名] 原标题(数据层带前缀);面板显示剥离前缀(列表/已归档视图只显示原标题);已归档视图按前缀分组(组标题=工作区名,组内行=无前缀原标题);取消归档时还原原标题 |
待办 | group(工作区判定) |
执行顺序(建议)
导入导出(3)→ 分组重构(1,依赖导入导出)→ 面板整合(4/5/6)→ 队列改写(7)→ 价值 LLM(2)→ 压缩部署(8)→ 审计(9)
🔗 详细开发计划(搜索/删除/队列逐条验收标准):
任务/任务清单-功能-开发计划-搜索删除队列-20260820.md;待办项按 release-docs-rule 完成后更新本表并重排 README。
DeepSeek Harness(DSH)会话管理增强插件:高峰拦截 + 错峰续跑省 API 费用、三段式流程审计(deepseek 分析 → 指定模型执行 → deepseek 验收)、任务完成自动推送、归档会话可恢复、AI 自动重命名、非人为中断自动续跑、手动释放活跃会话、会话分组(Workspace)、会话导入导出(zip 合并式恢复 + 导入后自动续跑/修复联动)、用大白话解释内置菜单。
针对 DSH 0.1.0-rc.6 内置会话菜单的痛点:
| 痛点 | 内置行为 | 本插件 |
|---|---|---|
| 归档会话是单向陷阱 | 归档后从侧边栏隐藏,没有任何查看/恢复入口(官方 README 自认 "No Session deletion or unarchive control") | 侧边栏新增「会话管理」面板,「已归档」页可查看并恢复(取消归档) |
| 没有删除会话能力 | 内置界面完全无删除入口 | 面板支持删除会话(拒绝删除运行中会话 + 二次确认) |
| 标题跟不上对话 | 只有「首条消息自动起名」一次性的;主题变了标题不变 | 每会话可勾选自动重命名:AI 分析最近对话,主题明显偏离时自动改标题 |
| 中断了不会自己继续 | 回合因崩溃/限流/超时中断后,只能人工重新打开会话再发消息 | 读取会话记录识别非人为中断,自动让 AI 继续完成原任务 |
| 活跃会话只增不减 | 会话一旦被打开就一直挂在内存,没有关闭/释放入口 | 置为不活跃 / 释放全部空闲:把空闲会话拆回冷状态,记录保留、可自动恢复挂载 |
| 菜单选项看不懂 | 「分叉会话」「归档会话」无任何解释 | 面板「说明」页用大白话解释 重命名 / 分叉会话 / 归档会话 分别是什么意思 |
内置菜单到底是什么意思
- 重命名:改会话标题,不改内容。
- 分叉会话:以当前会话「最后一个已完成的回合」为起点派生子会话——继承这段对话历史,自动命名「原标题 (N)」并打开;原会话完全不动。类似 git 分支:想换个方向探索又不破坏原会话时用它。
- 归档会话:把会话从侧边栏所有分组中隐藏(相当于收进抽屉),数据保留在磁盘上。但内置菜单归档后界面上没有找回入口——本插件的「已归档」页可以恢复。
功能
💰 省钱四件套:高峰期自动拦截续跑 + 低谷错峰批量续完 + 便宜模型干活、贵模型验收 + 干完自动推送——DeepSeek 峰谷定价下的账单守护者,开箱即用。
- 高峰期省钱模式(DeepSeek 2026-08-17 起峰谷分时定价:高峰时段价格翻倍):
- 高峰期暂停自动续跑(默认开启
peakPauseAutoContinue):处于高峰时段时,自动续跑不启动(省钱核心);用户点「高峰继续」(peak-ack)可放行单个会话,或过了高峰时段自动恢复 - 高峰期提醒(
peakRemindEnabled):回合结束时若在高峰时段且会话未确认过,记录「高峰期待确认」标记,面板显示高峰期横幅 + 会话行「高峰」徽标,提醒用户可用「置为不活跃」暂停非必要会话 - 手动暂停/恢复:会话行「高峰继续」= 确认该会话本次高峰放行;「继续」= 清除暂停标记(被暂停的会话重新打开/发消息自动挂载)
- 高峰时段可配置
peakHours(默认官方 9:00-14:00;支持多段与跨天,如夜间 21:00-2:00 用[[21,2]]) - API:
GET /api/session-manager/peak-status/POST /peak-pause/POST /peak-resume/POST /peak-ack
- 高峰期暂停自动续跑(默认开启
- 错峰定时任务(v1.15.0,低谷窗口批量续跑省钱):DeepSeek 峰谷定价下,把「白天中断的会话」留到半价低谷时段自动批量续完——
- 错峰执行窗口(
offpeakHours,默认[[21,8]]= 21:00-次日 8:00,支持多段/跨天):窗口内周期扫描强制批量续跑所有可续的中断会话(半价时段) - 强制续跑(
offpeakForceAutoContinue,默认 true):窗口内不要求会话开启自动续跑开关(中断即续);窗口外完全按原逻辑(跟随开关) - 省钱优先:高峰期拦截始终生效——窗口若与高峰时段重叠,高峰省钱不破(只放宽「开关」门槛,不放宽「高峰拦截」)
- 仍受全套门槛保护:活跃上限
maxAttached、冷却cooldownMs、每会话次数上限maxContinuesPerSession、并发闸maxConcurrent——不会凌晨无脑全跑 - 状态查询:
GET /api/session-manager/offpeak-status→{inWindow, forceAutoContinue, offpeakHours, offpeakHoursText}
- 错峰执行窗口(
No comments yet. Be the first to write one.