在 DeepSeek Harness (DSH) 環境中,調試會話上下文、修復損壞的日誌文件或批量測試助手消息往往需要額外的工具。dsh-assistant-message-forge 是一個雙面插件(Host + Client),提供瞭解析、記錄、編輯會話消息的能力,並支持導入與修復 sessionlog。目前該插件已停止功能更新,核心能力被 dsh-context-console 繼承,但保留了 0.1.1 版本供回滾使用。
核心能力¶
該插件主要解決會話數據持久化、動態修改和日誌修復的問題。
- 上下文解析與記錄:將當前會話完整解析爲
ContextCard,按輪次分組,包含 turn/step 邊界、user/assistant 消息、tool call/result、request header 等各類事件。解析結果連同卡片覆蓋設置一起記錄到$DSH_HOME/assistant-message-forge/context-<sessionId>.json。 - 上下文卡片化與編輯:在“消息鍛造臺”頁籤中展示卡片流,支持動態編輯文本、reasoning、provider、model、usage 以及工具名與參數。編輯結果先保存爲記錄,刷新解析不會丟失。
- 應用到會話:支持將卡片修改“保存並應用到會話”或“應用到會話”。對 user/message/assistant/message/tool-result 使用 surface replace 策略,直接改寫當前會話中的原消息,模型上下文即時生效。
- 草稿管理:支持添加、修改、刪除 assistant 草稿。草稿持久化在
drafts.json中,可完整注入到當前會話。 - Sessionlog 導入與修復:支持識別導入
.jsonl(.zstd)格式的日誌文件,並進行完整性預覽。對於損壞的日誌,可基於後寫分支覆蓋、官方 crash closer 和 seed 校驗創建新的session-repaired-*會話,原日誌保持只讀。
安裝與啓用¶
Web UI 需要作爲 bundle 安裝,不能使用裸 --patch。dsh.client 掃描器通過包名發現 exports["./client"],因此瀏覽器半必須作爲 bundle 安裝進 profile。
# 獨立測試 profile
pnpm dsh plugin --profile amf-test add D:/codeproject/dsh-plugin/plugins/assistant-message-forge
# 正式使用(裝進默認 web profile)
pnpm dsh plugin --profile web add D:/codeproject/dsh-plugin/plugins/assistant-message-forge
典型用法¶
- 刷新解析:在會話上下文中執行
context/refresh,將當前會話的完整事件解析並記錄到本地 JSON 文件。 - 編輯與注入:在卡片視圖中修改內容,選擇“保存並應用到會話”或“應用到會話”直接改寫消息;或使用草稿區的“注入到當前會話”功能,完整合成輪次並 flush。
- 導入識別:使用
sessionlog/parse接口,上傳 base64 編碼的 sessionlog 數據,支持 zstd 解壓和 packed chunk 展開。
注意事項¶
- 維護狀態:插件已停止功能更新,被
dsh-context-console繼承。新部署建議遷移至新插件,現有 0.1.1 版本保留供回滾。 - 傳輸限制:上傳 base64 數據限制在 128 MiB 以內。
- Tool Result 限制:修改
tool/result時,僅允許編輯content,message id、source、isError等包裝字段必須保持原值,isError在記錄裏可改,應用時按原值寫回。 - 會話邊界:會話正在運行(存在未閉合 turn)時,注入和應用操作都會被拒絕。