Claude 現在會給輸出打水印,但你的程式碼幾乎不受影響

Anthropic 開始給 Claude 的輸出打水印。它到底標記了什麼、為什麼生成的程式碼基本逃得掉、誰才真的能檢測到,以及為什麼你的 SEO 一點都不用動。

Anthropic 發布了一篇幫助文件,說明 Claude 如何標記 AI 生成的內容。不到一天,所有解讀就收斂成了一句話:Claude 現在會出賣你,凡是被代理動過的儲存庫都成了風險。

在大家最在意的那一點上,這個解讀是錯的。標記確實存在,覆蓋全球,而且不可關閉。它針對的也確實是散文,而程式碼恰恰是散文的反面。下面是真正上線的東西、這套機制用大白話講是怎麼回事、為什麼生成的程式碼是最糟糕的載體,以及為什麼那場 SEO 恐慌根本沒有依據。

Anthropic 到底交付了什麼

Anthropic 簽署了 EU AI Act 的 Code of Practice on Transparency of AI-Generated Content。這套標記就是那份承諾的技術落地,它有兩種完全不同的形態。

文字拿到的是統計水印。 一枚不可感知的印記,直接織進生成的文字本身。用 Anthropic 的原話說,它「把一枚不可感知的水印直接織進文字本身。你看不見它,它也不會改變 Claude 回覆的含義、品質或可讀性」。它能挺過複製貼上,並且「可能在某些編輯之後依然保留」。

檔案拿到的是簽名的來源後設資料。 當 Claude 生成一種受支援的檔案型別時,目前是 .svg.png.jpg,它會附上遵循 C2PA 開放標準的後設資料,也就是由 Adobe、Microsoft 和 BBC 支援的那套 Content Credentials 系統。

覆蓋範圍很廣,值得說精確,因為不少評論想當然地以為這只是歐盟限定或 Claude.ai 限定的措施:

模型2026 年 8 月 2 日及之後發布的所有模型,發布即帶標記
使用入口API、Claude web、Claude Code、Cowork、Tag
雲合作伙伴AWS、Google Cloud、Microsoft Foundry
地域全球,不只是歐盟

水印不是隱藏字元

這是最大的一個誤解,也是眼下流傳的建議有一半沒用的原因。

大家預設這枚印記是被塞進文字里的某種東西:一個零寬空格、一個不常見的 Unicode 變體、一種有辨識度的標點模式。順著這個假設,結論自然就是「丟進清洗工具跑一遍就沒事了」。這行不通,因為壓根沒有被塞進去的東西可清。

這枚印記,就是那些被選中的詞本身

圖解 Claude 隱形文字水印的工作原理:在每一步生成時,一把金鑰把候選 token 切分成受偏好的一組和其餘部分,當多個候選詞意思相當時模型就輸出受偏好組裡的 token,數百個 token 累積下來的這種失衡,最終成為可被檢測的統計訊號。

Anthropic 沒有公開自己的演算法,這是一個有意為之的選擇,後面會回來講。但他們描述的每一條性質(不可見、位於文字內部、挺得過複製貼上、需要足夠長的文字才讀得出來)都對得上已經公開的取樣偏置水印家族,也就是 Google SynthID-Text 背後的那套思路,以及在它之前的學術工作。

這個想法比聽上去簡單。模型每寫一步,都要從一組候選裡挑出下一個 token。很多時候幾個候選幾乎等價:迅速飛快敏捷 都說得通。一把金鑰把詞表切成受偏好的一組和其餘部分,只要偏過去不犧牲含義和品質,取樣就往受偏好的那組偏一點。

單獨一次這樣的選擇什麼也說明不了。純靠運氣,大約一半的 token 本來就會落在受偏好的那組裡。但在幾百個 token 的尺度上,這種失衡會累積成可以測量的東西,而握有金鑰的檢測器可以算出這段文字離隨機分佈有多遠。這個差距,就是全部的訊號。

由此直接得出兩個結論,它們都比機制本身更重要:

  • 長度是硬性條件。 一條推文或一條 commit message 攜帶不了可用的訊號。檢測器需要體量。
  • 換掉詞是唯一能抹掉它的辦法。 不是因為這招有多巧,而是因為詞就是印記本身。

為什麼生成的程式碼是最糟糕的載體

這正是那場恐慌跳過的部分。取樣水印是對選擇自由徵收的一種稅,只有在選擇存在的地方才收得上來。散文裡選擇遍地都是。程式碼則接近破產。

並排對比,說明為什麼 Claude 的文字水印能在散文裡存活、卻留不住在程式碼裡:散文每一段都提供幾十個近乎等價的用詞選擇,每一個都能承載水印的一部分,而程式碼裡的 token 被語法、已有的識別符號和函式簽名所固定,剩下那點自由選擇還會被 prettier、eslint、gofmt、black 和 rustfmt 這類格式化工具抹平。

拿一行再普通不過的程式碼來看:const user = await getUserById(id)

const 由這個檔案自身的約定決定。getUserById 根本不是選擇,它是程式碼庫裡已經存在的那個名字,任何「近乎等價」的替代都只會是一個 bug。await 由函式簽名強制。括號和引數由語法強制。真正自由的還剩什麼?一個區域性變數的命名,以及一條註釋的措辭。這就是全部的可用通道。

再對比一段散文,那裡幾乎每個實詞都有三四個可以互換的選項。差距不是一點點:一邊是每段幾十個可承載印記的位置,一邊是每個檔案只有寥寥幾個。

然後,工具鏈跑了起來。

格式化工具是具體的麻煩所在。prettiereslint --fixgofmtblackrustfmt 存在的意義,恰恰就是把取樣水印賴以承載訊號的那些近乎等價的表層選擇統一掉。對生成的程式碼跑一遍格式化,功能上等同於給水印做了一次洗白,而且沒有任何人是刻意為之。再加上評審時的修改、一次重新命名、一次重構,以及同一個檔案裡生成程式碼與人寫程式碼的交錯:殘留訊號被攤到那些本來就短得根本沒法測量的 diff 上。

誠實的保留意見,因為這是從機制推出來的結論,而不是一份已確認的豁免:Anthropic 沒有說程式碼被排除在外,沒有公開演算法,也沒有發布檢測器。Anthropic 之外沒有人能測出一個已提交的 .ts 檔案裡究竟還剩下多少。殘留風險最高的場景,是一個很長的生成檔案,原樣提交、沒跑過格式化、也從沒被人看過。如果這就是你的工作流程,水印是它帶來的問題裡最輕的一個,而我們關於代理寫的程式碼要不要審查的觀點,比這一篇更早適用於你。

什麼能抹掉它,以及誰真的能檢測到

Anthropic 在講清限制這件事上少見地直接,這一點值得記一筆。檢測到印記,意味著這段內容可能被 Claude 處理過。他們明確說了這不是定論。而沒有印記,什麼也證明不了。

圖解什麼會抹掉 Claude 的水印、以及誰能檢測到它:文字水印能挺過複製貼上、小幅修改和重新排版,但會被大幅改寫、轉述、翻譯、截圖和程式碼格式化工具抹掉;文字水印需要 Anthropic 的金鑰,所以第三方目前還無法驗證,而生成的 png、jpg 和 svg 檔案上的 C2PA 簽名後設資料用的是公鑰,今天任何人都能驗證,但只要圖片被重新編碼就會被剝掉。

檢測這個問題乾淨地一分為二,把這兩半混為一談,正是大多數糟糕解讀的來源。

檔案現在就能被任何人驗證。 C2PA 就是普通的密碼學簽名:私鑰簽名,公鑰驗證。任何人都能在 Content Credentials 閱讀器裡檢查一個生成的 .png,Google 也正把這項驗證推進到 Search、Lens 和 Chrome 裡。這裡沒有 Anthropic 的特權,而且這個簽名還有第二重作用:它會暴露檔案在生成之後是否被改動過。

文字不行,今天只有 Anthropic 讀得了。 檢測需要當初偏置取樣的那把金鑰。沒有它,這段文字在統計上和未標記的文字沒有區別。這就是現狀,也是「只有 Claude 能抓到你」這種反應的來源。

但這不是他們想要的終局。Anthropic 簽署的 Code of Practice 要求他們向第三方提供檢測能力,幫助文件也寫明他們正在推進讓使用者和第三方能夠檢測這些印記,文件隨後跟上。

之所以還沒上線,是一個真實的兩難,而不是拖延:公開一個檢測器,等於同時公開了抹掉印記的地圖。 給一個人一臺能給段落打分的神諭機,他就能反覆改寫,直到分數掉到閾值以下。Google 在 SynthID-Text 上面對過同樣的取捨,最後發布的檢測器在脫離配套模型的情況下很難被武器化。對 Anthropic 來說,最可能的結果是一套受控訪問的檢測 API,帶身份核驗和配額,而不是人人可用的一鍵檢測頁面。

幾乎沒人注意到的那個細節

印記作用於模型產出的文字。它不區分哪些是 Claude 自己想出來的,哪些只是 Claude 順手改過的。

讓 Claude 改一改你自己寫的段落的語法,輸出照樣帶水印。讓它把一段話收緊、翻譯一句話、或者把你自己的筆記整理乾淨,結論一樣。

