DeepSeek Harness (dsh) 的核心设计理念是“一切皆插件”,这使得用户可以通过扩展来满足特定的业务需求。在智能体开发与运维场景中,导出会话记录常用于审计或合规归档。然而,直接导出的原始文本往往包含敏感信息,如 API 密钥、JWT 令牌、环境变量或绝对路径。dsh-session-export 旨在解决这个问题。它作为一个依赖项,将任何当前或历史会话转化为可验证、已去敏的归档,并提供相应的管理工具。
这是一个 Session export, redaction and compliance archiving bundle for DeepSeek Harness (dsh)。该插件由 JohnXu22786 维护,采用 MIT 许可证。它不依赖模型本身,而是通过基于规则的引擎进行去敏处理,支持多种输出格式,并具备完整的归档管理能力。
核心功能¶
该插件提供以下核心能力:
-
默认确定性去敏
默认开启去敏模式,通过规则移除敏感数据。支持处理的敏感项包括:API 密钥、JWT 令牌、高熵值令牌、.env风格的配置行、URL 凭据以及绝对路径。去敏后的值会携带一个加盐的 SHA-256 指纹(12位十六进制字符),确保归档文件在不同机器间保持可关联性,而不会泄露原始秘密。该指纹由秘密值本身决定,与匹配到的规则无关。 -
多种输出格式
支持将导出结果保存为 Markdown(适合人类阅读)、JSONL(机器可读)、PDF(打印就绪)或全部格式。 -
归档管理
导出的文件按 session 和日期组织,存储在默认目录$DSH_HOME/exports(即~/.dsh/exports)下。归档支持搜索、列出和删除操作,且在删除操作中实现了路径遍历防护,确保只能访问归档根目录内的文件。 -
合规元数据
每个导出文件都会嵌入一个包含元数据的头部,记录 session id、使用的模型、去敏级别、事件计数以及可选的 SHA-256 内容哈希。此外,插件还提供/export-audit斜杠命令,用于按天、格式、session 或去敏级别聚合查看导出趋势。 -
无模型依赖
去敏过程基于规则,不依赖大模型。如果需要更高级的去敏效果,可通过配置启用可选的 LLM 辅助遮罩。
安装与启用¶
安装该插件需要 DeepSeek Harness 环境以及 Node.js 20+(推荐 Node 24+ 以运行源码测试)。
安装命令如下:
dsh plugin --profile demo add github:JohnXu22786/session-export
安装完成后,插件会自动注入配置,默认输出目录为 $DSH_HOME/exports。你可以通过配置文件覆盖该设置。
典型用法¶
插件提供工具和斜杠命令两种调用方式。
工具命令¶
在 DSH 的上下文中,可以直接调用以下工具:
session_export { format?, sessionId?, redact? }
导出一个会话。如果未指定format,则使用默认格式。redact参数控制是否去敏,默认为开启。session_export_list { query?, sessionId?, format?, before?, after?, limit? }
列出或搜索归档。可以通过 session id、日期范围或格式进行筛选。export_delete { target }
根据 archive id 或文件名删除归档。
斜杠命令¶
用户可以直接在对话中输入以下命令:
/session-export:触发会话导出。/session-export-list:查看导出列表。/export-delete:删除指定归档。/sanitize-config:查看或修改去敏配置。/export-audit:查看合规审计趋势。
适用场景与注意¶
该插件适合需要满足合规要求、对数据安全性有高要求的 DSH 用户。
- 环境要求:必须配置一个包含 base bundle 的 DeepSeek Harness profile,该 profile 需提供
sessions、sessionPersistence、tools和commands等基础服务。 - 运行权限:插件以当前 DSH 进程的权限运行,因此在安装前应检查源码与许可证。
- 数据安全:去敏指纹使用加盐 SHA-256 生成,以保持可关联性。索引写入在进程内串行化,防止并发调用导致数据丢失。
总结¶
dsh-session-export 为 DeepSeek Harness 提供了一套完整的会话导出与合规归档方案。它通过默认的确定性去敏机制解决了敏感信息泄露的问题,并通过归档管理和审计视图满足了运维与合规的需求。所有功能均通过命令行和斜杠命令提供,无需额外开发即可集成。