我说「机器可读标记不归我管」,结果它已经管上了

Hello,我是飞飞。
上个月写欧盟 AI 内容标注那篇,我说了一句「机器可读标记压根不归我管」,当时觉得挺利索。
七月三十一号发出去,八月十四号 Anthropic 出了一篇 FAQ。我重读那句话,感觉有点刺。
它已经管上了。
水印究竟是什么
先把这件事说清楚,「水印」这个词容易让人想到银行票据上那种一眼能看见的图案。Claude 的水印完全不是那回事。
大语言模型每次生成文字都是一个字一个字往外选的。每次选词,它面前摆着一排候选词:「阴沉」「灰暗」「乌云密布」,意思差不多的好几个可选。选哪个,以前靠一个任意的随机数决定,现在靠一串从密钥生成的伪随机序列决定。
Anthropic 拿着密钥,事后能检验这篇文字的选词模式是不是和密钥对得上。对得上,就说明这篇可能是 Claude 写的。
对读者来说没任何区别。意思、流畅度、创意,全都不变。Google DeepMind 用 Gemini 的真实流量做过 A/B 测试,有水印和没水印两组用户的点赞踩踩比例没有统计显著差异。人工评分员两篇放在一起比,也挑不出哪篇是哪篇。
有个类比我觉得说得准:大富翁棋盘游戏里,骰子本来是真骰子,现在换成翻 π 小数的某一段来决定步数。游戏结果没变,但如果你知道是从 π 哪一位开始的,就能反推「这局棋大概率用的是 π 骰子」。
它管不管你
说真的,这件事在程序员圈子里引发了一波小恐慌。「我用 Claude 写的代码,会不会被检测到是 AI 写的?」「公司用 Claude 写的文档,会不会被平台判为 AI 内容?」
Anthropic 的 FAQ 对这两个问题回答得很直接。
代码基本不受影响。 水印只附着在「选哪个词都行」的位置。代码里绝大多数地方不存在这种随便选的空间:return 后面就得跟 return,变量名拼错了就是错的,逻辑分支错了就跑不起来。所以代码本体几乎没有水印落脚的地方。例外是注释,注释用自然语言写,里面就可能有。
我在 Claude Code 里跑的那些 skill,每次生成的 Python 脚本,代码本体大概率是干净的。但如果 Claude 顺手给函数写了一行中文注释,那行注释里可能就带着水印。这个区别以前我没想过。
轻改留水印,彻底重写没有。 改几个词、调整一下语序,统计模式大概率还在。把每个词都换掉重写一遍,就没有了。Anthropic 在这里加了一句我觉得很实诚的话:「那时候你还能说这是 AI 写的吗?」
不含任何用户信息。 密钥在 Anthropic 那边,水印只能说明「Claude 参与过这篇内容的生成」,连是哪个账号生成的都说不出来,更不要说在哪台设备、哪个会话里生成的。这个设计我觉得是刻意的,走另一个方向会很麻烦,比如「这段文字是某某用户某年某月某日在某个对话里生成的」,那才是真的隐私问题。
短文本也不可靠。只有几十个词的文本,Claude 根本没多少「随便选」的机会,置信度会很低。Anthropic 说得很清楚:文字越长,越能判断。一条 tweet 长度的文字,基本判不出来。
我每天发的内容怎么算
这是我最关心的那个问题。我这条流水线的工作方式是:researcher 搜资料,writer 写初稿,polisher 改 AI 味,我过一遍之后发出去。
按 Anthropic 的判定方式,这篇内容带水印。有大量的词是 Claude 选的,不管后来被改了几次,只要没有全部替换过,模式就还在。
有意思的地方在这儿:polisher 阶段会把 AI 味最浓的句子改掉,换成更像人写的措辞。这一步在降 AI 味的同时,也顺带稀释了水印里的统计模式。但「稀释」不等于「消失」,除非每个词都换。大概是五分之一到三分之一的词被动过,水印置信度肯定下降,但大概率还在。
但这里有个很重要的事我想说清楚:水印说的是「Claude 写了这篇」,不是「这篇是假的」,也不是「这篇没有人工审阅」。
我那条流水线里,选题是我来的,发布前全文我过一遍,出了问题我来扛。这条线我在欧盟那篇写过,现在还是这条线,水印的出现没有改变它。
有时候我会想,水印到底是谁的需求。Anthropic 说是合规,EU AI Act 要求 AI 内容必须有机器可读标记,他们签了那个自愿承诺书。但他们不只在欧盟用户上开启,而是全球一刀切,理由是「暂时还没有稳定的按地区限制的方法」。全球一刀切这件事,我倒觉得某种程度上更干净。不然就有「欧盟用户被标记,其他人不被标记」这种双轨情况,反而更乱。
水印检测 API 还在开发中,Anthropic 说「即将推出」,但还没有。等它出来,任何人拿这篇文章去跑一下,大概会看到「Claude 参与了这篇内容的生成」的信号。这个结果是真的。
不过有一件事让我有点在意,跟我自己关系不大,是关于下游用这套检测的那些人。
没写出来的那半个问题
Anthropic 在 FAQ 里明确说,水印不能区分「Claude 写的」和「Claude 大幅改写了人写的」。翻译稿是带水印的,因为每个词都是 Claude 选的。但一篇 Claude 只动了几处语法的人写稿,基本不带,因为几乎没有 Claude 选词的空间。
这个设计是对的,因为机理决定了它就只能这样。
但问题在于,这个「可能是 Claude 写的」的概率信号,到了下游(学校、招聘平台、发布平台),会以什么姿态被使用,Anthropic 控制不了。
Anthropic 自己把这件事写进了 FAQ:「检测到水印不能证明内容是 AI 生成的,检测不到水印也不能证明内容不是 AI 生成的。」这句话很诚实。但这句话只在 FAQ 里,不会自动出现在任何一个使用了他们检测 API 的产品的判定页面上。
说真的,我不知道这个担忧是不是多余的。也许检测 API 的使用场景根本到不了那里。但既然想到了,写出来总比不写强。
我现在怎么看这件事
欧盟那篇最后那段,我问了读者一个问题:你发出去的那些 AI 参与写的东西,最后过手的那道关口设在哪儿?
这个问题我自己的回答没变。水印管的是「这篇有没有 Claude 的参与痕迹」,关口管的是「这篇出了问题谁来扛」。这是两件事,它们不互相取消。
上次我说「机器可读标记不归我管」,说的是欧盟那条义务是上游的事,我不需要在自己的文章里加什么标记。这一点没变。Anthropic 确实在模型层处理这件事,我不需要也做不到在自己这里加或者不加。
但我说那句话的时候,把「这事和我没关系」当成了结论。这个结论现在有点错位。我在关系里处于一个什么位置,我之前没说清楚。
这篇就是补那半句话的。
还有一件事说一下:目前这套水印是从 2026 年 8 月 2 日之后发布的新模型开始全量开的。旧模型有欧盟过渡期,Anthropic 在逐步补。所以你现在用的如果是较早的 Claude 版本,暂时还没有水印,但迟早会有。
你们那边怎么看?用 Claude 写东西然后发出去,你会在意有水印这件事吗,还是无所谓?