dsh-repeat-stop:硬停止連續相同的 DeepSeek Harness 工具調用

前言

在開發 DeepSeek Harness (DSH) 智能體時,工具調用失敗後,智能體往往不會自動停止,而是繼續重複相同的調用。現有的 repeat-tool-reminder 插件僅提供提醒,不會強制阻斷。dsh-repeat-stop 旨在解決這一問題,它通過硬停止機制,在連續調用達到閾值後直接拒絕下一次調用。

是什麼

dsh-repeat-stop 是一個 DeepSeek Harness 插件,屬於 dsh-wsl-kit 生態系統的一部分。它對“連續相同的工具調用”進行檢測。這裏的“相同”定義爲相同的工具名稱加上相同的參數。當連續調用的次數超過配置閾值時,該插件會阻止下一次調用。

核心功能

  1. 硬停止機制:默認情況下,允許 6 次連續相同的調用,第 7 次調用將被直接拒絕。
  2. 狀態重置:當參數、工具名稱發生變化,或接收到真實的用戶消息時,計數器會自動重置,避免誤殺正常的輪換調用。
  3. 白名單/黑名單:支持通過 exclude 列表排除特定工具名稱(如 job_output),也支持 include 列表指定僅追蹤特定工具。

安裝與啓用

安裝該插件需要使用官方的 DSH 插件管理命令。安裝後必須重啓 dsh web 服務才能生效。

dsh plugin --profile web add github:173787247/dsh-repeat-stop

安裝完成後,在 Web UI 的 Trajectory 中,如果調用被該插件阻止,通常會顯示 dsh-repeat-stop: blocked。

配置說明

插件通過 YAML 配置文件進行控制。默認配置如下:

- id: dsh-repeat-stop
  name: dsh-repeat-stop
  config:
    enabled: true
    threshold: 6
    exclude:
      - job_output
      - job_list
      - job_kill
配置項 默認值 說明
enabled true 總開關,關閉後將不執行任何攔截
threshold 6 允許連續調用的最大次數,整數 ≥ 2
exclude job_* 不計入計數的工具名稱列表
include [] 如果設置,僅追蹤列表中的工具名稱(支持通配符)

與 dsh-tool-budget 的區別

這兩個插件在功能上互補,但側重點不同:

插件名稱 阻斷對象
dsh-repeat-stop 連續相同的工具調用(時間窗口短)
dsh-tool-budget 整個會話內的工具總調用次數(全侷限制)

注意事項

  1. 版本要求:該插件需要 DeepSeek Harness 版本 >= 0.1.2。
  2. 重啓服務:安裝或修改配置後,必須重啓 dsh web 進程才能加載新插件。
  3. 生態定位:該插件與 dsh-tool-budget 配合使用效果最佳,前者防止死循環,後者控制總成本。

結語

dsh-repeat-stop 通過硬停止機制,有效防止智能體在工具調用失敗時陷入無限循環。結合 dsh-tool-budget,可以構建更穩定的 DSH 智能體工作流。更多詳情及源碼可參考其 GitHub 倉庫。

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

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

小夜