跳到正文

yangyongzhen/dsh-session-export

30最近提交 2026年8月14日

dsh-session-export DSH 插件

该插件监听 session/event 事件流,在回合结束并静默一段可配置时间后自动导出为 Markdown。进程退出时(包括 Headless 一次性任务)会同步刷新未导出的会话,确保不丢记录。

如何安装 dsh-session-export DSH 插件

dsh plugin --profile <web|tui|headless> add file:/path/to/dsh-session-export

来源命令需要人工核对。复制不会执行命令。

dsh-session-export DSH 插件数据来源

dsh-session-export DSH 插件快照日期:2026年8月16日

discovered

dsh-session-export DSH 插件能做什么

  • 自动将回合导出为 Markdown 文件,存放在 $DSH_HOME/exports/ 下
  • 可配置的防抖机制,避免活跃回合中频繁写入
  • 进程退出时刷新未导出的会话(包括 Headless 一次性任务)
  • 模块化的渲染管线,其他插件可直接复用(如 import { renderSessionMarkdown })

dsh-session-export DSH 插件适合哪些场景

  • 复盘 Agent 对话历史,用于调试或分析
  • 将会话导出为博客文章或文档
  • 审计 Headless 自动化任务中的 Agent 行为
  • 与团队成员或合规部门共享会话日志

dsh-session-export DSH 插件适合谁

  • 需要持久化会话日志以进行回顾的 DSH 用户
  • 希望复用会话导出功能来开发插件的开发者

dsh-session-export DSH 插件的限制

  • 仅支持 Markdown 导出格式,不支持 JSON、HTML 等其他格式
  • 需要 DSH 环境并正确配置 profile(web、tui 或 headless)
  • 导出由回合结束事件触发,不支持手动导出
  • 默认导出目录为 $DSH_HOME/exports/,可通过配置修改但需显式设置

dsh-session-export DSH 插件的仓库 README 摘录

以下文字摘自 dsh-session-export DSH 插件的上游仓库 yangyongzhen/dsh-session-export 的 README,版权归原作者,仅作引用。

DeepSeek Harness 会话导出与复盘插件:把 agent 会话自动导出为 Markdown 文件,供复盘、写博客、审计使用。 - 监听 `session/event` 事件流,turn 结束并静默 `debounceMs` 后自动导出 - 输出 `$DSH_HOME/exports/session-<id>.md`(默认 `~/.dsh/exports/`) - 进程退出(含 headless 一次性任务)时同步 flush 未导出的会话,不丢记录 - 渲染纯函数模块化导出,其他插件可复用 ## 安装 ```sh # 本地 checkout 安装(推荐,免构建) dsh plugin --profile <web|tui|headless> add file:/path/to/dsh-session-export # 或从 Git 仓库直接安装 dsh plugin --profile <web|tui|headless> add https://gitcode.com/qq8864/dsh-session-export.git ``` ## 配置 通过 profile 的 `cordis.patch.yml` 或 `--patch` overlay 覆盖: ```yaml - id: session-export config: enabled: true # 总开关,false 关闭自动导出 outDir: ~/exports # 导出目录,默认 $DSH_HOME/exports debounceMs: 1000 # turn/end 后的静默等待(毫秒) maxResultChars: 2000 # 工具参数/结果的截断长度 includeInjected: false # true 时包含注入消息(上下文快照、skill 目录等) ``` ## 导出内容 ``` # 会话导出 - 会话 ID / 创建时间 / 工作目录 / Agent 预设 / 导出时间 - 模型(provider/model)与统计:turn/step/工具调用次数、token 消耗(含缓存读写)、耗时 ## Turn N / Step N.t 回合与步骤结构 ### 用户 / 目标 直接提示词与目标延续(注入消息默认过滤) #### 工具调用:name 工具名 + 参数 JSON #### 工具结果 返回内容(截断) ### 助手 模型文本 + 该步 token 明细 > Turn N 结束:完成 回合结束原因(完成/出

阅读完整 README仓库未声明许可,使用前请先与作者确认。

dsh-session-export DSH 插件常见问题

如何安装 dsh-session-export 插件?

你可以先克隆仓库,然后运行 `dsh plugin --profile <web|tui|headless> add file:/path/to/dsh-session-export` 进行本地安装(推荐,免构建)。或者直接使用 `dsh plugin --profile <web|tui|headless> add https://gitcode.com/qq8864/dsh-session-export.git` 从 Git 仓库安装。本地路径方式无需额外编译步骤。

导出的 Markdown 文件保存在哪里?

默认保存在 `$DSH_HOME/exports/` 目录下(`$DSH_HOME` 通常是 `~/.dsh/`)。你可以通过在 profile 的 `cordis.patch.yml` 或使用 `--patch` 覆写来设置 `outDir` 配置项,以更改导出目录。文件名格式为 `session-<id>.md`。

能否手动导出会话,而不等待回合结束?

不可以,插件仅在回合结束后经过防抖时间自动导出,不支持手动触发。不过,插件会在进程退出时刷新所有未导出的会话,因此如果你停止 DSH 进程,任何待处理的会话都会在关闭前写入磁盘。

如何配置防抖时间和截断长度?

在 profile 的 `cordis.patch.yml` 或通过 `--patch` 覆写中添加 `session-export` 配置块,例如:`config: { enabled: true, debounceMs: 1000, maxResultChars: 2000 }`。`debounceMs` 控制回合结束后等待的毫秒数;`maxResultChars` 截断工具参数和结果到指定字符数。

该插件在 Headless 模式下能正常工作吗?

可以,Headless 模式完全支持。插件在进程退出时会刷新未导出的会话,这对一次性 Headless 任务特别有用。运行 `dsh --profile headless '介绍一下你自己'` 后,查看 `$DSH_HOME/exports/` 目录即可找到导出的会话文件。