這一點朝兩個方向切,而且比「醜聞」這種框架有意思得多。它削弱了大家擔心的那種指控場景,因為一次陽性檢測無法區分「這是 AI 寫的」和「這是人寫的、AI 潤色過」,而這兩句話完全不是一回事。它同時也意味著,任何打算把檢測當成作者歸屬證據的人,都建在沙子上。Anthropic 把命中描述為「可能被 Claude 處理過」,實際上已經承認了這一點。

這對 SEO 意味著什麼:什麼都不變

我們把這個站點的 SEO 完全擺在明面上做,所以對吵得最兇的那部分我們直說:這裡不存在排名風險。三個理由,層層疊加。

Google 並不因為內容由 AI 寫就處罰它。 政策一直沒動過:被制裁的是 scaled content abuse,也就是批次生產、毫無價值的頁面。判斷依據是品質和有用性,不是詞的來源。一篇真正好的文章,仍然是一篇真正好的文章。

何況 Google 根本讀不了這個水印。 它被一把 Anthropic 持有的金鑰鎖著。就算 Google 想把它當成排名訊號,也得先和 Anthropic 達成協議才能拿到。沒有任何這類訊息發布過,I/O 2026 上也沒有發布任何針對 AI 所寫文字的訊號。

真正上線的是媒體來源標註,而且它是一個標籤,不是一個因子。 Google 2026 年的工作覆蓋圖片、影片和音訊,走的是 SynthID 和 C2PA,讓使用者可以在 Search、Lens 和 Circle to Search 裡追問某張圖是不是 AI 生成的。這是給讀者的透明度,不是撬動排名的槓桿。

確實有一個真實的實際後果,而且它關乎你的圖片而不是你的文字。如果你發布由 Claude 生成的視覺素材,它們現在帶著 Content Credentials,Chrome 和 Search 會越來越有能力給它們打上標籤。效果不是降權,而是點選率和信任:一張被標為 AI 生成的頭圖,讀起來和一張照片不是一回事。

在有人過度設計應對方案之前,值得先知道:大多數圖片處理鏈路早就在沒人要求的情況下把 C2PA 抹掉了。 sharpnext/image、建置期壓縮、一個實時重新編碼的 CDN,全都會丟掉這些後設資料。在一個典型站點上,來源資訊在瀏覽器看到它之前很久就已經沒了。這個結果是雙刃的。它順手了結了標籤這個問題,但一旦用途落進監管範圍,刻意剝離來源資訊本身就成了合規問題;如果你要面向歐盟發布,這個問題應該和AI 輔助工作的 GDPR 一面放在一起看。

真正該做的事

清單很短,因為要做的事比討論的聲勢少得多。

  1. 程式碼這邊,什麼都不用做。 不需要清洗工具,不需要剝離器,不需要改工作流程。沒有東西可以移除,而你的格式化工具已經比你能加的任何工具做得更多。
  2. 繼續審查生成的程式碼,理由和以前完全一樣。水印一條也沒改變。
  3. 對圖片做一個有意識的決定。 如果你發布 Claude 生成的視覺素材,搞清楚你的處理鏈路是保留還是剝離 Content Credentials,並且讓它成為一個決定,而不是一個意外。
  4. 不要去追求給文字去水印。 唯一可靠的去除方式是自己把文字重寫一遍,而如果你打算自己重寫,這個問題早就自己回答了自己。
  5. 去擔心品質。 scaled content abuse 才是真正讓你掉排名的東西,而且早在任何水印出現之前,它就已經在讓人掉排名了。

這項措施是一份透明度義務,文件寫得誠實,連它自己的作者都小心地把限制一條條說了出來。它比輿論反應所暗示的要小得多,而對任何用代理交付程式碼的人來說,它幾乎等於什麼都沒發生。

如果你在有規模地跑代理,真正值得你關注的運營問題還是老那幾個:代理動過什麼,什麼被審查過,什麼上了線。這正是 AgentsRoom 存在的意義,把這部分變得看得見。

下載 AgentsRoom

在一個視窗中執行你所有專案的 AI 代理(Claude、Codex、Antigravity CLI、OpenCode、Aider、Grok Build、Mistral Vibe、Kimi Code)。

免費下載 AgentsRoom

配套應用:隨時隨地監控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

獲取擴充套件
Chrome Web Store

把 Bug 和需求直接傳送到您的公開待辦清單。

AgentsRoom 實際執行一瞥。

多專案管理
多供應商
多代理執行
實時狀態
檔案差異與提交
行動應用
實時預覽
代理團隊
瀏覽器自動化
Backlog 驅動開發
提示詞庫
技能庫
檢視所有功能

繼續閱讀