前言¶
在 DeepSeek Harness(DSH)裏跑本地 Agent 時,常見現象是同一條命令反覆失敗、同一文件被多次讀取、單次工具輸出過大,或用戶多次糾偏後 Agent 仍沿原路走。這些模式往往散在已保存會話裏,事後很難系統復盤,也不容易沉澱成可審覈的項目規則。
Waymark(dsh-waymark)是面向 DSH 的工作流類插件:從本地已保存會話中定位上述模式,給出帶輪次與 seq 證據的報告,併產出 AGENTS.md 候選規則。當前爲 0.2.0-alpha.1 開發者預覽,支持會話復盤與顯式開啓的實時提醒;自動攔截尚未實現。維護者爲 ZhSM27,源碼與說明見 GitHub 倉庫,社區目錄頁爲 skillhub.cn/plugins/ZhSM27/dsh-waymark。DSH 生態強調「一切皆插件」;社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
這是什麼¶
Waymark 的定位是:本地、有證據依據的 Agent 工作流診斷。它不調用模型做復盤,不把報告再塞回模型上下文;也不重寫被分析的日誌,不自動編輯 AGENTS.md 或宿主配置。真實會話經宿主只讀查詢處理,插件側不上傳網絡、不調用 LLM、無遙測。插件以當前 dsh 進程權限運行,安裝前應自行查看源碼與 MIT 許可證。
README 寫明僅適配並驗證 dsh 0.2.1-rc.5;dsh 升級可能破壞接口,使用前建議閱讀倉庫內 已知限制。
核心功能¶
會話復盤(/waymark retro)¶
對已保存會話做離線分析,輸出人類可讀報告,或 --json / --markdown / --export 等形式。命令直接返回結果;dsh 會保存 command/run、command/done 及結果文本,這不等於宿主運行時磁盤零寫入。
分析規則與邊界如下(摘自 README):
| 規則 | 判定要點 |
|---|---|
| R1 重複失敗 | 同工具、相同/近似參數、相同錯誤的連續失敗,默認三次起報 |
| R2 重複讀取 | 同文件、相同範圍的成功讀取默認三次;成功 write/edit 後計數重置 |
| R3 巨型輸出 | 結果體積嚴格大於 4000 token(可配置),並列出 Top 5 |
| R4 用戶糾偏 | 用戶消息命中詞表且其後仍有工具活動;低置信度,只展示前 80 個 Unicode 字符 |
報告含輪次證據、工具成敗、有限形式的驗證命令觀察(僅識別簡單 npm/pnpm/yarn/bun 的 test/build/lint/typecheck),以及最多三條去重的項目級規則提案。內容 token 缺失時用 Unicode 字符數 / 4 粗估;重複體積只計第一次之後的調用及輸出,不能當作賬單節省或當前窗口占比。
生產命令已接入宿主 workspaceRegistry 歸檔准入:當前會話、顯式 id、last 與導出均排除歸檔或未登記會話;last 僅選擇與當前會話 cwd 完全匹配 的最近頂層已保存會話,排除當前會話與 subagent。
實時觀察與提醒(實驗性,/waymark guard)¶
默認 off,需按當前會話顯式開啓。observe 只計數;warn 對 R1/R3 提供提示,不拒絕或自動重試工具。默認 delivery=model,提示隨宿主下一次模型請求發送;delivery=user 則提示留在本地 status,不進入模型上下文。狀態與反饋僅在內存,重啓不保留。PTC 子調用和繼承會話暫不覆蓋。
安裝與啓用¶
需要 Node.js 24.11+(README 實測 24.22.2)及匹配版本的 dsh。安裝須選擇實際運行的 profile;官方驗收使用隔離 web profile,未驗證 Desktop/TUI 的 UI 呈現。
Alpha 預發佈包安裝示例(README):
dsh plugin --profile web add -w ./dsh-waymark-0.2.0-alpha.1.tgz
npm 發佈待維護者完成賬號 2FA;發佈完成後可用 registry 安裝:
dsh plugin --profile web add -w dsh-waymark@alpha
安裝後重啓對應 profile。卸載:
dsh plugin --profile web remove -w dsh-waymark
隨後重啓。-w 爲當前 pnpm 9.15.0 在 dsh 生成的 profile workspace 中所需的顯式根標誌;若 CLI 版本不同,按實際行爲覈實。
典型用法¶
復盤命令¶
/waymark retro
/waymark retro last
/waymark retro <session-id>
/waymark retro <session-id> --json
/waymark retro <session-id> --markdown
/waymark retro <session-id> --export review.md
省略 id 時分析當前會話。--export 將報告寫入接收命令的工作目錄下 .waymark/reports/<filename>;三種輸出模式互斥。導出只接受簡單 .md 文件名,拒絕覆蓋與路徑穿越。完整報告可能含本地路徑及用戶糾偏片段,分享前需自行脫敏。
Guard 命令(實驗性)¶
/waymark guard status
/waymark guard mode observe
/waymark guard mode warn
/waymark guard delivery user
/waymark guard delivery model
/waymark guard feedback 1 helpful
/waymark guard mode off
配置¶
在 profile 的 cordis.patch.yml 中覆蓋 waymark 行的 config,重啓生效。dsh patch 會替換整行 config,修改時需保留需要的全部選項:
- id: waymark
config:
failLoopMin: 3
rereadMin: 3
similarityThreshold: 0.8
bigOutputTokens: 4000
topN: 5
volatileArgumentKeys: []
temporaryPathPrefixes: []
correctionKeywords: ['不對', '停', '重來', '撤銷', '搞錯', 'revert', 'undo', 'stop', 'wrong']
實時提醒可在同一 config 下增加 live 塊,例如 failWarnMin、bigOutputTokens、maxPerSession、maxChars;未知鍵會報錯。字段含義與約束見 README 配置表。
適用場景與注意¶
適合:希望在本地復盤 Agent 會話、把重複失敗/重複讀/大輸出/糾偏模式整理成可審覈規則提案的 DSH 用戶;需要在同一會話內可選開啓 R1/R3 輕量提醒(且不替代人工判斷)時,可試用 guard。
務必注意:
- Alpha 階段,接口與 dsh 版本綁定;自動攔截、暫停/恢復、上下文壓縮等不在此版本。
- 插件不捆綁執行其他第三方插件;宿主及其他插件的網絡行爲不屬於 Waymark。
- R3 大輸出不自動等同於浪費;R4 可能是正常改需求。
- 誤報、漏報與兼容性建議通過 GitHub Issues 反饋,註明版本與脫敏復現,勿上傳原始會話或密鑰。
倉庫提供 pnpm demo 運行合成失敗循環演示,便於理解 R1 等行爲,無需真實會話。
結尾¶
Waymark 把「事後復盤」和「可選實時提醒」放在同一插件裏,強調證據與本地處理,適合作爲 DSH 工作流調優的起點。目錄頁:https://www.skillhub.cn/plugins/ZhSM27/dsh-waymark;源碼與文檔:https://github.com/ZhSM27/dsh-waymark。