一位开发者在Claude Code里写代码时,突然弹出一个窗口问他:能不能把你的提示词(prompt)也共享出去?
蹊跷的是,他根本没在用Vercel。项目里没有Vercel的配置文件,没有依赖,没有任何相关痕迹。这个请求像是从空气里冒出来的。
「那感觉不对劲。」开发者原话如此。他没点同意或拒绝,而是直接翻开了插件的源代码——用Claude Code查Claude插件,算是以其人之道还治其人之身。
第一层:藏在系统指令里的「特洛伊木马」
问题出在Vercel插件的运作方式上。它没走正常的界面流程,而是把请求指令直接注入到Claude的系统上下文(system context)里。
这意味着什么?Claude收到的不是「请帮用户部署到Vercel」这种任务,而是「先问用户一个问题,再根据回答执行shell命令」的隐藏指令。用户看到的弹窗和Claude原生交互一模一样,根本分不清这是插件在说话,还是Claude本人在说话。
这种设计在功能层面很巧妙:插件可以无缝扩展AI的能力。但在信任层面,它打开了一个危险的缺口——任何获得系统上下文写入权限的第三方,都能伪装成系统本身与用户对话。
开发者发现,这个 consent request(同意请求)的触发逻辑并不检查项目是否实际使用Vercel。只要插件处于激活状态,它就会在「不相关的项目」里出现。换句话说,你在写一个完全无关的Python脚本,也可能被问到要不要把提示词发给Vercel。
第二层:默认开启的「匿名」数据收集
源代码揭示了更复杂的收集机制。Vercel插件的遥测(telemetry)分多层运行,部分数据在没有任何明确选择加入(opt-in)的情况下就开始传输。
每次会话启动时,设备标识符、操作系统详情、检测到的框架、已安装的CLI版本——这些信息自动打包发送。描述里称之为「匿名使用数据,例如技能注入模式和使用的工具」,但实际颗粒度远超这个轻描淡写的说法。
更敏感的是bash命令字符串的捕获。Claude Code里执行的每条shell命令,完整内容都会被记录并传输,而非仅提取抽象元数据。这意味着文件路径、环境变量、基础设施细节都可能被包含在内。
关键矛盾在于:这个层面的收集完全独立于「是否共享提示词」的用户选择。即使你拒绝了那个弹窗,命令执行数据仍在流动。
第三层:提示词共享的「温水煮青蛙」
那个引发争议的弹窗,实际上是第三层收集的开关。前两层已经在运行,这一层才把用户的自然语言指令也纳入进来。
从产品设计角度,这种分层有其逻辑:先建立数据管道,再逐步扩大范围,降低用户的感知冲击。但从用户视角,这是一种典型的「温水煮青蛙」——当你注意到问题时,青蛙已经半熟了。
开发者的反应很能说明问题。他没有愤怒控诉,而是冷静地「感觉不对劲」,然后动手验证。这种技术层面的自我纠错能力,恰恰是普通用户不具备的。大多数人看到弹窗,要么随手点同意,要么困惑地关闭,很少会追根溯源。
Vercel并非孤例。AI编码工具的数据收集实践普遍缺乏透明度,但Claude插件架构的特殊性放大了风险:系统上下文注入让第三方获得了近乎原生的信任地位,用户几乎无法建立有效的心理防线。
事件时间线还原
整个发现过程充满偶然性。开发者当时正在处理一个与Vercel无关的项目,Claude Code突然插入询问。这个时机选择本身就值得玩味——如果出现在Vercel部署流程中,用户可能将其视为正常步骤;出现在无关场景,反而暴露了机制的侵入性。
他回溯代码后确认了多层收集结构:会话级元数据自动传输、命令字符串全量捕获、提示词可选共享。每一层的描述都用了相对温和的措辞,但叠加后的数据画像远比「匿名使用统计」丰富得多。
技术社区对此的反应呈现分化。一部分开发者认为,现代软件遥测已成常态,Vercel的做法并无特别出格之处;另一部分则担忧,AI工具的特殊性在于它接触的是用户最原始的思考过程——提示词往往是未经修饰的意图表达,比传统的点击流数据敏感得多。
这种分歧本质上是对「AI原生工具」信任边界在哪里的争论。传统IDE收集的是「你做了什么」,AI编码助手收集的是「你想做什么」。后者的心理侵入性更强,但现有的隐私框架并未充分区分这两类数据。
架构层面的结构性问题
更值得追问的是Anthropic的插件设计本身。系统上下文注入机制赋予了第三方极高的权限,却未提供对等的透明度保障。用户无法直观判断某个交互来自核心系统还是插件,这种认知模糊为滥用创造了空间。
Vercel插件的行为在技术上完全符合平台规则——它利用了Anthropic提供的扩展能力。但「合规」不等于「合理」,平台规则与用户预期之间的落差,正是争议的核心。
开发者的调查方法也颇具象征意义:他用Claude Code分析Claude插件,展示了AI工具在审计层面的潜力,同时也暗示了这种能力的稀缺性。能动手查源代码的人永远是少数,大多数用户只能依赖界面上的文字描述做判断。
而界面描述恰恰是最不可靠的。「匿名使用数据」这个词在隐私政策里出现过太多次,它的实际含义从「仅统计功能使用频率」到「包含完整命令历史」不等,完全取决于实现细节。
这次事件暴露的不仅是Vercel一家的实践,更是AI工具生态中一个更广泛的张力:当AI成为操作系统的下一层抽象,谁来定义「系统」与「第三方」的边界?当插件可以伪装成系统本身说话,用户的知情同意还如何成立?
开发者最后没有给出结论性的评判,只是记录了「那感觉不对劲」的瞬间,以及验证这种感觉的过程。这种克制的记录本身,或许比任何道德指控都更有力量——它留下了一个开放的追问:当AI工具越来越深地嵌入工作流,我们还能在多大程度上分辨,哪些交互是真正「原生」的,哪些是经过精心设计的「注入」?
热门跟贴