@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

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

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

小夜