dsh-session-rotate-on-compact:Compact 后轮换出站 Session ID

前言

在 DeepSeek Harness(DSH)里长时间跑智能体时,上下文会不断累积,系统会通过 Compact 把历史消息压缩掉以控制 token 占用。对依赖代理 API、且后端按 Session ID 做账号或配额轮询的部署来说,若出站会话标识一直不变,Compact 之后仍可能被当成同一条长会话,轮询策略不一定按预期触发。

下面介绍社区插件 dsh-session-rotate-on-compact(维护者 Hugo16,目录分类 admin-security):在 DSH 侧会话保持不变的前提下,仅在 Compact 成功 后生成新的出站 Session ID,让代理把下一次请求识别为新会话,从而触发账号轮询;Compact 失败则不切换,也不会重新发送已被压缩掉的历史消息。

这是什么

dsh-session-rotate-on-compact 是面向 DSH 的会话轮换插件。README 中的定位是:当 DSH 完成一次自动或手动 Compact 后,插件会生成新的 Session ID,使代理 API 将下一次请求识别为新会话,从而触发账号轮询。

插件当前版本为 0.1.0(见 GitHub 仓库说明),运行环境要求 Node.js >= 20(见仓库 package.json 的 engines 字段)。

核心功能

以下能力均来自仓库 README 的「功能」说明,安装后由插件在 Compact 流程中生效,无需额外配置文件(资料中未列出独立配置项)。

  1. DSH 会话保持不变 — 不新建 DSH 会话,只调整出站 LLM 侧会话标识(与 package.json 中 description 一致)。
  2. Compact 成功后切换 Session ID — 仅在压缩成功时轮换。
  3. 自动 Compact 与手动 Compact 均支持 — 两种触发方式走同一逻辑。
  4. Compact 失败时不切换 — 避免在异常状态下误换会话。
  5. 不重新发送已压缩掉的历史消息 — 轮换标识时不回放已被 Compact 移除的内容。

安装与启用

安装命令以 GitHub README 为准。在 PowerShell 中执行:

pnpm dsh plugin --profile web add "https://github.com/Hugo16/dsh-session-rotate-on-compact.git"

安装完成后 重启 DSH,插件通过 Cordis patch(cordis.patch.yml)接入 DSH 生命周期。

典型用法

资料中未提供单独的 CLI 示例或配置片段;典型用法即:安装并重启 DSH 后照常使用 Compact(自动或手动)。当某次 Compact 成功结束时,插件会自动生成新的出站 Session ID;下一次经代理发出的 LLM 请求会携带新标识,由代理侧按既有策略识别为新会话并参与账号轮询。

若 Compact 未成功,Session ID 保持原样,行为与未安装插件时一致(除插件本身 hook 外无额外副作用)。

适用场景与注意

适合谁

  • 使用 DSH 做长对话或长任务,并定期依赖 Compact 控上下文。
  • 出站走代理 API,且代理或上游按 Session ID 区分会话、做账号轮询或多 key 调度。

使用注意

  • 插件在 当前 DSH 进程权限 下运行;安装前建议在 GitHub 查看 index.js、cordis.patch.yml 及许可证,确认与自身环境匹配。
  • 社区目录页(SkillHub)与 DeepSeek / 幻方无官方从属关系;插件为社区维护,星标等元数据以目录与仓库页面为准(目录线索星标为 0)。
  • 本插件只解决「Compact 成功后轮换出站 Session ID」;不替代 DSH 自身的会话管理、Compact 策略或代理侧轮询配置。

链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye