>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Go

Jak sprawić, by AI znajdowało prawdziwe błędy w pull requestach zamiast generować trywialne komentarze

Większość botów neuronowych do przeglądu kodu działa tak samo. Otrzymują diff z commita, rzucają okiem na zmodyfikowane linie i generują dziesiątki powierzchownych komentarzy. W rezultacie programiści otrzymują wskazówki dotyczące formatowania, brakujące docstringi lub oczywiste halucynacje, gdy AI nie ma kontekstu z sąsiednich plików. Zespół projektu Agent-Field postanowił podejść do problemu inaczej i stworzył narzędzie PR-AF.

PR-AF benchmark

Czym jest PR-AF i dla kogo jest przeznaczony

PR-AF to skrót od Pull Request AgentField. To narzędzie open-source do głębokiego audytu kodu na etapie CI/CD.

Projekt nie próbuje konkurować z szybkimi interaktywnymi narzędziami takimi jak Claude Code, które zwracają odpowiedź w ciągu kilku sekund bezpośrednio w terminalu. PR-AF jest przeznaczone do innych zadań: działa przez 35 do 50 minut, ale buduje dynamiczny graf agentów, wyodrębnia drzewa AST z repozytorium i weryfikuje każde znalezisko pod kątem falsyfikowalności.

Narzędzie jest przydatne dla zespołów, które potrzebują ścisłej automatycznej kontroli jakości przed scaleniem do gałęzi głównej. Jest to szczególnie istotne w projektach z wysokim kosztem błędów w zakresie bezpieczeństwa lub architektury.

Jak działa dynamiczny potok

Zamiast uruchamiać statyczny skrypt z zakodowanym na stałe promptem, PR-AF analizuje strukturę przychodzącego pull requesta i odpowiednio dostosowuje graf wykonania.

PR-AF Architecture

Proces analizy jest podzielony na kilka etapów.

Najpierw system ocenia diff przez trzy różne przekroje: semantyczny, mechaniczny i systemowy. Dla zidentyfikowanych zadań tworzone są tymczasowe wyspecjalizowane agenty recenzentów.

Następnie uruchamia się silnik weryfikacji dowodów. Jeśli agent uważa, że w kodzie brakuje walidacji danych wejściowych, system nie bierze tego na wiarę. Skanuje repozytorium, wyodrębnia drzewo AST i weryfikuje łańcuch wywołań. Znalezisko jest odrzucane, jeśli w kodzie nie znaleziono potwierdzenia.

Na następnym etapie aktywuje się filtr fałszowalności. System próbuje obalić własną hipotezę o błędzie, sprawdzając istniejące zabezpieczenia i zamierzone zachowanie autora.

Na końcu łączy się kompozytowy syntezator ryzyka. Izolowane drobne problemy w różnych plikach często łączą się w krytyczną podatność. Narzędzie łączy takie znaleziska w jeden raport.

Wyniki benchmarków i ekonomika

W benchmarku Martian Code-Review-Bench system PR-AF w połączeniu z otwartym modelem GLM-5.2 wykazał recall wykrywania błędów (golden recall) na poziomie 0,706. W zestawie testowym 42 narzędzi, ten wynik uplasował projekt na pierwszym miejscu wśród rozwiązań open-source.

Podczas testowania system samodzielnie wykrył 595 potwierdzonych błędów. Przy użyciu najlepszych komercyjnych modeli wyniki są jeszcze wyższe.

Jednocześnie koszt jednego uruchomienia jest około 10 razy niższy niż zamkniętych alternatyw SaaS. Płacisz tylko za tokeny LLM przez własny klucz API, bez miesięcznej subskrypcji na użytkownika.

Szybki start i praca przez API

Możesz uruchomić PR-AF lokalnie w ciągu kilku minut przez Docker Compose.

W pliku .env wystarczy podać swój OPENROUTER_API_KEY i GH_TOKEN z uprawnieniami do odczytu i zapisu dla repozytorium. Po uruchomieniu węzeł kontrolny będzie dostępny na porcie 80.

Możesz wysłać pull request do przeglądu standardowym żądaniem HTTP:

W odpowiedzi otrzymujesz końcowy JSON z analizą podatności, podzielony według poziomu ważności. Jeśli bot ma dostęp do GitHuba, automatycznie umieści komentarze bezpośrednio na odpowiednich liniach kodu wraz z dowodami.

Integracja z GitHub Actions

Najłatwiejszym sposobem integracji wbudowanego audytu jest standardowy CI/CD. Do repozytorium dodawany jest plik .github/workflows/pr-af-review.yml, a uruchomienie jest wyzwalane przez dodanie etykiety pr-af do pull requesta.

Developer dołącza etykietę do odpowiedzialnego PR, mija pół godziny i w wątku pojawia się szczegółowy raport z zweryfikowanymi faktami.

Pod maską

Główny węzeł projektu został niedawno przepisany w Go (kod znajduje się w katalogu go/), co pozytywnie wpłynęło na szybkość i zużycie pamięci. Oryginalna implementacja w Pythonie pozostaje dostępna w repozytorium jako alternatywa.

Projekt jest rozpowszechniany na podstawie liberalnej licencji Apache 2.0. Kod jest w pełni otwarty, w tym skrypty do odtworzenia wyników benchmarku.

Podsumowanie

PR-AF oferuje rozsądne podejście do automatycznego przeglądu. Zamiast zaśmiecać kompilację powierzchownymi komentarzami, system poświęca czas na szczegółową analizę AST i weryfikację hipotez.

Narzędzie jest idealne dla zespołów, które mają dość fałszywych pozytywów od zwykłych botów AI i potrzebują niezawodnego filtra bezpieczeństwa w CI/CD. Nie nadaje się do szybkich poprawek literówek, ale doskonale sprawdza się przed scalaniem krytycznych funkcji do produkcji.

Powiązane projekty