Magpie 本地脱敏功能:混搭多家大模型时的敏感信息防护
GitHub 上短时间内收获 3 万星的 Magpie,最被低估的功能不是模型切换,而是本地脱敏。
混搭多家大模型时,Agent 会把读到的 .env 文件、配置文件、带 token 的日志塞进提示词,以前只用一家模型时这些内容只发给一家,现在混用 Opus 5.5、GPT-6 Astra、DeepSeek、Kimi 等模型,经手的厂商会变多,敏感信息泄露风险随之上升。
Magpie 的脱敏逻辑很直接:请求离开电脑前,先在本地把敏感值换成占位符,大模型回复回来时再换回真实值。比如一个 API Key,厂商看到的只是 {{API_KEY_k3v9x2mq}},Agent 和本地文件里始终保留真实值,向外发送的都是替换后的占位符,能过滤掉大半安全问题。
脱敏采用两层识别机制:规则层负责识别确定的内容,包括 API Key、私钥、token、邮箱,以及校验位对得上的银行卡号和证件号;本地模型层负责识别规则抓不到的内容,比如人名、地址、密码,该本地模型约 1.6GB,跑在 CPU 上,属于可选功能。
脱敏功能不会影响 Agent 正常干活:流式文本和工具调用里的占位符都会自动还原,Agent 执行命令时使用的还是真实密钥。同一个值的占位符始终保持不变,对话上下文、提示词缓存、thinking 签名都不会受到影响。
真实值只放在内存里,不会落盘,记录仅保留类型、长度和开头几个字符。如果脱敏运行失败,请求会被直接拦下返回 503,不会按原样发出去。
脱敏过程不是黑箱:在 Insights › Masking 页面可以左右对照,查看每个被修改的请求里厂商实际收到的内容;设置里还有 Try it 功能,可以先丢一段文本测试替换效果。用户可以自定义规则,添加自己的关键词和正则表达式,命中后可以选择三种处理方式:Mask 遮掉、Warn 只提醒、Block 直接拦截。
使用时需要注意几点:脱敏默认关闭,需要手动去 Settings → Privacy 打开;模型只能看到占位符,如果想让模型排查「这个 token 为什么被拒」,需要先把它加进「从不脱敏」列表;规则偶尔会判错,需要定期去 Masking 页检查;它只遮密钥和个人信息这类值,业务代码本身还是会发给厂商。
除了脱敏功能,Magpie 还能在电脑上启动一个本地网关,把不同厂商的接口互相翻译,实现任意 Agent 调用任意厂商的模型。比如可以把 GPT-6 Astra 接入 Claude Code,把 Opus 5.5 接到 Codex,或者把 Opus 5.5 和 GPT-6 Astra 接入 DeepSeek Harness 或 Pi。
装好之后可以获得三个核心功能:菜单栏里每个 Agent 占一行,正在使用的模型一眼就能看清,点一下就能切换;Claude、ChatGPT、Copilot 订阅登录一次,其他 Agent 也能选到订阅里的模型,不会浪费订阅额度;每个 Agent、每个模型消耗的 token 数量、花费金额都有统计,账单清晰可见。
它不止支持主流模型,还兼容 Claude Code、Codex、Gemini CLI、OpenCode、Pi、Cursor CLI 等 30 多个 Agent,DeepSeek、Kimi、GLM、Qwen 以及 Ollama 本地模型都能接入。