Claude dodaje znak wodny do wszystkiego, co pisze. Twojego kodu to prawie nie dotyczy.

Anthropic znakuje teraz odpowiedzi Claude. Co naprawdę jest oznaczane, dlaczego kod w dużej mierze tego unika, kto to wykryje i dlaczego SEO się nie zmienia.

Anthropic opublikował stronę pomocy o tym, jak Claude oznacza treści wygenerowane przez AI, i w niecałą dobę cała lektura zwęziła się do jednego zdania: Claude teraz na ciebie donosi, a każde repozytorium, którego dotknął agent, staje się ryzykiem.

Ta interpretacja jest błędna dokładnie w tym punkcie, na którym ludziom zależy najbardziej. Oznaczanie jest realne, obejmuje cały świat i nie jest opcjonalne. Celuje też w prozę, a proza to dokładnie to, czym kod nie jest. Poniżej: co faktycznie zostało wdrożone, jak działa ten mechanizm w prostych słowach, dlaczego wygenerowany kod jest jego najgorszym możliwym nośnikiem i dlaczego panika wokół SEO nie ma żadnych podstaw.

Co Anthropic naprawdę wdrożył

Anthropic podpisał Code of Practice on Transparency of AI-Generated Content z EU AI Act. Oznaczanie jest techniczną stroną tego zobowiązania i przybiera dwie różne formy.

Tekst dostaje statystyczny znak wodny. Niewyczuwalny znak wpleciony w sam wygenerowany tekst. Słowami Anthropic: „wplata niewyczuwalny znak wodny bezpośrednio w sam tekst. Nie zobaczysz go i nie zmienia on znaczenia, jakości ani czytelności odpowiedzi Claude”. Przetrwa kopiowanie i wklejanie oraz „może przetrwać część edycji”.

Pliki dostają podpisane metadane o pochodzeniu. Kiedy Claude generuje obsługiwany typ pliku, dziś .svg, .png i .jpg, dołącza do niego metadane zgodne z otwartym standardem C2PA, tym samym systemem Content Credentials wspieranym przez Adobe, Microsoft i BBC.

Zasięg jest szeroki i warto podać go precyzyjnie, bo spora część komentarzy zakładała, że to środek ograniczony do Unii Europejskiej albo do Claude.ai:

ModeleWszystko, co wypuszczono 2 sierpnia 2026 lub później, oznaczane od premiery
PowierzchnieAPI, Claude web, Claude Code, Cowork, Tag
Partnerzy chmurowiAWS, Google Cloud, Microsoft Foundry
Zasięg geograficznyCały świat, nie tylko Unia Europejska

Znak wodny to nie ukryty znak specjalny

To największe pojedyncze nieporozumienie i powód, dla którego połowa krążących teraz porad jest bezużyteczna.

Ludzie zakładają, że znak to coś wstawionego do tekstu: spacja o zerowej szerokości, nietypowy wariant Unicode, charakterystyczny wzorzec interpunkcji. To założenie prowadzi prosto do „wystarczy przepuścić tekst przez czyszczarkę i po sprawie”. To nie działa, bo nie ma tam nic wstawionego do wyczyszczenia.

Znakiem jest to, które słowa zostały wybrane.

Schemat wyjaśniający, jak działa niewidoczny tekstowy znak wodny Claude oparty na stronniczym wyborze tokenów: na każdym kroku generowania tajny klucz dzieli tokeny kandydujące na grupę uprzywilejowaną i całą resztę, model emituje token z grupy uprzywilejowanej, gdy kilku kandydatów jest równoważnych, a nierównowaga nagromadzona na przestrzeni setek tokenów staje się wykrywalnym sygnałem statystycznym.

Anthropic nie opublikował swojego algorytmu i jest to świadomy wybór, do którego jeszcze wrócimy. Ale każda opisana przez nich właściwość (niewidoczny, wewnątrz tekstu, przetrwa kopiowanie i wklejanie, wymaga odpowiedniej ilości tekstu, żeby dało się go odczytać) pasuje do opublikowanej rodziny znaków wodnych opartych na stronniczym próbkowaniu, czyli do podejścia stojącego za SynthID-Text od Google i za pracami akademickimi, które je poprzedziły.

Pomysł jest prostszy, niż brzmi. Za każdym razem, gdy model pisze, wybiera kolejny token ze zbioru kandydatów. Bardzo często kilku kandydatów jest niemal równoważnych: szybki, prędki, rączy, chyży sprawdzają się tak samo. Tajny klucz dzieli słownik na grupę uprzywilejowaną i całą resztę, a sampler przechyla się w stronę tej pierwszej zawsze wtedy, gdy przechylenie nic nie kosztuje w sensie znaczenia ani jakości.

