mask-gateway-dsh-plugin
by ricardo33550336
mask-gateway(脱敏转发网关)的 DeepSeek Harness 插件版
DeepSeek Harness plugin edition of mask-gateway (the redaction forwarding gateway).
安装
dsh plugin --profile web add github:ricardo33550336/mask-gateway-dsh-pluginGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
mask-gateway(脱敏转发网关)的 DeepSeek Harness 插件版
把本仓库作者的 mask-gateway(Go 版脱敏转发网关,设计灵感来自
AxonHub 的 Prompt Protection)移植来的提示保护功能做成
DeepSeek Harness(DSH)的 Cordis 动态插件:在模型请求进入会话之前对敏感内容脱敏(mask)或拦截(reject),
并提供设置页管理规则,规则持久化到工作区 mask-gateway-rules.json。
- mask:命中规则 → 用替换文本把敏感内容替换掉,消息正常进入会话
- reject:命中规则 → 拦截该 step / 模型请求(等效原网关的 400)
功能
| 能力 | 说明 |
|---|---|
| 脱敏 / 拦截 | agent/pre-step:消息进入会话前 mask/reject;llm/stream:完整模型请求的 reject 兜底 |
| 规则管理 UI | 设置页「Mask Gateway 脱敏网关」:列表 / 新建 / 编辑 / 启停 / 删除 / 预览 |
| 导入 / 导出 | Import JSON(兼容原项目 rules.json 纯数组与本插件 {enabled, rules} 两种格式)、Export JSON |
| 持久化 | 工作区 mask-gateway-rules.json(等价原项目的 rules.json) |
| 正则 | JS RegExp 原生支持 lookahead/lookbehind,含编译失败缓存;(?i) 等行内 flag 自动转换 |
快速开始
本插件是 DSH 动态插件:源码即插件,在 DSH 会话中粘贴定义即可,无需安装、无构建、无 npm 依赖。
方式一:让 AI 加载(推荐)
克隆本仓库后,在 DSH 会话里告诉 AI:
读取本仓库
src/host.js作为 code.host、src/client.js作为 code.client, 用cordis_define定义插件(idPrefixmask),然后cordis_run激活。
首次运行 Client 半部需要在界面上批准。
方式二:手动定义
- 打开 DSH,新建会话。
- 调用
cordis_define:plugin.kind: "new",idPrefix: "mask"code.host← 粘贴src/host.js全文code.client← 粘贴src/client.js全文
cordis_run激活(Client 半部需在 Run 卡片上点击允许)。- 侧边栏底部 设置 → Mask Gateway 脱敏网关 管理规则。
验证
node docs/verify-dsh-plugin.js # 核心脱敏逻辑回归(对应 Go 版 main_test.go 语义,24/24)
规则模型
{
"id": 1,
"name": "mask-api-keys",
"description": "脱敏 OpenAI key",
"pattern": "sk-[a-zA-Z0-9]{20}",
"enabled": true,
"action": "mask", // "mask" | "reject"
"replacement": "[REDACTED]", // mask 时必填
"scopes": [] // 空 = 应用到所有角色
}
scopes 合法值:system / developer / user / assistant / tool(留空 = 全部)。
拦截语义
- mask 规则:
agent/pre-step消息进入会话前脱敏 —— 会话日志、模型请求、回放都只看到脱敏内容 (比原网关只在转发层脱敏更彻底,敏感内容不落盘)。 - reject 规则:双重拦截 —— 消息进入时
{kind:'reject'}阻止该 step; 每次完整模型请求(llm/stream)只读扫描全部角色消息 +system文本,命中即短路返回PROMPT_PROTECTION_REJECTEDerror finish chunk(等效 400)。 - 无命中不破坏:无匹配时消息原样透传(对应
TestMaskNoMatchKeepsOriginalBytes)。
项目结构
src/host.js Host 半部:规则模型/校验/正则缓存/脱敏引擎/持久化/两个 waterfall 监听器/RPC
src/client.js Client 半部:设置页(settings.section)规则管理 UI
docs/ verify-dsh-plugin.js(回归脚本)
与 Go 原版的关系
| mask-gateway(Go) | 本插件(DSH) |
|---|---|
forward 转发前拦截 |
agent/pre-step waterfall |
protectBody 全请求兜底 |
llm/stream waterfall(只读 reject) |
protect.go 脱敏核心 |
src/host.js 同构实现 |
store.go JSON 文件 |
fs 服务读写 mask-gateway-rules.json |
/api/rules REST |
harness.handle RPC(mgw.*) |
static/ 管理界面 |
src/client.js 设置页 |
原 Go 实现为仓库作者的 mask-gateway(目前尚未发布到 GitHub),其提示保护(Prompt Protection) 设计借鉴自 AxonHub。
License
原始 README: https://github.com/ricardo33550336/mask-gateway-dsh-plugin/blob/main/README.md ↗
同类插件
查看全部 →
dsh-anchored-standard
两阶段 DeepSeek Harness 预设:先 Minimal 对齐的 bootstrap,再切完整 Standard 工具(Project2 98/99)

PicGo-Core
极致的图片上传引擎,CLI 与 API 双支持

awesome-deepseek-harness
DeepSeek Harness(DSH)及其优秀社区插件的精选指南。

awesome-deepseek-harness
DeepSeek Harness (DSH)生态系统:来自dsh-external/hub和公共dsh-plugin主题的精选插件、工具和基础设施。

AI-Novel-Writer
本地优先 AI 小说创作工作台,提供 Windows/macOS 桌面版与 DeepSeek Harness 插件开发预览,支持角色、大纲、章节蓝图、审稿修稿和本地模型。

mcp-for-stata
MCP-for-Stata:把 Stata 集成进你的 agent