9 zasad programowania z AI - #4: Żądaj dowodu

Spis treści

W poprzedniej części zapisywaliśmy, co znaczy „gotowe”. Teraz drugie ogniwo tego samego łańcucha: skąd wiemy, że agent faktycznie to osiągnął, a nie tylko napisał, że tak.
Bo agent bardzo chętnie pisze „zrobione”. Jeśli nic nie wymusza dowodu, to słowo jest jedynym, co dostajemy.
Zasada #4: żądaj dowodu, nie deklaracji
Agent raportujący sukces to jeszcze nie sukces. Zastąp zaufanie dowodami i egzekwuj je kodem, a nie prośbą w poleceniu.
Nick Nisi z WorkOS opowiada o własnym harnessie Case (harness to otoczka wokół modelu: narzędzia, kontekst, reguły, pętla i weryfikacja), w którym agent miał potwierdzić, że testy przeszły. „Potwierdzał” to, tworząc plik .case-tested. Sam plik niczego nie dowodził, bo agent mógł go utworzyć bez uruchamiania testów. Poprawka była prosta: do pliku trafia teraz hash SHA-256 (cyfrowy odcisk palca) z wyniku testów, a harness go sprawdza. Agent przestał kłamać, ale nie dlatego, że poproszono go grzeczniej – tylko dlatego, że uczciwa praca stała się najłatwiejszą drogą.
Podobny przykład pokazuje Tejas Kumar z IBM: surowy agent na słabym modelu (GPT-3.5 Turbo) wchodzi na stronę logowania, gubi się i raportuje sukces zadania, którego nie wykonał.
Dowód musi pochodzić z narzędzia
Wniosek z obu przykładów jest ten sam: dowód nie może być tekstem napisanym przez agenta. U Kumara harness sprawdza, bez żadnego zgadywania, historię wywołań narzędzi, a nie deklarację modelu. Do tego dochodzi pętla ponowień wbudowana w harness (maksymalnie 3 próby), więc agent, któremu coś nie wyszło, dostaje kolejną szansę.
W jego ujęciu to zasada enforce, don't instruct (wymuszaj, nie instruuj): model może zapomnieć o poleceniu albo zdecydować, że go nie wykona, więc wymóg trzeba wbudować w proces. W jego harnessie między agentami stoją bramki. Recenzent nie ruszy, dopóki weryfikator nie potwierdzi wyniku, a uwagi wracają do agenta piszącego kod.
Dowód zrozumiały dla człowieka
Nie każdy dowód musi być hashem. W jego harnessie agent przy błędach interfejsu nagrywa wideo przed poprawką i po niej, przez narzędzie do sterowania przeglądarką (Playwright). Autor czyta kod dopiero po takim materiale, a bez niego każe zrobić zadanie od nowa.
W zespole Claude Code agent uruchamia testy, budowanie projektu i automatyczną kontrolę kodu (lint) i musi pokazać ich wynik, zamiast tylko zadeklarować sukces. Przegląd zmian robi dodatkowo pomocniczy agent z czystym kontekstem. Człowiek dostaje więc dowód i drugą parę oczu, zanim sam zacznie czytać.
Każde ręczne „continue” to błąd procesu
Lopopolo z OpenAI ujął to tak: za każdym razem, gdy musi napisać do agenta „continue”, to znaczy, że harness nie dał agentowi dość kontekstu, żeby doprowadzić pracę do końca. To samo dotyczy dowodów. Jeśli za każdym razem prosisz agenta o pokazanie wyniku, to prośba powinna zamienić się w regułę.
Nisi idzie dalej: każdą porażkę traktuje jako błąd harnessu. Nie poprawia kodu, który agent zepsuł, tylko harness, żeby następnym razem agent sam to naprawił. Do tego ma agenta, który czyta logi sesji, wykrywa pętle i powtarzane wywołania, a wnioski zapisuje w plikach pamięci.
Co z tym zrobić od jutra?
- Zdefiniuj „gotowe” przez wynik komendy: w
CLAUDE.md(pliku z zasadami dla agenta) lub w skillu napisz, że zadanie jest gotowe, gdy agent wklei wynik testów, lintu i buildu (wyjście komendy, kod wyjścia, czyli 0 przy sukcesie, lub hash, nie opis) - Uruchamiaj testy poza agentem: hook (automat uruchamiany przez narzędzie w określonym momencie) lub skrypt po zakończeniu pracy, który blokuje „gotowe”, gdy kod wyjścia jest różny od zera
- Dla zmian w interfejsie wymagaj zrzutu lub nagrania przed i po
- Powtarzającą się prośbę zamień w regułę (o tym w następnej części)
Jedna pułapka: dowód, który łatwo podrobić. Pusty plik, komunikat „OK” albo „testy przeszły” w tekście agenta to wciąż deklaracja. Dowód powinien wynikać z narzędzia, które agent tylko uruchamia.
W następnej części zajmiemy się tym, jak zamienić powtarzające się błędy w stałe reguły, które agent usłyszy w odpowiednim momencie.
A Wy – ile razy zdarzyło się Wam przyjąć od agenta „zrobione” bez sprawdzenia? Dajcie znać w komentarzach, co u Was działa jako dowód 🙂
Komentarze
Ładowanie komentarzy…