Pojedynczy taki wybór nie mówi nic. Sam przypadek umieściłby mniej więcej połowę tokenów w grupie uprzywilejowanej. Ale na przestrzeni kilkuset tokenów nierównowaga urasta do czegoś, co da się zmierzyć, a detektor mający klucz potrafi obliczyć, jak daleko tekst leży od tego, co dałby przypadek. Ta różnica to cały sygnał.

Wynikają z tego bezpośrednio dwie konsekwencje i obie liczą się bardziej niż sam mechanizm:

  • Długość jest twardym wymogiem. Tweet albo komunikat commita nie niesie żadnego użytecznego sygnału. Detektor potrzebuje objętości.
  • Zmiana słów to jedyna rzecz, która go usuwa. Nie dlatego, że to sprytny trik, ale dlatego, że słowa tym znakiem.

Dlaczego wygenerowany kod jest najgorszym możliwym nośnikiem

Tu jest to, co panika pominęła. Znak wodny oparty na próbkowaniu jest podatkiem od swobody wyboru i można go pobrać tylko tam, gdzie ta swoboda istnieje. Proza jest w nią bogata. Kod jest bliski bankructwa.

Zestawienie obok siebie pokazujące, dlaczego tekstowy znak wodny Claude przetrwa w prozie, ale nie w kodzie: proza daje dziesiątki niemal równoważnych wyborów słów na akapit, a każdy z nich może nieść fragment znaku wodnego, podczas gdy tokeny kodu są narzucone przez składnię, istniejące identyfikatory i sygnatury funkcji, a formatery takie jak prettier, eslint, gofmt, black i rustfmt normalizują tę resztkę swobody, która jeszcze została.

Weźmy jedną zupełnie zwyczajną linię: const user = await getUserById(id).

const narzucają konwencje samego pliku. getUserById to w ogóle nie jest wybór, to nazwa, która już istnieje w bazie kodu, a jakikolwiek niemal równoważny odpowiednik byłby po prostu błędem. await wymusza sygnatura funkcji. Nawiasy i argument wymusza składnia. Co jest tu naprawdę wolne? Nazwa zmiennej lokalnej i sformułowanie komentarza. To cały dostępny kanał.

Porównaj to teraz z akapitem prozy, w którym niemal każde słowo znaczące ma trzy albo cztery wymienne alternatywy. Różnica nie jest marginalna: to różnica między dziesiątkami miejsc nośnych na akapit a garstką na cały plik.

A potem przejeżdża po tym pipeline.

Formatery są tu konkretnym problemem. prettier, eslint --fix, gofmt, black, rustfmt istnieją po to, żeby normalizować dokładnie te niemal równoważne wybory powierzchniowe, których znak wodny używa jako nośnika. Puszczenie formatera po wygenerowanym kodzie jest funkcjonalnie praniem znaku wodnego, choć nikt tego tak nie zaplanował. Dorzuć poprawki z code review, zmianę nazwy, refaktor i przeplatanie wygenerowanego kodu z ludzkim w tym samym pliku, a resztka rozłoży się po diffach i tak zwykle o wiele za krótkich, żeby cokolwiek na nich zmierzyć.

Uczciwe zastrzeżenie, bo to argument z mechaniki, a nie potwierdzone wyłączenie: Anthropic nie powiedział, że kod jest wykluczony, nie opublikował algorytmu i nie wydał detektora. Nikt poza Anthropic nie zmierzy, co naprawdę zostaje w zacommitowanym pliku .ts. Scenariusz z największą resztkową ekspozycją to długi wygenerowany plik, zacommitowany bez zmian, bez formatowania i nigdy nieprzejrzany. Jeśli tak wygląda twój workflow, znak wodny jest najmniejszym z problemów, które on tworzy, a nasze stanowisko w sprawie przeglądania kodu pisanego przez agentów obowiązuje na długo przed tym.

Co go kasuje i kto naprawdę potrafi go wykryć

Anthropic jest nietypowo bezpośredni w kwestii ograniczeń i warto mu to zapisać na plus. Wykryty znak oznacza, że treść być może została przetworzona przez Claude. Wprost nie jest to rozstrzygające. A brak znaku nie dowodzi zupełnie niczego.

