DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在處理複雜任務時,模型調用工具的穩定性往往比內容生成的質量更難把控。dsh-behavior-enhancer 是一個行爲管理插件,它不干預模型生成的內容,而是通過約束模型調用工具的方式(如調用紀律、失敗收斂、並行度控制),提升複雜任務的執行穩定性。它與 dsh-token-optimizer 職責互補:前者管行爲,後者管內容。
核心功能¶
該插件通過四個模塊管理工具調用行爲:
- 行爲提示:註冊靜態行爲約束段(先讀後寫、批量前先驗證、失敗即收斂、同類修改串行)。通過
systemPrompt.section()注入,這是軟約束,強制收斂由後續模塊負責。 - 並行收斂:監控工具執行狀態。任何工具失敗(含命令級失敗)時,將並行池上限壓到 1;連續成功後恢復用戶原值。上下文壓力超過閾值也會降檔,回落 <54% 滯後恢復。串行狀態跨進程持久化。
- 失敗保護:同工具連續失敗達到閾值,通過
agent.followup()注入提示,引導模型向用戶確認失敗原因而非盲目重試。 - 寫後檢查:針對
write/edit工具,寫入後做輕量語法解析(JSON 用JSON.parse,YAML/代碼做括號配對與縮進檢查)。失敗時從.bak快照回滾,並報告模型。快照存於~/.dsh-memory/files/。
安裝與配置¶
安裝:
dsh plugin --profile web add @zoria-lind/dsh-behavior-enhancer
配置:
在 dsh.profile.bundles 中啓用插件,並在配置文件中定義上述四個模塊的參數。配置節 postWriteCheck 默認開啓。
- id: behavior-enhancer
name: '@zoria-lind/dsh-behavior-enhancer'
config:
behaviorPrompt:
enabled: true
order: -98
text: |
## 工具調用行爲紀律(本會話)
- 先讀後寫
- 批量操作前先驗證
- 失敗立即收斂
- 同類修改串行
parallelConvergence:
enabled: true
recoveryThreshold: 3
complexRatio: 0.6
minParallel: 1
defaultParallel: 10
failureGuard:
enabled: true
maxFailures: 2
followupMessage: '工具 {tool} 已連續失敗 {count} 次。請停止重試,向用戶說明失敗原因並詢問下一步。'
postWriteCheck:
enabled: true
writeTools: ['write', 'edit']
checkExtensions: ['json', 'yaml', 'yml', 'js', 'mjs', 'cjs', 'ts', 'tsx', 'jsx', 'py', 'ps1', 'sh', 'toml', 'xml']
keepBackups: 5
askThreshold: 3
snapshotDir: '~/.dsh-memory/files'
autoRollback: true
開發與兼容性¶
- 依賴與運行環境:零 npm 依賴,無外部服務。需要 Node >= 18。
- DSH 版本:支持基線 DSH
0.1.5-rc.x及更高版本。舊版(≤0.1.4)不再支持。 - 自檢:運行
node test/smoke.mjs進行單進程全量自檢。
權限與邊界¶
- 文件權限:讀寫固定目錄
~/.dsh-memory/files/存儲快照。不修改 Profile 配置、不改 DSH 核心。 - 網絡與命令:無網絡請求,不執行子進程。
- 失敗邊界:所有模塊 fail-open(狀態文件損壞即丟棄重來)。約束段是軟約束,強制收斂由並行池與 followup 兩條獨立路徑保證。
postWriteCheck的解析爲啓發式,回滾的是寫入前版本。
該插件通過精細控制工具調用的紀律與容錯機制,爲 DSH 插件生態提供了基礎的行爲穩定性保障。