米粒守衛:DeepSeek Harness 的輸出復讀檢測插件

前言

DeepSeek Harness(DSH)在設計上強調一切皆插件,這讓擴展能力變得靈活,但也帶來了一個問題:當模型在思考流和輸出流中開始重複時,開發者往往要手動打斷,或者只能等輸出結束後才發現。這種重複可能發生在長對話中,也可能以“編號循環”的形式悄悄發生,直到輸出量已經很大才暴露。

DSH 0.2.0-rc.2 開始支持插件機制,開發者可以藉助插件來接管模型的流式輸出。插件運行在宿主進程內,可以訂閱 agent/assistant-stream,在流中檢測特定模式並調用 agent.cancel 來終止當前回合。

這是什麼

dsh-rice-guard 是一個爲 DeepSeek Harness 設計的獨立插件,由維護者 XiaoSHang05 維護。它作爲 DSH 的一個工作流插件存在,主要職責是監控模型的思考流和正式輸出流,在檢測到重複內容時報警,並可選擇自動取消當前回合。它不依賴羣聊插件,功能塢爲可選依賴。

插件兼容 DSH 0.2.0-rc.2 及以上,包聲明範圍爲 >=0.2.0-0 <0.3.0。宿主需要提供 webServer 和 agent 運行時,以及 @deepseek-ai/schemastery ^3.18.1。

核心功能

插件通過四條規則來檢測重複:

  1. 週期重複:在尾部窗口中尋找連續相同的片段,命中時會自動旋轉英文週期邊界到可讀位置。
  2. 自定義短語:默認關閉。在監控頁打開開關後,可以輸入你最怕模型復讀的句子(一行一句,至少兩個字)。命中要求這些句子在很短的跨度內出現多次,不會因爲正常行文中的多次引用而觸發。
  3. 編號循環:把每行的數字抹成同一個佔位符後比較句式,連續 ≥12 行同一句式且這些行裏字母佔字母加數字的比例 ≥60% 時才命中。這類復讀通常表現爲“第 1 步:…”、“第 2 步:…”的形式,字符和整行都不重複,其他三條規則難以捕捉。
  4. 重複行密度:只歸一化行首尾和連續空白後比較相同的行。數字不同仍視爲不同內容,因此正常進度列表、帶變化計數的重試日誌不會被誤判。

四條規則按“週期重複 → 自定義短語 → 編號循環 → 重複行密度”的順序檢測,先命中的那條生效。命中後會顯示會話、流、重複片段、次數與打斷狀態。報警卡片會彈出,並伴隨提示音(使用 WebAudio)。報警不會自動消失,需要點擊“知道了”才能關閉。

插件支持三種配置開關:
- cancel: false 切換爲只報警,不自動打斷。
- alarm: false 不顯示報警卡片。
- sound: false 關閉提示音。

安裝與啓用

在包含本文件與 package.json 的插件目錄中安裝:

dsh plugin --profile desktop add "link:$($PWD.Path)"

從 GitHub 安裝(無需先克隆):

dsh plugin --profile desktop add "github:XiaoSHang05/dsh-rice-guard"

安裝或更新宿主代碼後重啓 DSH,然後刷新原來的網頁。對話區會出現“監控”標籤頁。報警掛在全局浮層,無需一直停留在監控頁。已安裝過舊目錄時,請先在插件管理器裏處理舊鏈接,再裝交付目錄,避免兩個目錄的同名插件混用。

插件使用宿主 Web 的認證邊界,讀寫接口位於 /dsh-rice-guard/api/,包括 health、state、config、monitor、hits、events。SSE 只通知重新讀取,狀態以 GET state 爲準。

典型用法

安裝後,默認監視全部會話,思考與輸出分別檢測。在監控頁中:
- “啓用監控”控制全局開關;
- 會話行可以暫停/恢復單獨監控;
- “重複次數”控制連續週期重複閾值,默認 5;
- “重複行佔比”控制獨立重複行檢測,默認最近 8 行中 75% 是已出現的行;
- “編號循環佔比”控制編號循環檢測,默認 0.6。

配置 enabled: false 可以全局關閉監控。scopeDefault: all 表示默認全部監控,selected 僅監控顯式選中的會話。

適用場景與注意

適合在以下場景使用:
- 需要實時監控模型輸出,防止重複內容累積到大量文本時才發現;
- 對“編號循環”類復讀敏感,希望提前阻斷;
- 希望通過自定義短語來捕捉特定卡住模式。

插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證(MIT)。已知邊界:一條很長的正常枚舉(如連續 20 行“port 8001 is listening”)可能命中編號循環規則,因爲它們在語法上與編號循環相同。插件在檢測邊界上做了取捨:寧可報錯一條長清單,也不漏掉一個循環。不認同這個取捨的用戶可以通過設置 structLines: 0 關閉該規則,或調高行數閾值。

插件不加載插件之前的輸出,超出窗口長度/週期長度的重複也可能漏檢。單字符刷屏不是本版的檢測目標。

短結尾

dsh-rice-guard 提供了在流式輸出中檢測重複的模式,幫助開發者在模型開始“復讀”時及時介入。通過報警和自動取消,它減少了人工干預的成本,也降低了重複內容累積的風險。更多細節和源碼可以在 GitHub 查看。

目錄頁

https://www.skillhub.cn/plugins/XiaoSHang05/dsh-rice-guard

GitHub

https://github.com/XiaoSHang05/dsh-rice-guard

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

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

小夜