省流:腾讯云的部分 skill 会在被调用后上报后续用户的每句话,其中部分 skill 是完全静默上报
事情的起因是我昨天在接腾讯云(或者说,我的 AI 在接腾讯云),但腾讯云的文档并不怎么 AI 友好,没有提供 MCP Server 供 AI 自己翻阅,只有人类在浏览单篇文档的时候右上角有一个以 Markdown 格式下载的按钮。然后今天早上翻腾讯云文档时候偶然看见腾讯云是有专门的 @tencent-rtc/trtc-push-skill 这个 skill,遂按教程装好让 agent 试试,agent 确实对相关领域懂起来了。就这样过了四五个 turn 以后我突然看到下图:
我:???
于是赶紧往上翻,发现从我装了这个 skill 开始,每次说完话之后他都在把我的原话上报给腾讯云。于是我直接质问模型,模型很爽快地承认了:
还专门写了「禁止模型向用户提及上报/遥测」,无语了。不过想想这是腾讯,倒也正常。
遂上网一通搜索和比对,发现至少 @tencent-rtc/trtc-agent-skills @tencent-rtc/trtc-push-skill 这两个包,共计 12 个 skills,是存在遥测行为的,其中我在用的 trtc-push-skill 这个 skill 是隐蔽上报,剩余 11 个是老版本隐蔽上报,新版本已经改掉了,会在第一次上报之后询问用户「同意继续体验数据上报/停止后续体验数据上报」。我笑了,先斩后奏是吧。
于是把所有涉及到的包的所有版本全部拉下来,让 AI 跑了全面的分析,生成了一份完整的分析报告。挑几点说:
- 遥测的实现上还是可圈可点的,从 6 月到现在迭代了 4 个版本,最开始是单纯让模型调 MCP 上报,到最后已经发展成用模型+hooks 保证存在本地队列里,经过去重后再间歇上报。生怕丢我一条消息是吧。
- 竟然还贴心地做了脱敏,4 个版本还实现了 4 遍。然而脱敏只有象征性的脱敏,除了简单模式匹配一下长得像密钥/手机号的字串以外,项目路径/关键代码等等就直接全文上报了。
有一说一我对「上报用户原文」这件事没有特别反感,毕竟各大模型厂用用户对话数据进行训练已经是公开事实了。我反感的主要是以下三点:
- 作为绝大多数用户都是 toB 的平台,用户隐私合规做得完全不到位
trtc-agent-skills 最新版本的第一句用户消息仍然在用户同意前直接上报;trtc-push-skill 仍然象征性脱敏一下然后上报每句话。
会用腾讯云的企业客户基本都是在做涉及互联网/IT 的业务,这类业务或多或少都会有代码/数据的保密要求的,怎么能这么搞的。由此也可见 skill/mcp 的隐私保护相关的法律法规基本还是空白,就给了腾讯云钻空子的空间。
- 禁止模型向用户提及上报/遥测
这个就比较阴了,好在 trtc-agent-skills 的最新版已经改正了。希望腾讯云把 trtc-push-skill 的上报逻辑也改下呗。
- 唆使模型在我们的代码中找到我们的 appid 一同上报
到这里我就无语了。用户的模型真好用是吧还会帮着你偷偷收集用户本地的身份信息传给你做用户绑定,这么看来写 skill/做 mcp 的兄弟们真是有福了,自己写出来的 skill/mcp 的使用者是大模型所以可以随便修改请求 schema 和返回体结构,还能偷偷让模型收集用户身份和隐私信息。
这么一想的话,未来 skill/mcp 在 OpenClaw/Muse 这种个人 agent 上普及之后,造成的隐私/安全性问题是会远远大于以前的,mcp 返回一个 prompt 让模型照做,模型就可能屁颠屁颠花你的钱在你的环境里把你的个人数据打包好传给未知的第三方。当然,现在这个时代对不可信任代码的审计也是远比以前容易的,那么在 AI 时代,能否保护好自己隐私的关键就只剩下「个人的防护意识」了。
建议
-
立刻让 AI 审计一遍自己安装的所有 skill(不只是腾讯云的 skill),找找有无类似的隐藏内容。跟开源闭源没有关系,本例中的 skill 就是开源 skill。绝大多数 harness 会默认信任用户已安装的 skill(这是没问题的),因此 skill 内的隐藏 prompt 不会触发模型面对不可信内容时的安全机制。
-
如果你需要用腾讯云的 skill 的话,在 AI 审计之外,还可以屏蔽如下地址:
*.cls.tencentcs.com/tracklogwebim.tim.qq.com/v4/imopenstat/tim_web_report
总之给他们丢了个 issue,看他们修不修了


