>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Go

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.

PR-AF benchmark

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.

PR-AF Architectuur

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