DeepSeek Harness (DSH) 采用插件化架构。在开发或调试智能体时,模型经常在 agent/pre-step 阶段接收包含 API 密钥、令牌等敏感信息的输入。这些数据可能被记录到会话日志中,带来安全风险。dsh-model-redactor 插件的作用是在这些敏感数据进入会话日志或模型请求之前,将其重写为脱敏版本。
该插件由 zerodegress 维护,旨在拦截并重写模型可见的输入流。它专注于在数据到达模型或持久化日志之前进行处理,确保敏感凭证不会泄露。
核心功能¶
插件在两个关键阶段介入数据流:输入和输出。
-
输入脱敏 (
agent/pre-step)
在用户消息进入会话日志和模型请求之前,插件会重写这些消息的脱敏副本。已记录的工具结果也会通过会话表面替换进行脱敏,同时保留原始的append-origin事件在持久化日志中。 -
输出脱敏 (
llm/stream)
在代理循环记录之前,插件会移除文本、推理过程和工具调用参数的增量。这确保了日志和未来的模型上下文保持一致。同时,block-end有效载荷也会被脱敏,防止组装好的助手消息重新引入密钥。 -
内置规则
插件内置了一套固定的脱敏规则,覆盖常见格式,包括 OpenAI 风格的sk-、Bearer、Basic 认证头、GitHub 和 Slack 令牌、JWT、赋值模式、PEM 私钥块以及 AWS 的AKIA访问密钥 ID。
安装与启用¶
安装需要向 Cordis 补丁添加一个条目。在配置文件中添加以下行:
- insert:
- id: dsh-model-redactor
name: dsh-model-redactor
config:
enabled: true
该包会附带 cordis.patch.yml 文件,并声明 dsh.bundle.patch 用于捆绑配置文件。
配置与用法¶
基本配置¶
通过 replacement 字段指定替换文本,默认为 [REDACTED]。替换文本长度需在 1 到 128 个字符之间,且不能匹配内置的密钥模式。
自定义规则¶
customRegexes: 用于定义额外的正则表达式规则。customWords: 用于定义精确的单词匹配规则。
限制说明¶
- 内置规则是固定的且无法禁用。
- 替换文本不能与任何内置的密钥模式匹配。
适用场景与注意¶
该插件适合需要在 DSH 环境中处理敏感数据的开发者。使用前应检查源代码和许可证(MIT)。插件以当前 DSH 进程权限运行,请确保来源可信。
通过在模型可见的上下文中实施脱敏,该插件帮助维护安全的日志记录和上下文管理。