Schemat pokazujący, co kasuje znak wodny Claude i kto potrafi go wykryć: tekstowy znak wodny przetrwa kopiowanie i wklejanie, drobne poprawki oraz przelewanie akapitu, ale kasuje go gruntowne przepisanie, parafraza, tłumaczenie, zrzut ekranu i formatery kodu; tekstowy znak wodny wymaga tajnego klucza Anthropic, więc podmioty trzecie nie mogą go jeszcze zweryfikować, podczas gdy podpisane metadane C2PA w wygenerowanych plikach png, jpg i svg korzystają z klucza publicznego, każdy może je sprawdzić już dziś, ale usuwa je każde ponowne kodowanie obrazu.

Pytanie o wykrywanie dzieli się czysto na dwa i to mieszanie tych połówek wyprodukowało większość chybionych analiz.

Pliki da się publicznie zweryfikować już teraz. C2PA to zwykłe podpisywanie kryptograficzne: klucz prywatny podpisuje, klucz publiczny weryfikuje. Każdy może sprawdzić wygenerowany plik .png w przeglądarce Content Credentials, a Google wdraża tę weryfikację w Search, Lens i Chrome. Nie ma tu żadnego przywileju Anthropic, a podpis pełni podwójną rolę, bo ujawnia też, czy plik został zmieniony po wygenerowaniu.

Tekstu nie da się, i dziś potrafi go odczytać wyłącznie Anthropic. Wykrywanie wymaga tajnego klucza, który zniekształcił próbkowanie. Bez niego tekst jest statystycznie nieodróżnialny od tekstu nieoznaczonego. Taki jest stan obecny i stąd bierze się reakcja „tylko Claude może cię złapać”.

Ale to nie jest zamierzony stan docelowy. Code of Practice podpisany przez Anthropic zobowiązuje ich do udostępnienia wykrywania podmiotom trzecim, a strona pomocy mówi, że pracują nad tym, by użytkownicy i podmioty trzecie mogli wykrywać te znaki, a dokumentacja ma się pojawić później.

Powód, dla którego to jeszcze nie wyszło, jest prawdziwym dylematem, a nie graniem na zwłokę: opublikowanie detektora to zarazem opublikowanie mapy usuwania znaku. Daj komuś wyrocznię, która punktuje fragment tekstu, a przepisze go w pętli, aż wynik spadnie poniżej progu. Google zmierzył się z tym samym kompromisem przy SynthID-Text i wydał detektor, który trudno obrócić w broń bez otaczającego go modelu. Najbardziej prawdopodobny finał dla Anthropic to API wykrywania z kontrolowanym dostępem, z weryfikacją kont i limitami, a nie publiczny checker na jedno kliknięcie.

Szczegół, który prawie nikomu nie wpadł w oko

Znak obejmuje tekst, który model wyprodukował. Nie rozróżnia tekstu, który Claude wymyślił, od tekstu, którego Claude jedynie dotknął.

Poproś Claude o poprawienie gramatyki w akapicie, który sam napisałeś, a wynik będzie nosił znak wodny. Poproś o zwięźlejszą wersję akapitu, o przetłumaczenie zdania albo o uporządkowanie twoich własnych notatek: dzieje się to samo.

Tnie to w obie strony i jest ciekawsze, niż sugeruje ramka skandalu. Osłabia scenariusz oskarżenia, którego ludzie się boją, bo pozytywne wykrycie nie odróżni „napisała to AI” od „napisał to człowiek, a AI to wygładziła”, a te dwa zdania nie znaczą nawet w przybliżeniu tego samego. Oznacza też, że każdy, kto planuje traktować wykrycie jako dowód autorstwa, buduje na piasku. Anthropic w praktyce to przyznaje, opisując trafienie jako „być może przetworzone przez Claude”.

Co to zmienia dla SEO: nic

Prowadzimy SEO tej strony na widoku, więc powiedzmy wprost, jak jest z częścią, która narobiła najwięcej hałasu. Nie ma tu żadnego ryzyka dla pozycji. Trzy powody, jeden na drugim.

Google nie karze treści pisanych przez AI jako takich. Polityka się nie ruszyła: karany jest scaled content abuse, czyli strony produkowane masowo i bez wartości. Ocena dotyczy jakości i użyteczności, a nie pochodzenia słów. Naprawdę dobry artykuł pozostaje naprawdę dobrym artykułem.

Google i tak nie potrafi odczytać tego znaku wodnego. Jest zamknięty kluczem, który trzyma Anthropic. Nawet gdyby Google chciał mieć z niego sygnał rankingowy, potrzebowałby porozumienia z Anthropic, żeby go zdobyć. Nic takiego nie zostało ogłoszone i na I/O 2026 nie ogłoszono też żadnego sygnału wymierzonego w tekst pisany przez AI.

