dsh-chat-message-export:在 DSH Web 客户端导出对话为 Markdown

前言

在 DeepSeek Harness(DSH)里跑智能体时,对话往往很长:要留档、要贴进文档、要在团队里分享某一轮回复。若只能截图或手工复制,格式容易丢,整段会话也很难按「可读文稿」而不是「调试日志」整理出来。下面介绍社区插件 dsh-chat-message-export(维护者 ZhaoChongyan,分类:客户端):它在 Web 聊天界面增加导出按钮,把单条助手回复或当前可见整段会话下载为 Markdown 文件,由浏览器本地生成,不经过 Host 写盘路由。

这是什么

dsh-chat-message-export 是一个 DSH 插件,核心是在客户端注册两个 UI 插槽,提供「下载本条回复」和「下载当前可见会话」两种导出。包名为 @local/chat-message-export(本地私有 scope,见仓库 package.json),许可证 MIT。插件目录与源码见 SkillHub 目录页 与 GitHub 仓库。

核心功能

导出行为与输出文件名在 README 中写得很具体:

位置 操作 输出文件
每条已 finalize 的助手回复操作条 Download this reply deepseek-reply-<timestamp>.md
会话标题栏 Download the whole visible conversation deepseek-conversation-<timestamp>.md

整段会话导出会按 Chat store 里当前可见节点的顺序读取内容:用户消息与 steering 消息写成 ## User 小节;每个 Turn 只保留最终助手回复,跳过 tool call 与 reasoning,因此文件读起来像对话文稿,而不是完整运行日志。

为何用户气泡旁没有单独导出按钮:Harness 只在 conversation.chat.assistant-actions 上为已 finalize 的助手消息暴露 per-message 操作;用户行上的复制、时间戳等由宿主组件内置,没有扩展插槽。若要在用户行加按钮,需要重写整行(附件、图片、引用、pending/echo 等)并跟踪上游 markup。会话标题栏的整段导出覆盖了用户侧内容的导出需求。

实现要点(来自 README):

  • 纯 JavaScript,无构建步骤、无额外 npm 依赖。
  • 浏览器侧通过 window.__ModuleLoader__.load 注册两个 slot:
  • conversation.chat.assistant-actions,id export,order 20
  • conversation.session.header.actions,id export-conversation,order 30
  • 文案走 Client locale(ctx.locale.register);样式仅用 --dsw-alias-* 主题 token,随明暗主题变化。
  • 下载通过临时 <a download> 与 object URL 完成,卸载插件时会移除注入的 style 标签。

安装与启用

在 DSH 会话中,让 plugin_manager 指向插件目录(路径改为你本机上的绝对路径):

plugin_manager { action: "install_bundle", target: "<abs path>/chat-message-export" }

包会链接进当前 profile,对该 profile 下所有会话生效,重启后仍保留。安装后需要刷新 Web 页面,浏览器在页面加载时组装 client 模块。

本地改 client.js 时,Web 客户端会监听 plugin bundle;重建后的 client.js 有时可不刷新页面即热更新(README 中的开发循环说明)。

仓库内主要文件:client.js(浏览器侧 slot、Markdown 渲染与下载)、index.js(Host 侧为空)、cordis.patch.yml、package.json、locale/en.json 与 locale/zh.json、icon.svg。

典型用法

  1. 按上一节安装并刷新页面,打开任意 Web 聊天会话。
  2. 在某条助手回复已结束(finalize)后,在该条消息的操作条中找到导出相关按钮,下载单条回复,得到 deepseek-reply-<timestamp>.md。
  3. 在会话标题栏操作区使用整段导出,得到 deepseek-conversation-<timestamp>.md,内容为当前可见会话的 Markdown 文稿(不含 tool/reasoning 细节)。

无需额外配置文件;UI 文案见插件 locale/zh.json 与 locale/en.json。

适用场景与注意

适合:需要在 DSH Web 客户端把对话留档、分享或粘贴到 Markdown 工作流里的开发者;希望导出结果是「可读 transcript」而不是完整 agent 日志的场景。

注意:

  • 插件以当前 DSH 进程及所加载 client 模块的权限运行;安装前请自行阅读 GitHub 源码 与 MIT 许可证。
  • 整段导出依赖「当前可见」节点顺序与 Turn 的最终回复;若界面未展示的内容,不会出现在文件里。
  • 社区目录 SkillHub 为独立站点,与 DeepSeek / 幻方无官方从属关系;安装方式以仓库 README 为准,勿凭插件名臆造 CLI 安装命令。

DSH 生态强调「一切皆插件」;本插件只做客户端导出,不改变 Host 侧对话存储逻辑。

结尾

dsh-chat-message-export 在助手消息与会话标题栏各加一个导出入口,把单条回复或可见整段会话落成 Markdown,适合日常归档与协作。更多信息见 SkillHub 目录页 与 GitHub:ZhaoChongyan/dsh-chat-message-export。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye