前言¶
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的流數據具體序列化形狀也未在運行實例中實測。