dsh-verify-judge:讓智能體在完成目標前證明自己

前言

在 DeepSeek Harness(DSH)中,當智能體運行長時間任務並宣佈“完成”時,這通常只是基於自身判斷的自我聲明。模型容易在測試未通過的情況下就關閉目標,或者試圖跳過驗證直接結束回合。

dsh-verify-judge 插件通過攔截 update_goal(complete) 調用,將“完成”變爲一個有條件的動作:在目標關閉前,必須先運行項目的測試套件。如果測試失敗,插件會拒絕關閉目標並將失敗信息反饋給智能體。此外,它還會在回合邊界時檢查並強制重新驗證,確保智能體持續工作直到真正完成。

插件定位

這是一個用於 DeepSeek Harness 的驗證插件,由 zriyox 維護。它通過運行工作區的驗證命令(通常是測試套件)來驗證智能體是否真正完成了任務,而不是僅僅在日誌中聲明完成。

核心功能

該插件主要實現以下能力:

  1. 攔截與驗證:攔截 update_goal(complete) 調用,在目標關閉前執行項目測試套件。
  2. 回合邊界檢查:在回合結束時檢查並強制重新驗證,防止智能體通過在聊天中僅說“完成”來跳過測試。
  3. 命令自動檢測:自動檢測測試命令。
    • package.json 中的 scripts.test。
    • go.mod 文件(運行 go test ./...)。
    • Cargo.toml 文件(運行 cargo test)。
  4. 自定義配置:支持配置自定義的驗證命令。
  5. 未檢測命令處理:當未檢測到命令時,支持 allow(默認)或 deny 策略。
  6. 超時與反饋:支持命令超時控制,並在失敗時截取輸出尾部作爲反饋信息。

安裝與啓用

使用官方提供的命令安裝插件。安裝後需要重啓 dsh web 或等待補丁重載。

dsh plugin --profile web add github:zriyox/dsh-verify-judge

配置說明

在插件的配置行(profile 或 home cordis.patch.yml)中添加以下內容:

- id: verify-judge
  config:
    commands: ['pnpm test', 'pnpm run lint']  # 指定運行命令
    onUndetected: deny                        # 未找到命令時拒絕完成
    timeoutMs: 300000                        # 單個命令超時時間
    outputTailChars: 4000                    # 失敗輸出截取字符數
    gateTurnEnd: true                         # 在回合結束時重新驗證
    maxTurnEndRetries: 2                      # 每回合最大重試次數

配置項說明

  • commands:顯式指定的驗證命令,優先級高於自動檢測。必須在會話工作區中運行。
  • onUndetected:當未檢測到命令時的策略,默認爲 allow。
  • timeoutMs:單個驗證命令的超時時間限制。
  • outputTailChars:驗證失敗時發送給智能體的輸出尾部最大字符數。
  • gateTurnEnd:當目標激活時,是否在回合結束時觸發重新驗證。
  • maxTurnEndRetries:在回合內因驗證失敗而強制繼續工作的最大次數。

依賴與要求

插件運行需要滿足以下依賴條件:

  • Node.js 版本:^22.19.0 或 >=24.0.0
  • 核心依賴:
    • @deepseek-ai/cordis (^4.0.1)
    • @deepseek-ai/dsh-agent (^0.1.0-rc.6)
    • @deepseek-ai/dsh-goal (^0.0.1-rc.1)
    • @deepseek-ai/dsh-llm (^0.0.1-rc.1)
    • @deepseek-ai/dsh-session (^0.0.1-rc.1)
    • @deepseek-ai/dsh-shell (^0.1.0-rc.5)
    • @deepseek-ai/dsh-tools (^0.0.1-rc.1)
  • 開發依賴:@types/node (^22.20.0), typescript (^5.9.3)

插件通過 tools/pre-execute waterfall 攔截調用,不修改非 update_goal 調用。

適用場景

該插件適合需要嚴格驗證智能體工作成果的場景,特別是使用 DSH 的 autonomous goal loop(自主目標循環)時。它確保智能體不能通過“自我聲明”來結束任務,而是必須通過實際代碼驗證(如測試通過)。

總結

dsh-verify-judge 將智能體從“自我聲明完成”轉變爲“證明完成”。通過運行測試套件和回合邊界檢查,它提供了強制的驗證機制。如果配置得當,插件對誠實的工作流是透明的;只有在驗證失敗時纔會介入。

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

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

小夜