Gdy agent AI twierdzi, że ukończył zadanie, sceptycyzm jest jedyną rozsądną reakcją. Wpis w logu o treści „Zadanie ukończone o 14:32” to tylko ciąg znaków. Agent mógł po cichu ulec awarii, przesłać pusty formularz, zapętlić się w pustych wynikach wyszukiwania lub wygenerować całą halucynowaną procedurę pracy. Jeśli Twoja architektura obejmuje wielu agentów działających na różnych maszynach, w różnych regionach chmurowych lub pod różnymi adresami IP, problem ten narasta błyskawicznie. Agent B nie ma powodu, by ufać raportowi Agenta A, chyba że Agent A potrafi udowodnić swoją pracę.
Każdy wiarygodny system weryfikacji opiera się na trzech warstwach. Dowód (Evidence) to surowy artefakt — zrzut ekranu, odpowiedź API, zrzut HTML. Atestacja (Attestation) to podpisane lub kryptograficzne twierdzenie, które wiąże ten dowód z konkretnym agentem i konkretnym identyfikatorem zadania. Weryfikacja (Verification) to proces potwierdzający, że dowód faktycznie spełnia pierwotny cel, a nie tylko, że dany plik istnieje. Dowód bez atestacji może zostać wykorzystany ponownie w innym zadaniu. Atestacja bez weryfikacji mówi Ci, że dane są autentyczne, ale nie mówi, czy odpowiadają na zadane pytanie.
Dowód wizualny: Zrzuty ekranu i OCR
Kiedy agent steruje przeglądarką lub wchodzi w interakcję z interfejsem graficznym, najprostszym dowodem jest obraz. Agent wykonuje zrzut ekranu całej strony po zakończeniu działania, uruchamia OCR, aby wyodrębnić widoczny tekst, i przesyła zarówno obraz, jak i wyodrębnione ciągi znaków jako dowód.
Ten wzorzec pasuje do postów w mediach społecznościowych, przesyłania formularzy czy procesów zakupowych (checkout flows). Wyobraź sobie agenta, którego zadaniem jest publikowanie cotygodniowych aktualizacji na firmowej stronie LinkedIn. Zrzut ekranu pokazuje opublikowany post z czasem renderowanym po stronie serwera oraz identyfikatorem posta osadzonym w adresie URL. OCR może potwierdzić, że dokładny nagłówek i treść posta znajdują się na stronie obok tych specyficznych dla danej platformy znaczników.
Ryzyko jest oczywiste: zrzuty ekranu można sfałszować. Kompromitujący się agent mógłby wyrenderować fałszywą stronę internetową lokalnie, zrobić jej zrzut i ogłosić sukces. Aby podnieść poprzeczkę, należy wymagać dynamicznych znaczników tekstu, które są trudne do przewidzenia. Identyfikator potwierdzenia wydany przez platformę, znacznik czasu z serwera lub unikalny nonce, który weryfikator dołącza do instrukcji zadania, mogą służyć jako punkty zakotwiczenia. Jeśli wynik OCR nie zawiera oczekiwanego identyfikatora potwierdzenia powiązanego z tym konkretnym zadaniem, dowód zostaje odrzucony.
Zrzuty ekranu są jednak „ciężkie”. Zużywają pasmo i miejsce na dysku, a także przestają działać, gdy platformy zmieniają układ swoich interfejsów. Używaj ich, gdy interfejs użytkownika jest jedyną dostępną powierzchnią, ale traktuj je jako punkt odniesienia, a nie niezdobytą twierdzę.
Podpisane potwierdzenia API
Kiedy agent pracuje poprzez API backendowe, pomiń obraz. Poproś o podpisane potwierdzenie.
Po automatycznym poście lub scrapowaniu danych platforma zazwyczaj zwraca ustrukturyzowany ładunek (payload). Ten JSON zawiera identyfikator, znacznik czasu, pola statusu, a czasem nagłówki limitu prędkości (rate-limit). Agent podpisuje cały ten ładunek kluczem prywatnym, dołącza identyfikator zadania do podpisanego bloku danych i przesyła cały pakiet. Weryfikator sprawdza podpis za pomocą klucza publicznego agenta i analizuje potwierdzenie, aby upewnić się, że akcja zakończyła się sukcesem.
Słabym punktem jest tutaj przechowywanie kluczy (key custody). Jeśli agent przechowuje własny klucz prywatny na tej samej maszynie, na której działa, wstrzyknięcie promptu (prompt injection), złośliwe oprogramowanie lub ucieczka z kontenera mogą pozwolić na jego wyodrębnienie i sfałszowanie potwierdzeń dla zadań, które nigdy się nie odbyły. Nie należy zaszywać długożyjących kluczy w środowisku agenta. Zamiast tego użyj systemu zarządzania kluczami (KMS), który wystawia krótkotrwałe poświadczenia ograniczone do konkretnego zadania. Rotuj klucze dla każdego zadania. Jeśli agent musi poprosić o klucz do podpisywania z bezpiecznej enklawy lub systemu KMS na pięciominutowe okno czasowe, promień rażenia w przypadku naruszenia bezpieczeństwa pozostanie niewielki.
Ten wzorzec najlepiej sprawdza się w masowej automatyzacji typu headless: synchronizacji raportów wydatków na reklamę, publikowaniu za pomocą API mediów społecznościowych czy scrapowaniu punktów końcowych (endpoints), które zwracają ustrukturyzowany format JSON. Jest to rozwiązanie lżejsze niż zrzuty ekranu i znacznie łatwiejsze do programowej weryfikacji.
Łańcuchy dowodowe dla pracy ciągłej
Niektóre zadania nie dają się zamknąć w ramach pojedynczego
