前言¶
DeepSeek Harness (DSH) 采用了插件化架构,旨在将功能模块化。在默认情况下,会话数据仅存在于内存中,难以长期保存或作为资产复用。dsh-plugin-transcript 作为插件家族的一员,承担了底层数据层的职责。它负责捕获会话中的每一次交互,将其持久化为 JSONL 文件,并提供 Markdown 渲染能力,为其他依赖会话数据的插件(如搜索、笔记同步等)提供基础。
核心功能¶
该插件主要处理会话数据的捕获、存储与展示。
- 实时捕获与归档:监听
user/message、assistant/message和tool/call事件,并将这些记录实时追加写入到按月划分的 JSONL 边车文件中(默认路径为~/.dsh/transcripts/transcript-YYYY-MM.l)。 - Markdown 渲染:支持通过命令行接口将当前会话渲染为 Markdown 格式。
- 自动持久化:当会话被销毁(
session/disposed)时,插件会自动将 Markdown 内容刷新到dataDir/markdown/目录下。 - 容错机制:如果 DSH 进程在会话期间崩溃,Markdown 可能不会自动刷新,但 JSONL 数据保持完整,可在下次启动后通过命令重绘。
安装与启用¶
安装过程需要执行以下三个步骤:
- 安装插件包:
dsh plugin --profile web add github:121212165/dsh-plugin-transcript
该命令会将插件安装到指定的 profile 中。
-
合并配置文件:
将插件仓库根目录下的cordis.patch.yml内容合并到 DSH 的配置文件$DSH_HOME/profiles/web/cordis.patch.yml中。- 注意:该文件默认为空数组,请将插入条目合并进同一个数组,不要直接追加,否则会导致 YAML 解析错误。
-
重启客户端:
配置更改后必须重启 DSH 客户端才能生效。
命令用法¶
安装完成后,可以通过以下命令进行操作:
-
查看统计信息:
输入/transcript可以查看当前会话的记录统计(条数、字符数)以及 JSONL 文件的具体位置。 -
导出 Markdown:
输入/transcript-export可以将当前会话内容渲染为 Markdown 格式。
Markdown 输出结构¶
导出的 Markdown 文件通常包含会话标题、用户与助手的分段内容,以及工具调用的记录。结构示例如下:
# 会话标题
> N 条记录 · 导出于渲染时刻
## 👤 用户
…
- 🔧 `bash` — {"command":"ls"}
## 🤖 助手 · deepseek-v4-pro
…
注意事项¶
- 崩溃恢复:如果在会话中途 DSH 崩溃,Markdown 不会自动刷新,但 JSONL 数据无损,可使用
/transcript-export重新渲染。 - 工具结果限制:为了避免归档文件膨胀,插件仅记录工具调用(调用名和参数预览),不记录工具的返回结果。
- 配置生效:修改
dataDir、captureTools等配置项后,必须重启 DSH 客户端。 - 不确定点:
user/message的具体 content 块形状是基于 DSH 通用结构推断的,未在运行实例中实测;assistant/message的流数据具体序列化形状也未在运行实例中实测。