@dpskh/tool-checkpoint:为 DSH 探索流程打 checkpoint 标记

前言

在 DSH 多工具调用场景中,模型经常需要先读取、搜索、尝试多个方案,再给出结论。这些中间步骤会进入上下文,使后续回合携带较多噪声。

@dpskh/tool-checkpoint 解决的是其中一个环节:在探索开始前,先记录一个持久化的探索起点标记。该插件本身不折叠内容,标记在 rewind 前保持惰性;后续由 @dpskh/tool-rewind 消费该标记,折叠标记之后的中间步骤。

这是什么

@dpskh/tool-checkpoint 是 DeepSeek Harness(DSH)的 checkpoint marker 插件,维护者为 dpskh,许可证为 MIT。

挂载后,它提供两样东西:

  • ctx.checkpoint:一个插件服务,用于在插件自有存储域中按 session id 持久记录 checkpoint mark。
  • checkpoint:一个模型可调用的工具,供模型在探索开始前调用。

该插件的定位是记录“探索从哪里开始”,不负责折叠上下文。折叠工作由 @dpskh/tool-rewind 完成。

核心功能

持久记录 checkpoint mark

标记保存在 checkpoint 存储域中,路径为:

~/.dsh/storages/checkpoint.json

这个标记不是 session event,不进入模型可见历史,也不进入 durable session log。

提供模型可调用的 checkpoint 工具

checkpoint 工具接受可选输入:

{
  "objective": "string"
}

调用后返回:

{
  "id": "string",
  "logLength": 0
}

其中:

  • id:插件自有的单调标记身份。
  • logLength:标记时的 session log 长度。

供 rewind 消费

插件提供以下接口,供 @dpskh/tool-rewind 使用:

latestMark
hasActive
completeFold

这些接口用于读取最新标记、判断是否仍有待折叠标记,并在折叠成功后标记该 marker 已完成。

KV cache 行为

README 说明该插件的 KV cache 效果为 prefix-stable:工具 schema 固定,标记是存储记录而非会话事件,不会改变请求前缀。

启用与配置

已核实资料中未给出官方安装命令,因此这里不提供安装命令。

启用方式是在 DSH 插件配置中挂载该插件:

- id: tool-checkpoint
  name: '@dpskh/tool-checkpoint'
  config:
    toolName: checkpoint

其中:

  • id:插件配置项 ID。
  • name:插件包名,固定为 @dpskh/tool-checkpoint
  • config.toolName:模型可见的工具名,默认为 checkpoint

与 @dpskh/tool-rewind 一起使用

单独使用 checkpoint 时,只会记录 inert marker,探索内容仍会留在上下文中。

单独使用 rewind 时,由于没有可消费的 checkpoint,会以 no-checkpoint 错误失败。

因此需要同时挂载两个插件:

- id: tool-checkpoint
  name: '@dpskh/tool-checkpoint'
- id: tool-rewind
  name: '@dpskh/tool-rewind'
  config:
    reportLanguage: en

其中 reportLanguage 是 tool-rewind 的配置项,示例中设置为 en

编程契约

插件服务接口为:

ctx.checkpoint.mark(session, objective?)

调用后返回:

{ id, logLength }

含义如下:

  • session:当前会话标识。
  • objective?:可选的目标描述。
  • id:该次标记的插件内部身份。
  • logLength:标记时 session log 的长度,可作为后续折叠锚点。

模型工作流

模型可以按下面的顺序使用:

1、在需要超过一次工具调用的调查前,调用 checkpoint 工具。

{
  "objective": "optional description"
}

2、收到返回结果:

{
  "id": "string",
  "logLength": 0
}

3、完成调查后,在结束回合前调用 rewind,折叠标记之后的中间步骤。

这个流程的关键是:checkpoint 只负责标记,rewind 负责折叠。

适用场景与注意

适合以下 DSH 工作流:

  • 需要先进行多次工具调用的调查。
  • 希望把探索中间步骤从模型可见上下文中折叠掉。
  • 需要保留 durable session log,同时减少中间过程占用的场景。

需要注意:

1、没有 rewind 的 marker 是 inert 的。探索仍会留在上下文中,不会因为打了标记而自动消失。

2、每个 marker 只能折叠一次。重复折叠同一 marker 会被拒绝为空区域。

3、标记不属于 session event。它不进入模型可见历史,也不进入 durable session log。

4、durable session log 保持 core-vocabulary,避免引入仓库外插件事件导致 harness 无法识别。

5、插件以当前 dsh 进程权限运行。安装前应检查源码、依赖与许可证。

链接

目录页:

https://www.skillhub.cn/plugins/dpskh/dsh-checkpoint

GitHub:

https://github.com/dpskh/dsh-checkpoint

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

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

小夜