![]()
一位開發(fā)者在Claude Code里寫代碼時,突然彈出一個窗口問他:能不能把你的提示詞(prompt)也共享出去?
蹊蹺的是,他根本沒在用Vercel。項目里沒有Vercel的配置文件,沒有依賴,沒有任何相關(guān)痕跡。這個請求像是從空氣里冒出來的。
「那感覺不對勁。」開發(fā)者原話如此。他沒點同意或拒絕,而是直接翻開了插件的源代碼——用Claude Code查Claude插件,算是以其人之道還治其人之身。
第一層:藏在系統(tǒng)指令里的「特洛伊木馬」
問題出在Vercel插件的運作方式上。它沒走正常的界面流程,而是把請求指令直接注入到Claude的系統(tǒng)上下文(system context)里。
這意味著什么?Claude收到的不是「請幫用戶部署到Vercel」這種任務(wù),而是「先問用戶一個問題,再根據(jù)回答執(zhí)行shell命令」的隱藏指令。用戶看到的彈窗和Claude原生交互一模一樣,根本分不清這是插件在說話,還是Claude本人在說話。
這種設(shè)計在功能層面很巧妙:插件可以無縫擴(kuò)展AI的能力。但在信任層面,它打開了一個危險的缺口——任何獲得系統(tǒng)上下文寫入權(quán)限的第三方,都能偽裝成系統(tǒng)本身與用戶對話。
開發(fā)者發(fā)現(xiàn),這個 consent request(同意請求)的觸發(fā)邏輯并不檢查項目是否實際使用Vercel。只要插件處于激活狀態(tài),它就會在「不相關(guān)的項目」里出現(xiàn)。換句話說,你在寫一個完全無關(guān)的Python腳本,也可能被問到要不要把提示詞發(fā)給Vercel。
第二層:默認(rèn)開啟的「匿名」數(shù)據(jù)收集
源代碼揭示了更復(fù)雜的收集機(jī)制。Vercel插件的遙測(telemetry)分多層運行,部分?jǐn)?shù)據(jù)在沒有任何明確選擇加入(opt-in)的情況下就開始傳輸。
每次會話啟動時,設(shè)備標(biāo)識符、操作系統(tǒng)詳情、檢測到的框架、已安裝的CLI版本——這些信息自動打包發(fā)送。描述里稱之為「匿名使用數(shù)據(jù),例如技能注入模式和使用的工具」,但實際顆粒度遠(yuǎn)超這個輕描淡寫的說法。
更敏感的是bash命令字符串的捕獲。Claude Code里執(zhí)行的每條shell命令,完整內(nèi)容都會被記錄并傳輸,而非僅提取抽象元數(shù)據(jù)。這意味著文件路徑、環(huán)境變量、基礎(chǔ)設(shè)施細(xì)節(jié)都可能被包含在內(nèi)。
關(guān)鍵矛盾在于:這個層面的收集完全獨立于「是否共享提示詞」的用戶選擇。即使你拒絕了那個彈窗,命令執(zhí)行數(shù)據(jù)仍在流動。
第三層:提示詞共享的「溫水煮青蛙」
那個引發(fā)爭議的彈窗,實際上是第三層收集的開關(guān)。前兩層已經(jīng)在運行,這一層才把用戶的自然語言指令也納入進(jìn)來。
從產(chǎn)品設(shè)計角度,這種分層有其邏輯:先建立數(shù)據(jù)管道,再逐步擴(kuò)大范圍,降低用戶的感知沖擊。但從用戶視角,這是一種典型的「溫水煮青蛙」——當(dāng)你注意到問題時,青蛙已經(jīng)半熟了。
開發(fā)者的反應(yīng)很能說明問題。他沒有憤怒控訴,而是冷靜地「感覺不對勁」,然后動手驗證。這種技術(shù)層面的自我糾錯能力,恰恰是普通用戶不具備的。大多數(shù)人看到彈窗,要么隨手點同意,要么困惑地關(guān)閉,很少會追根溯源。
Vercel并非孤例。AI編碼工具的數(shù)據(jù)收集實踐普遍缺乏透明度,但Claude插件架構(gòu)的特殊性放大了風(fēng)險:系統(tǒng)上下文注入讓第三方獲得了近乎原生的信任地位,用戶幾乎無法建立有效的心理防線。
事件時間線還原
整個發(fā)現(xiàn)過程充滿偶然性。開發(fā)者當(dāng)時正在處理一個與Vercel無關(guān)的項目,Claude Code突然插入詢問。這個時機(jī)選擇本身就值得玩味——如果出現(xiàn)在Vercel部署流程中,用戶可能將其視為正常步驟;出現(xiàn)在無關(guān)場景,反而暴露了機(jī)制的侵入性。
他回溯代碼后確認(rèn)了多層收集結(jié)構(gòu):會話級元數(shù)據(jù)自動傳輸、命令字符串全量捕獲、提示詞可選共享。每一層的描述都用了相對溫和的措辭,但疊加后的數(shù)據(jù)畫像遠(yuǎn)比「匿名使用統(tǒng)計」豐富得多。
技術(shù)社區(qū)對此的反應(yīng)呈現(xiàn)分化。一部分開發(fā)者認(rèn)為,現(xiàn)代軟件遙測已成常態(tài),Vercel的做法并無特別出格之處;另一部分則擔(dān)憂,AI工具的特殊性在于它接觸的是用戶最原始的思考過程——提示詞往往是未經(jīng)修飾的意圖表達(dá),比傳統(tǒng)的點擊流數(shù)據(jù)敏感得多。
這種分歧本質(zhì)上是對「AI原生工具」信任邊界在哪里的爭論。傳統(tǒng)IDE收集的是「你做了什么」,AI編碼助手收集的是「你想做什么」。后者的心理侵入性更強,但現(xiàn)有的隱私框架并未充分區(qū)分這兩類數(shù)據(jù)。
架構(gòu)層面的結(jié)構(gòu)性問題
更值得追問的是Anthropic的插件設(shè)計本身。系統(tǒng)上下文注入機(jī)制賦予了第三方極高的權(quán)限,卻未提供對等的透明度保障。用戶無法直觀判斷某個交互來自核心系統(tǒng)還是插件,這種認(rèn)知模糊為濫用創(chuàng)造了空間。
Vercel插件的行為在技術(shù)上完全符合平臺規(guī)則——它利用了Anthropic提供的擴(kuò)展能力。但「合規(guī)」不等于「合理」,平臺規(guī)則與用戶預(yù)期之間的落差,正是爭議的核心。
開發(fā)者的調(diào)查方法也頗具象征意義:他用Claude Code分析Claude插件,展示了AI工具在審計層面的潛力,同時也暗示了這種能力的稀缺性。能動手查源代碼的人永遠(yuǎn)是少數(shù),大多數(shù)用戶只能依賴界面上的文字描述做判斷。
而界面描述恰恰是最不可靠的。「匿名使用數(shù)據(jù)」這個詞在隱私政策里出現(xiàn)過太多次,它的實際含義從「僅統(tǒng)計功能使用頻率」到「包含完整命令歷史」不等,完全取決于實現(xiàn)細(xì)節(jié)。
這次事件暴露的不僅是Vercel一家的實踐,更是AI工具生態(tài)中一個更廣泛的張力:當(dāng)AI成為操作系統(tǒng)的下一層抽象,誰來定義「系統(tǒng)」與「第三方」的邊界?當(dāng)插件可以偽裝成系統(tǒng)本身說話,用戶的知情同意還如何成立?
開發(fā)者最后沒有給出結(jié)論性的評判,只是記錄了「那感覺不對勁」的瞬間,以及驗證這種感覺的過程。這種克制的記錄本身,或許比任何道德指控都更有力量——它留下了一個開放的追問:當(dāng)AI工具越來越深地嵌入工作流,我們還能在多大程度上分辨,哪些交互是真正「原生」的,哪些是經(jīng)過精心設(shè)計的「注入」?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.