前言¶
在 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