Hoe je AI echte bugs laat vinden in Pull Requests in plaats van triviale opmerkingen te genereren
De meeste neurale netwerk bots voor code review werken op dezelfde manier. Ze ontvangen de diff van een commit, bekijken de gewijzigde regels en genereren tientallen oppervlakkige opmerkingen. Als gevolg daarvan krijgen ontwikkelaars formatting tips, ontbrekende docstrings, of voor de hand liggende hallucinaties wanneer de AI context mist van naburige bestanden. Het Agent-Field project team besloot het probleem anders aan te pakken en creëerde de PR-AF tool.

Wat is PR-AF en voor wie is het bedoeld
PR-AF staat voor Pull Request AgentField. Dit is een open-source tool voor diepgaande code-auditing in de CI/CD fase.
Het project probeert niet te concurreren met snelle interactieve hulpprogramma's zoals Claude Code, die binnen enkele seconden een antwoord geven direct in de terminal. PR-AF is ontworpen voor andere taken: het draait 35 tot 50 minuten, maar het bouwt een dynamische agent-grafiek, extraheert AST-bomen uit de repository, en verifieert elke bevinding op falsifieerbaarheid.
De tool is nuttig voor teams die strikte geautomatiseerde kwaliteitscontrole nodig hebben voordat ze samenvoegen naar de main branch. Dit is vooral relevant voor projecten met hoge kosten van fouten in beveiliging of architectuur.
Hoe de Dynamische Pipeline Werkt
In plaats van een statisch script met een hardcoded prompt uit te voeren, analyseert PR-AF de structuur van de inkomende pull request en past de uitvoeringsgrafiek dienovereenkomstig aan.

Het analyseproces is verdeeld in verschillende fasen.
Ten eerste evalueert het systeem de diff door drie verschillende lagen: semantisch, mechanisch en systemisch. Tijdelijke gespecialiseerde reviewer agents worden gecreëerd voor de geïdentificeerde taken.
Dan komt de bewijsverificatie-engine in actie. Als een agent van mening is dat input-validatie ontbreekt in de code, neemt het systeem dit niet zomaar aan. Het scant de repository, extraheert de AST-boom, en verifieert de call chain. De bevinding wordt verworpen als er geen bevestiging wordt gevonden in de code.
In de volgende stap activeert het falsificatiefilter. Het systeem probeert zijn eigen hypothese over een bug te weerleggen door bestaande beveiligingen en het beoogde gedrag van de auteur te controleren.
Aan het einde wordt de samengestelde risico-synthesizer geactiveerd. Geïsoleerde kleine problemen in verschillende bestanden vormen vaak samen een kritieke kwetsbaarheid. De tool koppelt dergelijke bevindingen aan elkaar in één rapport.
Benchmark Resultaten en Economie
Op de Martian Code-Review-Bench benchmark toonde het PR-AF systeem in combinatie met het open GLM-5.2 model een bugdetectie recall (golden recall) van 0.706. In de testset van 42 tools plaatste dit resultaat het project op de eerste plaats onder open-source oplossingen.
Tijdens het testen ontdekte het systeem onafhankelijk 595 bevestigde fouten. Bij gebruik van top commerciële modellen zijn de resultaten zelfs hoger.
Tegelijkertijd zijn de kosten van één run ongeveer 10 keer lager dan gesloten SaaS-alternatieven. Je betaalt alleen voor LLM tokens via je eigen API-sleutel, zonder een maandelijks abonnement per gebruiker.
Snelle Start en Werken via API
Je kunt PR-AF lokaal lanceren in een paar minuten via Docker Compose.
git clone https://github.com/Agent-Field/pr-af.git
cd pr-af
cp .env.example .env
docker compose up --build
In het .env bestand hoef je alleen maar je OPENROUTER_API_KEY en GH_TOKEN met lees- en schrijfmachtigingen voor de repository op te geven. Na opstarten is het control node beschikbaar op poort 80.
Je kunt een pull request ter review indienen met een standaard HTTP-verzoek:
curl -X POST http://localhost:8080/api/v1/execute/async/pr-af.review \
-H "Content-Type: application/json" \
-d '{"input": {"pr_url": "https://github.com/owner/repo/pull/123"}}'
Als antwoord ontvang je een definitieve JSON met kwetsbaarheidsanalyse, uitgesplitst naar ernstniveau. Als de bot toegang heeft tot GitHub, zal het automatisch opmerkingen plaatsen direct op de relevante coderegels met ondersteunend bewijs.
Integratie met GitHub Actions
De gemakkelijkste manier om ingebouwde auditing te integreren is in standaard CI/CD. Er wordt een .github/workflows/pr-af-review.yml bestand toegevoegd aan de repository, en de run wordt geactiveerd door een pr-af label toe te voegen aan de pull request.
name: AgentField PR Review
on:
pull_request:
types: [labeled]
jobs:
pr-af-review:
if: github.event.label.name == 'pr-af'
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout PR-AF
uses: actions/checkout@v4
with:
repository: Agent-Field/pr-af
path: pr-af
- name: Start AgentField & PR-AF
working-directory: ./pr-af
env:
OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
docker compose up -d
sleep 15
- name: Execute Deep Architectural Audit
working-directory: ./pr-af
env:
PR_URL: ${{ github.event.pull_request.html_url }}
run: |
python3 scripts/ci_runner.py
De ontwikkelaar koppelt het label aan de verantwoordelijke PR, er verstrijkt een half uur, en verschijnt er een gedetailleerd rapport met geverifieerde feiten in de thread.
Onder de Motorkap
Het main node van het project is recent herschreven in Go (de code leeft in de go/ directory), wat positief effect had op snelheid en geheugenverbruik. De originele Python-implementatie blijft beschikbaar in de repository als alternatief.
Het project wordt gedistribueerd onder de permissieve Apache 2.0 licentie. De code is volledig open, inclusief scripts voor het reproduceren van de benchmark resultaten.
Conclusie
PR-AF biedt een verstandige aanpak voor geautomatiseerde review. In plaats van de compilatie te spammen met oppervlakkige opmerkingen, besteedt het systeem tijd aan gedetailleerde AST-analyse en hypotheseverificatie.
De tool is ideaal voor teams die gek zijn van valse positieven van reguliere AI-bots en een betrouwbare beveiligingsfilter in CI/CD nodig hebben. Het is niet geschikt voor snelle typefouten, maar presteert uitstekend voordat kritieke functies naar productie worden samengevoegd.
Gerelateerde projecten