Come Far Trovare all'IA Bug Reali nelle Pull Request Invece di Generare Commenti Triviali
La maggior parte dei bot basati su reti neurali per la revisione del codice funziona allo stesso modo. Ricevono il diff da un commit, danno un'occhiata alle righe modificate e generano decine di commenti superficiali. Di conseguenza, gli sviluppatori ricevono suggerimenti sulla formattazione, docstring mancanti o allucinazioni evidenti quando l'IA manca del contesto dei file vicini. Il team del progetto Agent-Field ha deciso di affrontare il problema in modo diverso e ha creato lo strumento PR-FA.

Cos'è PR-FA e a Chi Serve
PR-FA sta per Pull Request AgentField. Questo è uno strumento open-source per il code auditing approfondito nella fase CI/CD.
Il progetto non cerca di competere con le utility interattive veloci come Claude Code, che restituiscono una risposta in un paio di secondi direttamente nel terminale. PR-FA è progettato per attività diverse: viene eseguito per 35-50 minuti, ma costruisce un grafo dinamico di agenti, estrae alberi AST dal repository e verifica ogni risultato per la falsificabilità.
Lo strumento è utile per i team che necessitano di un rigoroso controllo qualità automatizzato prima del merge nel branch principale. Questo è particolarmente rilevante per i progetti con un alto costo degli errori in termini di sicurezza o architettura.
Come Funziona la Pipeline Dinamica
Invece di eseguire uno script statico con un prompt hardcoded, PR-FA analizza la struttura della pull request in arrivo e adatta di conseguenza il grafo di esecuzione.

Il processo di analisi è suddiviso in diverse fasi.
Innanzitutto, il sistema valuta il diff attraverso tre diverse sezioni: semantica, meccanica e sistemica. Vengono creati agenti revisori specializzati temporanei per le attività identificate.
Quindi entra in gioco il motore di verifica delle prove. Se un agente ritiene che manchi la validazione degli input nel codice, il sistema non si fida della sua parola. Scansiona il repository, estrae l'albero AST e verifica la catena di chiamate. Il risultato viene scartato se nel codice non viene trovata alcuna conferma.
Nel passaggio successivo, si attiva il filtro di falsificazione. Il sistema tenta di confutare la propria ipotesi su un bug verificando le protezioni esistenti e il comportamento previsto dall'autore.
Alla fine, si attiva il sintetizzatore di rischio composito. Problemi minori isolati in file diversi spesso si combinano in una vulnerabilità critica. Lo strumento collega questi risultati in un unico report.
Risultati dei Benchmark ed Economia
Nel benchmark Martian Code-Review-Bench, il sistema PR-FA in combinazione con il modello open GLM-5.2 ha mostrato un recall di rilevamento dei bug (golden recall) di 0.706. Nel set di test di 42 strumenti, questo risultato ha posizionato il progetto al primo posto tra le soluzioni open-source.
Durante i test, il sistema ha scoperto autonomamente 595 errori confermati. Quando si utilizzano i migliori modelli commerciali, i risultati sono ancora più alti.
Allo stesso tempo, il costo di un'esecuzione è circa 10 volte inferiore rispetto alle alternative SaaS chiuse. Si paga solo per i token LLM attraverso la propria chiave API, senza un abbonamento mensile per utente.
Avvio Rapido e Lavoro tramite API
Puoi avviare PR-FA localmente in un paio di minuti tramite Docker Compose.
git clone https://github.com/Agent-Field/pr-af.git
cd pr-af
cp .env.example .env
docker compose up --build
Nel file .env devi solo specificare la tua OPENROUTER_API_KEY e GH_TOKEN con permessi di lettura e scrittura per il repository. Dopo l'avvio, il nodo di controllo sarà disponibile sulla porta 80.
Puoi inviare una pull request per la revisione con una richiesta HTTP standard:
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"}}'
In risposta, ricevi un JSON finale con l'analisi delle vulnerabilità, suddivisa per livello di gravità. Se il bot ha accesso a GitHub, posizionerà automaticamente i commenti proprio sulle righe di codice rilevanti con le prove a supporto.
Integrazione con GitHub Actions
Il modo più semplice per integrare l'auditing integrato è nella CI/CD standard. Un file .github/workflows/pr-af-review.yml viene aggiunto al repository e l'esecuzione viene attivata aggiungendo un'etichetta pr-af alla 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
Lo sviluppatore allega l'etichetta alla PR responsabile, passa mezz'ora e nella discussione appare un report dettagliato con fatti verificati.
Sotto il Cofano
Il nodo principale del progetto è stato recentemente riscritto in Go (il codice risiede nella directory go/), il che ha influito positivamente sulla velocità e sul consumo di memoria. L'implementazione originale in Python rimane disponibile nel repository come alternativa.
Il progetto è distribuito sotto la licenza permissiva Apache 2.0. Il codice è completamente aperto, inclusi gli script per riprodurre i risultati del benchmark.
Conclusione
PR-FA offre un approccio sensato alla revisione automatizzata. Invece di spammare la compilazione con commenti superficiali, il sistema dedica tempo all'analisi dettagliata degli AST e alla verifica delle ipotesi.
Lo strumento è ideale per i team che sono stanchi dei falsi positivi dei normali bot AI e necessitano di un filtro di sicurezza affidabile nella CI/CD. Non è adatto per correzioni rapide di errori di battitura, ma eccelle prima del merge di funzionalità critiche in produzione.
Progetti correlati