前言¶
在 DeepSeek Harness(DSH)里跑智能体时,用户输入、模型思考、工具调用参数都会进入会话文件、日志,并可能发往模型侧。一旦其中夹着 API Key、云凭证或 PEM 私钥,单靠事后删日志很难保证不泄露。常见做法是手工打码或写正则替换,但容易漏格式、同一会话里同一真值被换成多个假名,模型反而起疑。
下面介绍社区插件 dsh-honey-guard(维护者 elegant01,版本 0.1.0,MIT)。它在敏感值离开你的机器之前,用结构合法的 Honey-Token 做确定性替换;会话从源头就是蜜罐,需要真值时再走显式工具还原。
这是什么¶
dsh-honey-guard 是 DSH 的蜜罐脱敏插件:挂载 agent/pre-step 与 tools/post-execute,对每一条出站消息做模式扫描,命中即替换。模型、会话文件、日志里见到的都是假货;同一会话内同一真实值永远映射到同一蜜罐,跨会话映射不可被外部关联。
仓库:https://github.com/elegant01/dsh-honey-guard
社区目录页:https://www.skillhub.cn/plugins/elegant01/dsh-honey-guard
核心功能¶
全自动出站脱敏¶
装上即生效,无需为每条消息单独配置。内置检测器覆盖例如:
| 检测器 | 识别 |
|---|---|
sk- + 48 位 |
OpenAI / DeepSeek 类 key |
AKIA + 16 位 |
AWS Access Key ID |
ghp_ / github_pat_ |
GitHub token |
Bearer 后长 token |
请求头凭证 |
-----BEGIN PRIVATE KEY----- |
PEM 私钥 |
替换是确定性的:结构合法(例如 sk- 开头的假 key),模型只会得到一次正常的认证失败,不会因同一凭证出现两种假名而异常。
显式还原与手动标记¶
入站自动还原刻意不做——还原出的真值下一轮又会被模型看到,等于白脱敏。扩展与还原走工具:
| 工具 | 用途 |
|---|---|
honey_mark |
把检测器认不出的值(内部 token、私有 key 格式)标记为敏感 |
honey_restore |
把蜜罐还原成真实值写回会话记录——用户可见,模型不可见(下一轮重新脱敏) |
honey_stats |
值安全的聚合统计(映射数 / 替换数 / 还原数 / 金丝雀状态) |
Canary Trap¶
每个会话惰性注册一个永不参与替换的「死蜜罐」。若该蜜罐出现在其他会话的文本里即告警,用于发现记录被跨会话搬运。
架构要点(与行为相关)¶
- Admission-time 替换:出站脱敏发生在消息进入会话之前(
agent/pre-step返回的批次即入会内容),会话文件从源头是蜜罐。 - 区间合并替换:检测器区间与手动标记区间先合并(重叠跳过、长值优先),再一次性拼接,蜜罐不会再次进入被扫描文本。
- 每会话独立映射:
WeakMap<agent, scope>按 agent 分桶,映射纯内存、不落盘。 - 值安全:日志、统计、审计事件(
honey/restored)均不含真实值或蜜罐值。
安装与启用¶
在本地已有插件源码目录的前提下,用 profile 安装(命令来自项目 README,请将路径换成你的实际路径):
dsh plugin --profile desktop add "file:<本项目路径>"
也可手动放入 profile 的 node_modules,并在 dsh.profile.bundles 登记。
开发与校验(需 Node ^22.19.0 || >=24.0.0):
pnpm install
pnpm run check # typecheck + vitest + tsdown build
插件以当前 DSH 进程权限运行;安装前请自行阅读源码与 MIT 许可证,确认符合你的安全策略。SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。
典型用法思路¶
- 安装并启用插件后,正常对话与工具调用即可;出站内容会在进入会话前被扫描替换。
- 遇到自定义格式的内部密钥,在会话中通过
honey_mark标记,后续出站同样走蜜罐映射。 - 需要在本机用真值执行某步(例如本地 curl 带真实 Bearer)时,用
honey_restore写回记录;注意下一轮模型侧仍会看到脱敏后的值。 - 用
honey_stats查看映射与替换规模,并关注 Canary 是否触发跨会话告警。
具体工具参数以仓库当前实现为准,见 GitHub README 与 lib 导出。
适用场景与注意¶
适合:在 DSH 桌面或自建 profile 中长期跑 agent、又不想把云/Git/模型 API 密钥写进会话与日志的开发者。
注意:
- 脱敏覆盖 README 所列模式与手动标记,不能替代完整的密钥管理与最小权限。
- 无入站自动还原是设计选择,依赖显式
honey_restore时要想清楚真值何时会再次进入模型上下文。 - peer 依赖包括
@deepseek-ai/cordis、@deepseek-ai/dsh-llm、@deepseek-ai/dsh-tools等,需与当前 DSH 版本匹配。
结尾¶
dsh-honey-guard 把 DSH 的出站链路当成统一拦截点:确定性 Honey-Token、会话级映射、显式还原与 Canary,在「一切皆插件」的 DSH 生态里补一层默认打开的泄露防护。进一步了解请访问 SkillHub 目录页 与 GitHub 仓库。