To, co naprawdę zostało wdrożone, to pochodzenie mediów, a jest to etykieta, nie czynnik rankingowy. Prace Google w 2026 obejmują obrazy, wideo i audio przez SynthID oraz C2PA, wystawione tak, by użytkownik mógł zapytać, czy obraz jest wygenerowany przez AI, w Search, Lens i Circle to Search. To przejrzystość dla czytelnika, nie dźwignia pozycji.

Jest jedna realna, praktyczna konsekwencja i dotyczy ona twoich obrazów, a nie tekstu. Jeśli publikujesz grafiki wygenerowane przez Claude, noszą one teraz Content Credentials, a Chrome i Search będą je coraz częściej potrafiły oznaczyć. Efektem nie jest spadek pozycji, tylko CTR i zaufanie: obraz nagłówkowy oznaczony jako wygenerowany przez AI czyta się inaczej niż fotografia.

Warto o tym wiedzieć, zanim ktoś przeinżynieruje odpowiedź: większość pipeline'ów obrazkowych i tak już usuwa C2PA, choć nikt ich o to nie prosił. sharp, next/image, kompresja na etapie builda, CDN przekodowujący w locie: wszystkie gubią te metadane. Na typowej stronie pochodzenie znika na długo przed tym, zanim zobaczy je przeglądarka. To wynik obosieczny. Załatwia kwestię etykietowania przez przypadek, ale celowe usuwanie danych o pochodzeniu samo staje się problemem zgodności w chwili, gdy zastosowanie jest regulowane, a jeśli wypuszczasz produkt do Unii Europejskiej, to pytanie stoi obok wątku RODO w pracy wspieranej przez AI.

Co naprawdę zrobić

Krótka lista, bo jest mniej do zrobienia, niż sugeruje dyskusja.

  1. Nic, jeśli chodzi o kod. Żadnej czyszczarki, żadnego strippera, żadnej zmiany w workflow. Nie ma czego usuwać, a twój formater robi już więcej niż jakiekolwiek narzędzie, które mógłbyś dołożyć.
  2. Przeglądaj dalej wygenerowany kod, z powodów, które obowiązywały już wcześniej. Znak wodny nie zmienia żadnego z nich.
  3. Podejmij świadomą decyzję w sprawie obrazów. Jeśli publikujesz grafiki wygenerowane przez Claude, wiedz, czy twój pipeline zachowuje, czy usuwa Content Credentials, i zrób z tego decyzję, a nie przypadek.
  4. Nie goń za usuwaniem znaku wodnego z tekstu. Jedyne pewne usunięcie polega na przepisaniu tekstu samodzielnie, a jeśli przepisujesz go samodzielnie, pytanie odpowiedziało już sobie samo.
  5. Martw się zamiast tego o jakość. Scaled content abuse jest tym, co realnie kosztuje pozycje, i kosztowało je na długo przed istnieniem jakiegokolwiek znaku wodnego.

Ten środek jest obowiązkiem przejrzystości, uczciwie udokumentowanym, z ograniczeniami, które jego własny autor starannie wymienia. To wydarzenie znacznie mniejsze, niż sugeruje reakcja, a dla każdego, kto wypuszcza kod z agentami, jest bardzo bliskie nie-wydarzeniu.

Jeśli uruchamiasz agentów na jakąkolwiek skalę, warte twojej uwagi pytania operacyjne pozostają te stare: czego agenci dotknęli, co zostało przejrzane i co poszło na produkcję. To właśnie tę część AgentsRoom istnieje po to, żeby uczynić widoczną.

Pobierz AgentsRoom

Uruchamiaj swoich agentów AI (Claude, Codex, Antigravity CLI, OpenCode, Aider, Grok Build, Mistral Vibe, Kimi Code) na wszystkich projektach z jednego okna.

Za darmoPobierz AgentsRoom

Aplikacja towarzyszaca: monitoruj agentów w podrozy

Użyj Claude, Codex, Antigravity CLI lub innego dostawcy AI.

Zainstaluj rozszerzenie
Chrome Web Store

Wysyłaj bugi i prośby bezpośrednio do swojego publicznego backlogu.

Spojrzenie na AgentsRoom w akcji.

Wiele projektów
Multi-provider
Wielu agentów
Status na żywo
Diff i commit
Aplikacja mobilna
Podgląd na żywo
Zespoły agentów
Testy w przeglądarce
Dev oparta na backlogu
Biblioteka promptów
Biblioteka umiejętności
Zobacz wszystkie funkcje

Czytaj dalej