在 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)时,注入和应用操作都会被拒绝。