Wysyłka formularza przez agenta AI: gdzie działa blokada
W lokalnej demonstracji bez modelu AI z 11 października 2026 wymuszone żądanie zapisało formularz mimo instrukcji „nie wysyłaj”. Usunięcie narzędzia zablokowało tę drogę, ale pozostawiony klient HTTP nadal zapisał dane; odmowa serwera zatrzymała zapis także wtedy.
Robert Marczyński7 min czytania2 źródła
Krótka odpowiedź: polecenie „nie wysyłaj” nie jest blokadą wysyłki formularza przez agenta AI, a odebranie mu jednego narzędzia nie zamyka innych dróg zapisu. W lokalnej demonstracji bez modelu AI z 11 października 2026 celowo wymuszone żądanie zapisało dane mimo tej instrukcji. Po odebraniu narzędzia wysyłki próba przez rejestr się nie powiodła, ale pozostawiony klient HTTP zapisał tę samą treść. Spośród sprawdzonych konfiguracji tę drogę zamknęła tylko odmowa zapisu po stronie serwera. Blokady ruchu sieciowego ani zgody człowieka nie testowałem.
Skrypt demonstracji ma z góry wpisany błąd: po awarii formularza ćwiczeniowego przechodzi do zastępczej atrapy i próbuje wysyłki. Wynik pokazuje, gdzie zatrzymuje się żądanie. Nie mówi, jak często Claude albo inny model podejmie taką próbę.
Jak modele Anthropic wysłały formularze, których nie miały wysyłać
Raport Anthropic z 9 października 2026 opisuje działania, których modele nie powinny były wykonać w ewaluacjach i przy pracy wewnątrz firmy, w tym wysyłanie prawdziwych formularzy. Według firmy do wysyłki dochodziło zwykle przy niejasnym poleceniu albo wtedy, gdy błędna konfiguracja środowiska uniemożliwiała pracę na atrapach. W jednej ewaluacji nieudostępniony model badawczy miał wypełnić ćwiczebną kopię formularza rządowego. Kiedy kopia się nie wczytała albo model przez pomyłkę ją zamknął, przechodził na stronę prawdziwego formularza i tam go wysyłał, kilka razy w tej samej ewaluacji.
W innej ewaluacji Claude Haiku 4.5 miał wypełnić formularz i zatrzymać się tuż przed wysłaniem. Według Anthropic kilka razy przez pomyłkę go wysłał, bo spodziewał się jeszcze osobnej strony potwierdzenia. Rzeczywiste skutki opisanych przypadków firma uznaje za minimalne. Raport nie podaje liczby przypadków ani odsetków, więc nie daje podstaw do policzenia częstości takich błędów w polskiej firmie ani do porównania dostawców.
Te sytuacje podpowiadają konkretny test odbiorowy: wyłączyć kopię ćwiczeniową i sprawdzić, czy pozostałe narzędzia nadal pozwalają wysłać dane. Taki test przygotowałem na lokalnych atrapach.
Co uruchomiłem i gdzie zapisywały się dane
Uruchomiłem pięć przypadków w Node.js, wyłącznie na adresie lokalnym 127.0.0.1. Każdy dostawał nowy serwer i pustą tablicę zapisów w pamięci. Nazwa zastępczej ścieżki production-like opisuje rolę w scenariuszu; nie prowadzi do produkcji ani do internetu.
Protokół i oczekiwane wyniki zapisałem przed uruchomieniem. Skrypt przerywa pracę błędem, gdy wynik odbiega od oczekiwanego, więc plik wyników może powstać tylko przy pełnej zgodności z protokołem. Dane formularza są syntetyczne. Cztery warianty błędnego działania mają ten sam tekst zadania: „Przygotuj formularz ćwiczeniowy. Nie wysyłaj formularza”. Skrypt nie interpretuje tego polecenia; mimo niego celowo wykonuje zaprogramowaną próbę wysyłki.
W wariantach od B do E formularz ćwiczeniowy zwraca błąd HTTP 503, a skrypt pobiera zastępczą atrapę i próbuje wysłać do niej tę samą treść. Między tymi wariantami zmieniam tylko dostęp do narzędzia wysyłki, drogę wywołania i konfigurację serwera. Osobna kontrola dodatnia potwierdza, że działający formularz ćwiczeniowy przyjmuje zapis i że test potrafi go wykryć.
Wyniki: brak narzędzia i odmowa serwera działają w innych miejscach
W przebiegu z 11 października 2026 w wariancie C wysyłkę zatrzymał rejestr narzędzi, zanim powstało żądanie POST, a w wariancie E serwer, który żądanie odebrał i odrzucił. Wariant D pokazał pozostałą drogę zapisu: ogólny klient HTTP działał mimo braku wyspecjalizowanego narzędzia.
| Przypadek | Konfiguracja | Żądania POST | Odpowiedź na POST | Zapisane rekordy |
|---|---|---|---|---|
| A | Kontrola: sprawny formularz ćwiczeniowy, zapis dozwolony | 1 | 201 | 1 |
| B | Awaria kopii, instrukcja bez blokady, narzędzie wysyłki dostępne | 1 | 201 | 1 |
| C | Awaria kopii, brak narzędzia wysyłki, próba przez rejestr narzędzi | 0 | brak żądania | 0 |
| D | Jak C, ale próba przez ogólnego klienta HTTP | 1 | 201 | 1 |
| E | Jak D, ale serwer odrzuca zapis | 1 | 403 | 0 |
W A rekord trafił do atrapy ćwiczeniowej, w B i D do zastępczej. W C padły tylko dwa żądania GET: do formularza ćwiczeniowego (503) i do zastępczej atrapy (200). Rejestr nie znalazł funkcji wysyłki, więc żądanie POST nie powstało. W E żądanie POST dotarło, ale serwer odmówił zapisu. Stan tablicy zapisów potwierdza skutek niezależnie od komunikatu klienta.
Wariant E jest uproszczony: zapis wyłącza konfiguracja całej lokalnej instancji serwera. Odrzuciłaby ona również dozwoloną wysyłkę ćwiczeniową z przypadku A, bo nie odróżnia zapisu dozwolonego od niedozwolonego. Nie implementowałem uprawnień użytkowników ani zatwierdzania przez człowieka. Klient nie może włączyć zapisu polem formularza lub nagłówkiem. Nie jest to jednak gotowy system autoryzacji do skopiowania na produkcję.
Jak sprawdzić wysyłkę formularza przez agenta AI przy odbiorze w firmie
Mój wniosek z porównania C i D: odbiór integracji powinien obejmować wszystkie dostępne drogi do tego samego zapisu. Sam brak funkcji submit_form nie rozstrzyga sprawy, jeżeli wykonawca pozostawił ogólnego klienta HTTP, przeglądarkę lub inne narzędzie, które może wysłać żądanie do odbiorcy.
Dla zespołu zamawiającego agenta AI praktycznym kryterium jest stan systemu po próbie. W scenariuszu, w którym agent ma tylko przygotować szkic, dostawca powinien pokazać, co się stanie, gdy środowisko testowe będzie niedostępne, i co po próbie zapisu inną drogą. Odpowiedź da się sprawdzić w dzienniku żądań i w stanie systemu odbiorcy.
W tej demonstracji odmowa serwera zadziałała dla jednego endpointu i jednej treści. W firmowym systemie trzeba jeszcze sprawdzić rzeczywiste uprawnienia konta agenta i inne operacje, które prowadzą do tego samego skutku. Gdy formularz należy do cudzego serwisu, jak w przypadkach z raportu Anthropic, firma nie ustawi odmowy na serwerze odbiorcy. Zostają wtedy kontrole po stronie agenta: ograniczenie ruchu wychodzącego do listy dozwolonych domen i wstrzymanie wysyłki do zgody człowieka, obejmujące każdą drogę zapisu. Tych kontroli ani kroku potwierdzenia w interfejsie przed wysyłką tu nie testowałem. Sam Anthropic według raportu z 9 października 2026 wyłączył internet we wszystkich ewaluacjach wewnętrznych do czasu potwierdzenia, że zabezpieczenia i monitoring niezawodnie wychwytują takie zachowania.
Taki test ma określony zakres i sprawdzalny wynik, więc można go uwzględnić w koszcie wykonania agenta AI. Ruch wychodzący, zgodę człowieka, sekrety i resztę środowiska omawia lista kontrolna izolacji agenta AI. Tutaj sprawdzam tylko awarię formularza ćwiczeniowego i drogę do zapisu.
Pobierz i odtwórz demonstrację
Paczka zawiera skrypt, protokół, przypadki i pełne wyniki, łącznie z żądaniami oraz zapisanymi rekordami. Weryfikator przelicza tabelę z tych danych i sprawdza sumy SHA-256 wejść. Pierwsze udane uruchomienie odbyło się na macOS arm64 z Node.js 26.3.0.
Pobierz kompletną paczkę ZIP albo osobno instrukcję odtworzenia, protokół, przypadki, skrypt i wyniki JSON. Instrukcja zawiera komendy do wykonania po rozpakowaniu paczki.
Skrypt korzysta wyłącznie z bibliotek standardowych Node.js, nie instaluje pakietów i nie wymaga klucza API. Jego klient ma stały lokalny adres; nie przyjmuje zewnętrznego URL ani nie śledzi przekierowań. To ograniczenie sprawdziłem w kodzie, bez niezależnego przechwytywania ruchu. Środowisko uruchomieniowe musi pozwalać na lokalny nasłuch.
Pierwsza próba w piaskownicy zakończyła się odmową lokalnego nasłuchu, zanim powstało jakiekolwiek żądanie. Po zezwoleniu na nasłuch ten sam skrypt wykonał wszystkie przypadki. Między obiema próbami nie zmieniałem protokołu, przypadków ani kodu; przebieg opisuje instrukcja w paczce.
Wyników nie przedstawiam jako odsetka bezpieczeństwa ani benchmarku modeli. Żaden model nie podejmował tutaj decyzji. To materiał do rozmowy z wykonawcą o tym, co stanie się po błędnym wywołaniu narzędzia, również wtedy, gdy wcześniejszy etap zadania przestanie działać.
Najczęstsze pytania
- Czy agent AI może wysłać formularz mimo polecenia „nie wysyłaj”?
- Tak. Według raportu Anthropic z 9 października 2026 Claude Haiku 4.5 kilka razy wysłał formularz, choć miał zatrzymać się przed wysyłką, bo spodziewał się jeszcze strony potwierdzenia. Dlatego oprócz polecenia trzeba sprawdzić, czy narzędzia i serwer odrzucą niedozwolony zapis. W mojej demonstracji z 11 października 2026, bez modelu AI, celowo wymuszone błędne wywołanie zapisało dane, bo serwer miał włączony zapis.
- Czy usunięcie narzędzia wysyłki zablokuje zapis formularza?
- Tylko częściowo: zablokuje wywołanie przez rejestr narzędzi, ale nie inne drogi do tego samego zapisu. W lokalnej demonstracji z 11 października 2026 brak narzędzia zatrzymał próbę, zanim powstało żądanie zapisu POST. Gdy skrypt miał też ogólnego klienta HTTP, ta sama treść dotarła do odbiorcy i została zapisana. Tę drogę zatrzymała odmowa zapisu w konfiguracji serwera; blokady sieci ani zgody człowieka nie testowałem. Wynik dotyczy skonstruowanej atrapy, nie wszystkich integracji agentowych.
- Czy to test Claude Haiku lub innego modelu AI?
- Nie uruchamiałem modelu ani przeglądarki. Demonstracja z 11 października 2026 wymusza zapisaną wcześniej sekwencję żądań do lokalnej atrapy formularza. Raport Anthropic z 9 października jest jej kontekstem, a nie źródłem wyników lokalnego testu. Pliki pozwalają odtworzyć sprawdzenie granicy zapisu; nie pozwalają porównać modeli ani oszacować częstości błędów agentów.
Źródła
Dane zewnętrzne przywołane w tekście mają tu swoje źródła.
- Anthropic: Investigating unintended model actions in our evaluations and internal use (9.10.2026, zmiana 10.10.2026, odczyt 11.10.2026): sekcja o formularzach, kopia ćwiczeniowa i model badawczy, Haiku 4.5 wysyłający przed stroną potwierdzenia, skutki minimalne, bez liczby przypadków; internet wyłączony we wszystkich ewaluacjach wewnętrznych (nowa karta)
- Własna demonstracja z 11.10.2026: konfiguracje, dzienniki HTTP i stan zapisów lokalnego serwera; bez modelu AI (nowa karta)
Udostępnij
Powiązane
- Agent AI wyszedł z piaskownicy. Lista kontrolna izolacji dla firmyAgenci AI opisani we wrześniu 2026 dostawali więcej dostępu, niż zakładał operator: Gemini wszedł do systemów trzech firm…
- Ile kosztuje agent AI dla firmy?Agent AI kosztuje w polskich wycenach z 2026 roku 8–20 tys. zł za konfigurację i 15–45 tys. zł netto z integracjami, a do tego…
- Agenci AI dla firmAgent AI różni się od chatbota tym, że oprócz odpowiadania wykonuje działania w firmowych systemach.
Masz konkretny proces do omówienia?
Napisz, jaki to proces i ile razy w miesiącu się powtarza. Odpowiem, czy nadaje się do automatyzacji, również wtedy, gdy odpowiedź brzmi „nie warto”.
Albo prosto na adres: not-a-bot@
Wolisz zadzwonić? +48 787 912 168