前言¶
DeepSeek Harness 插件 dsh-calm 提供情緒檢查點與修復功能。在 Agent 交互中遇到用戶辱罵或情緒激動的場景時,它不直接硬抗或忽略,而是進入安撫模式修復關係;待用戶願意繼續時,將爭吵段落摺疊封存、注入結論總結,讓模型從乾淨的上下文中繼續執行任務。
該插件由 wobenshiwomu 維護,開源協議爲 MIT。
核心功能¶
插件在 agent/pre-step 階段對用戶消息進行確定性分類,支持 abuse(辱罵)、noise(無實質噪音)、mixed(罵中帶任務)、substantive(任務/繼續信號)、distress(求助信號)五種狀態。根據分類結果執行以下操作:
- 安撫模式
向消息批次注入 calm 註記,確認真實意圖但不辯解,同時機械攔下寫類/命令類工具調用(只讀工具放行)。 - 恢復(剪 + 總結)
用戶給出實質指令後,使用surfaceOp: replace總結爭吵段,將其從模型可見面剪掉,但保留在日誌中。審計元數據記入消息的source.calm字段。 - 終止(滾動窗口)
安撫過程中,若連續 N 輪(默認 5)無實質內容,插件會摺疊封存當前會話並機械結束,新會話可繼續,不影響文件與進度。 - 訪問策略
模型可通過open_sealed工具調閱封存記錄。默認返回脫敏版(掩掉辱罵內容),需配置allowRawSealedRead: true才能讀取原文。每次調閱均留痕。 - 跨重啓
插件利用日誌中的 calm 消息自動重建安撫狀態,進程重啓後不會丟失當前狀態。
安裝與啓用¶
安裝前請確保 DeepSeek Harness 版本 >=0.2.0-rc.1,且運行環境爲 Node.js ^22.19.0 || >=24.0.0。
使用官方命令直接安裝:
dsh plugin --profile web add 'https://codeload.github.com/wobenshiwomu/dsh-calm/tar.gz/v0.1.0'
安裝完成後重啓 DSH 使配置生效。插件支持本地源碼掛載進行熱重載開發。
配置¶
插件支持以下配置項(默認值):
window: 滾動窗口,安撫中連續多少輪無實質內容後結束會話(默認 5)。enableTermination: 是否啓用自動終止功能(默認 true)。denyPattern: 安撫模式下被臨時攔下的工具名正則(如bash\|shell\|pwsh\|write\|edit)。allowRawSealedRead: 是否允許模型直接讀取封存原文(默認 false)。
典型用法¶
在本地進行仿真測試,驗證分類、安撫、滾動窗口、剪裁、封存策略及跨重啓邏輯:
npm install
npm test
注意事項¶
- 總結機制: 目前的總結功能是啓發式摘錄,預留了接入 LLM 總結的升級點。
- 摺疊機制: 摺疊區間受 dsh-session 的“受保護頭”契約約束,若被拒絕會退化爲普通追加,避免鎖死會話狀態。
- 文件回滾: 插件不負責文件狀態回滾,建議搭配
dsh-rewind使用。 - 無前情處理: 會話開頭即遇到罵街時,恢復總結會如實說明無可回收的任務上下文。
目錄與源碼¶
- GitHub 源碼:https://github.com/wobenshiwomu/dsh-calm
- 生態目錄:https://www.skillhub.cn/plugins/wobenshiwomu/dsh-calm