Vai al contenuto
AI.info

The Pulse

Alibaba rende open source il suo sistema di code review basato sull’IA

Alibaba ha pubblicato OpenCodeReview, uno strumento di code review da riga di comando basato sull’IA che combina pipeline di revisione deterministiche con modelli linguistici configurabili.

Alibaba rende open source il suo sistema di code review basato sull’IA

AI.info Team · Scritto con l’IA · verificato ·

Alibaba ha pubblicato OpenCodeReview, un sistema interno di code review che combina tecniche di sviluppo deterministiche con un agente basato su un modello linguistico. Secondo la documentazione del progetto, il sistema è nato come assistente interno di Alibaba Group per la code review basata sull’IA, è stato utilizzato da decine di migliaia di sviluppatori nell’arco di due anni e ha individuato milioni di difetti nel codice, prima di essere incubato come progetto open source con licenza Apache-2.0.

OpenCodeReview è progettato per esaminare le modifiche in Git, fornendo al modello il contesto del repository oltre al diff immediato. Legge i file modificati, può esaminare il contenuto completo dei file, effettua ricerche nella base di codice e produce commenti strutturati associati a righe specifiche. Il comando ocr scan può anche esaminare file completi, directory o repository per i quali non esiste un diff Git significativo.

Regole deterministiche prima del giudizio del modello

Il progetto viene eseguito tramite lo strumento da riga di comando ocr. Gli sviluppatori possono esaminare le modifiche nell’area di staging, quelle non ancora inserite nello staging e quelle non tracciate, confrontare branch, analizzare un singolo commit o sottoporre a scansione file e directory completi. Gli utenti installano il comando a livello globale con npm install -g @alibaba-group/open-code-review.

OpenCodeReview separa le attività di revisione che richiedono un comportamento predefinito da quelle che traggono beneficio dal ragionamento del modello. Il suo livello deterministico seleziona i file da esaminare, li filtra quando opportuno, raggruppa i file correlati in unità di revisione e associa le regole di revisione alle caratteristiche dei file. Secondo il repository, questi controlli mirano a ridurre la copertura incompleta, lo slittamento delle posizioni e la qualità instabile causati da un processo di revisione guidato esclusivamente dal linguaggio.

L’agente gestisce le decisioni dinamiche e il recupero del contesto. Può leggere i file del repository, cercare codice pertinente ed esaminare le modifiche correlate durante la revisione. Il progetto descrive i suoi strumenti e i suoi prompt come adattati alla code review, anziché basati sulla configurazione di un agente generalista.

Le regole integrate coprono problemi tra cui errori di puntatori nulli, sicurezza dei thread, cross-site scripting e SQL injection. Lo strumento supporta endpoint di modelli compatibili con OpenAI e con Anthropic, consentendo agli utenti di configurare il modello linguistico separatamente dal software di revisione.

Un benchmark basato su pull request reali

Il repository descrive AACR-Bench come un benchmark per la code review costruito a partire da 50 popolari repository open source, 200 pull request reali e 10 linguaggi di programmazione. Più di 80 ingegneri senior hanno sottoposto il benchmark a una validazione incrociata. Il benchmark contiene 1.505 problemi annotati come ground truth.

Alibaba presenta precision, recall e F1 come misure distinte della qualità della revisione. La precision misura la percentuale di problemi segnalati che sono difetti reali, mentre la recall misura la percentuale di difetti reali individuati. Secondo il repository, OpenCodeReview raggiunge valori di precision e F1 superiori a quelli di agenti generalisti come Claude Code quando utilizza lo stesso modello sottostante, consumando circa un nono dei token e completando le revisioni più rapidamente.

La documentazione individua anche un limite: OpenCodeReview ha una recall inferiore a quella degli agenti generalisti. Alibaba lo descrive come un compromesso deliberato che privilegia la precision rispetto al rumore. Questo approccio mira a ridurre il numero di falsi allarmi che gli sviluppatori devono vagliare, anche se i team possono valutare diversamente il compromesso a seconda che i difetti non rilevati o le segnalazioni aggiuntive comportino un costo maggiore.

Flusso di lavoro CLI e modalità di delega

Dopo aver configurato un fornitore e un modello, gli sviluppatori possono eseguire ocr review dalla directory di un progetto. Il comando esamina le modifiche nell’area di lavoro, mentre opzioni aggiuntive consentono di esaminare intervalli di branch e singoli commit. I risultati della revisione possono essere salvati in formato JSON e le revisioni interrotte possono essere riprese tramite i comandi di sessione del progetto.

Il repository offre anche una modalità di delega per gli utenti che lavorano già con un agente di coding basato sull’IA. In questa modalità, OpenCodeReview gestisce la selezione dei file e l’individuazione delle regole applicabili, mentre l’agente di coding che lo ospita esegue la revisione usando il proprio modello linguistico. Questa modalità non richiede una configurazione separata del modello per OpenCodeReview.

La documentazione di OpenCodeReview elenca integrazioni per Claude Code, Codex, Cursor, Kimi Code e OpenCode, oltre a documentazione CI/CD che copre GitHub Actions, GitLab CI, GitFlic CI e Gerrit. Il repository rimanda anche alla documentazione per un server MCP, le regole di revisione, la configurazione e la visualizzazione delle sessioni.

Uno strumento open source che dipende da modelli esterni

Il repository pubblico presenta OpenCodeReview come uno strumento di code review collaudato in produzione, non come un modello linguistico autonomo. Nella modalità operativa standard dipende da un endpoint di un modello esterno, mentre la modalità di delega consente a un agente di coding già esistente di fornire il modello.

Per i team di sviluppo, la proposta principale del progetto è un flusso di revisione controllato: la logica deterministica gestisce la selezione dei file, l’associazione delle regole, il raggruppamento e l’accuratezza dei commenti, mentre un agente esplora il contesto del repository e spiega i potenziali difetti. Le informazioni sul benchmark pubblicate insieme al repository evidenziano una precision superiore e un minore consumo di token rispetto agli agenti generalisti, riconoscendo al contempo la corrispondente riduzione della recall.

Fonte

Notizie correlate

Esplora

Altri articoli