>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Go

Comment faire pour que l'IA trouve de vrais bugs dans les pull requests au lieu de générer des commentaires triviaux

La plupart des bots à réseau neuronal pour la revue de code fonctionnent de la même manière. Ils reçoivent le diff d'un commit, jettent un œil aux lignes modifiées et génèrent des dizaines de commentaires superficiels. En conséquence, les développeurs reçoivent des conseils de formatage, des docstrings manquantes ou des hallucinations évidentes lorsque l'IA manque de contexte des fichiers voisins. L'équipe du projet Agent-Field a décidé d'aborder le problème différemment et a créé l'outil PR-AF.

PR-AF benchmark

Qu'est-ce que PR-AF et à qui est-il destiné

PR-AF signifie Pull Request AgentField. Il s'agit d'un outil open source d'audit de code approfondi au stade CI/CD.

Le projet ne cherche pas à concurrencer les utilitaires interactifs rapides comme Claude Code, qui retournent une réponse en quelques secondes directement dans le terminal. PR-AF est conçu pour des tâches différentes : il s'exécute pendant 35 à 50 minutes, mais il construit un graphe d'agents dynamique, extrait des arbres AST du dépôt et vérifie chaque résultat pour la falsifiabilité.

L'outil est utile pour les équipes qui ont besoin d'un contrôle qualité automatisé strict avant de fusionner dans la branche principale. C'est particulièrement pertinent pour les projets avec un coût élevé des erreurs en matière de sécurité ou d'architecture.

Fonctionnement du pipeline dynamique

Au lieu d'exécuter un script statique avec un prompt codé en dur, PR-AF analyse la structure de la pull request entrante et ajuste le graphe d'exécution en conséquence.

Architecture PR-AF

Le processus d'analyse est divisé en plusieurs étapes.

Tout d'abord, le système évalue le diff à travers trois tranches différentes : sémantique, mécanique et systémique. Des agents examinateurs spécialisés temporaires sont créés pour les tâches identifiées.

Puis le moteur de vérification des preuves se déclenche. Si un agent estime qu'une validation des entrées est manquante dans le code, le système ne prend pas sa parole pour argent comptant. Il scanne le dépôt, extrait l'arbre AST et vérifie la chaîne d'appels. Le résultat est abandonné si aucune confirmation n'est trouvée dans le code.

À l'étape suivante, le filtre de falsification s'active. Le système tente de réfuter sa propre hypothèse sur un bug en vérifiant les protections existantes et le comportement prévu par l'auteur.

À la fin, le synthétiseur de risque composite se connecte. Des problèmes mineurs isolés dans différents fichiers se combinent souvent en une vulnérabilité critique. L'outil lie ces résultats dans un rapport unique.

Résultats des benchmarks et économie

Sur le benchmark Martian Code-Review- Bench, le système PR-AF en combinaison avec le modèle open GLM-5.2 a montré un recall de détection de bugs (golden recall) de 0,706. Dans l'ensemble de test de 42 outils, ce résultat a placé le projet en tête des solutions open source.

Pendant les tests, le système a découvert de manière indépendante 595 erreurs confirmées. Avec les meilleurs modèles commerciaux, les résultats sont encore plus élevés.

Dans le même temps, le coût d'une exécution est environ 10 fois inférieur à celui des alternatives SaaS fermées. Vous ne payez que pour les jetons LLM via votre propre clé API, sans abonnement mensuel par utilisateur.

Démarrage rapide et fonctionnement via API

Vous pouvez lancer PR-AF localement en quelques minutes via Docker Compose.

git clone https://github.com/Agent-Field/pr-af.git
cd pr-af
cp .env.example .env
docker compose up --build

Dans le fichier .env, vous devez simplement spécifier votre OPENROUTER_API_KEY et GH_TOKEN avec les permissions de lecture et d'écriture pour le dépôt. Après le démarrage, le nœud de contrôle sera disponible sur le port 80.

Vous pouvez envoyer une pull request pour révision avec une requête 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"}}'

En réponse, vous recevez un JSON final avec l'analyse des vulnérabilités, détaillée par niveau de gravité. Si le bot a accès à GitHub, il placera automatiquement des commentaires directement sur les lignes de code pertinentes avec des preuves à l'appui.

Intégration avec GitHub Actions

Le moyen le plus simple d'intégrer l'audit intégré est dans le CI/CD standard. Un fichier .github/workflows/pr-af-review.yml est ajouté au dépôt, et l'exécution est déclenchée en ajoutant une étiquette pr-af à la 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

Le développeur attache l'étiquette à la PR responsable, une demi-heure s'écoule, et un rapport détaillé avec des faits vérifiés apparaît dans le fil.

Sous le capot

Le nœud principal du projet a récemment été réécrit en Go (le code se trouve dans le répertoire go/), ce qui a positivement affecté la vitesse et la consommation de mémoire. L'implémentation Python originale reste disponible dans le dépôt comme alternative.

Le projet est distribué sous la licence permissive Apache 2.0. Le code est entièrement ouvert, y compris les scripts pour reproduire les résultats des benchmarks.

Conclusion

PR-AF offre une approche sensée de la revue automatisée. Au lieu de spammer la compilation avec des commentaires superficiels, le système passe du temps sur l'analyse AST détaillée et la vérification des hypothèses.

L'outil est idéal pour les équipes qui sont fatiguées des faux positifs des bots IA réguliers et qui ont besoin d'un filtre de sécurité fiable dans le CI/CD. Il ne convient pas pour les corrections rapides de fautes de frappe, mais il excelle avant la fusion de fonctionnalités critiques en production.

Projets similaires