Aller au contenu principal
ToolPotion

Oscar - Git chez Google

Oscar est une architecture d'agent contributeur open-source conçue pour réduire la charge de travail des mainteneurs dans le développement logiciel. Il exploite les LLM pour l'analyse sémantique et le code déterministe pour l'exécution des tâches, dans le but d'automatiser le traitement des problèmes, la mise en correspondance de la documentation, et plus encore, améliorant ainsi l'efficacité de la maintenance des projets open-source.

Visiter l'URL
Oscar - Git chez Google screenshot

Description

Oscar, une architecture d'agent contributeur open-source, est un projet axé sur l'amélioration du développement logiciel open-source en créant des agents automatisés pour la maintenance des projets. La conviction fondamentale est qu'une charge de travail considérable dans la maintenance des projets open-source, petits et grands, peut être réduite. Les grands modèles linguistiques (LLM) offrent de nouvelles possibilités aux agents pour interagir de manière fluide avec les personnes grâce à l'analyse sémantique du langage naturel, tel que les rapports de problèmes et les instructions des mainteneurs, et en convertissant les instructions en langage naturel en code de programme. Bien que les LLM soient un composant essentiel, la majorité des actions d'un agent impliqueront l'exécution de code standard et déterministe. Contrairement à de nombreuses utilisations de LLM axées sur le développement, Oscar ne vise pas à augmenter ou à remplacer le processus d'écriture de code. Au lieu de cela, il se concentre sur les aspects moins attrayants de la maintenance, tels que le traitement des problèmes entrants, la mise en correspondance des questions avec la documentation existante, et des tâches similaires.

Oscar est fondamentalement une expérience, dont la direction future et les apprentissages ne sont pas encore entièrement déterminés. Le prototype initial, le bot @gabyhelp, a déjà démontré de nombreuses interactions réussies dans le traqueur de problèmes Go. Actuellement développé sous le projet Go, Oscar pourrait potentiellement être détaché en un projet distinct à l'avenir. Les objectifs concrets du projet incluent la réduction de l'effort des mainteneurs pour résoudre les problèmes et les listes de modification (CL/pull requests), la diminution de l'effort requis pour répondre aux questions des forums, et la possibilité pour plus d'individus de devenir des mainteneurs productifs. Un objectif clé non atteint est l'automatisation du codage ; l'accent reste mis sur l'automatisation de la charge de travail des mainteneurs.

L'approche est centrée sur la construction d'une architecture réutilisable et extensible que tout projet logiciel peut adapter pour créer des agents personnalisés. Oscar vise à résoudre la charge de travail des mainteneurs, qui n'est pas unique au projet Go. Les capacités clés identifiées incluent l'indexation et la mise en évidence du contexte pertinent du projet lors des interactions avec les contributeurs, l'utilisation du langage naturel pour contrôler des outils déterministes, et l'analyse des rapports de problèmes, des CL/PR, et des discussions de groupe pour les améliorer en temps réel, les étiqueter et les acheminer de manière appropriée. Les LLM font partie intégrante de ces capacités en raison de leur force en traitement du langage naturel, tandis que le code déterministe gère l'exécution. Le projet met l'accent sur l'utilisation des LLM pour l'analyse sémantique et la traduction du langage naturel vers le programme, en s'appuyant sur le code déterministe pour le reste.

Une capacité cruciale est l'indexation et la mise en évidence du contexte pertinent. Les projets logiciels sont complexes, et les mainteneurs ne peuvent pas toujours conserver tous les détails pertinents. Oscar utilise des embeddings LLM pour créer un moteur de recherche de projet, indexant la documentation, les problèmes et les discussions. Lorsqu'un nouveau problème survient, un agent peut utiliser cet index pour trouver le contexte pertinent, tel que des problèmes passés similaires ou une documentation pertinente, et répondre avec des liens. Cela a montré des avantages tels que la mise en évidence des problèmes en double, la fourniture de contexte aux contributeurs, et le gain de temps pour les mainteneurs en les orientant vers des discussions passées ou des rapports de bugs pertinents. L'interaction immédiate de l'agent après le dépôt d'un rapport est également vitale pour engager les rapporteurs tant qu'ils sont encore disponibles et engagés.

Une autre capacité clé est l'utilisation du langage naturel pour contrôler des outils déterministes. À mesure que les projets grandissent, le nombre d'outils augmente, rendant difficile leur suivi et leur utilisation. Oscar envisage des installations pour modifier les commentaires des problèmes, ajouter des étiquettes ou attribuer des personnes en fonction de demandes en langage naturel. Les LLM sont aptes à traduire les intentions en langage naturel en formes exécutables comme les invocations d'outils. Des expériences préliminaires avec Gemini montrent des promesses dans la sélection et l'invocation d'outils. Cette approche, qui utilise les LLM pour convertir le langage naturel en utilisation d'outils déterministes, est considérée comme plus efficace qu'une approche pure LLM de type « baguette magique », car elle permet une exécution déterministe et une vérification plus facile.

La troisième capacité importante concerne l'analyse des rapports de problèmes et des CL/PR. Au-delà de la liaison des problèmes connexes, Oscar prévoit d'intégrer l'analyse sémantique, telle que l'identification du sujet principal d'un problème pour un étiquetage approprié (par exemple, « performance »). Il vise également à déterminer si plus d'informations sont nécessaires pour qu'un rapport soit utile, comme demander un lien vers un programme de reproduction ou intégrer du code. L'agent pourrait potentiellement exécuter des outils d'exécution en bac à sable pour identifier les versions contenant des bugs ou utiliser git bisect pour localiser les commits introduisant des bugs. Ces analyses sont plus efficaces lorsqu'elles sont effectuées immédiatement après le dépôt d'un rapport, en tirant parti de la disponibilité 24h/24 et 7j/7 de l'agent.

Le premier prototype, Gaby (« Go AI bot »), opère dans le traqueur de problèmes Go, postant sous @gabyhelp. Son code source se trouve dans internal/gaby. Gaby indexe le contenu des problèmes Go, de la documentation Go, des revues de code Gerrit et des discussions du projet Go/golang-nuts, lui permettant de répondre aux nouveaux problèmes avec des liens pertinents. L'architecture de Gaby est conçue pour la flexibilité, lui permettant de fonctionner sur divers services d'hébergement, d'utiliser différents LLM, couches de stockage et bases de données vectorielles. Le prototype actuel utilise GCP Cloud Run avec le LLM Gemini de Google et Google Cloud Firestore. Le projet reconnaît également l'existence de @gopherbot, un agent déterministe de longue date dans le projet Go, et vise à fusionner éventuellement @gabyhelp dans @gopherbot en reconstruisant @gopherbot comme un agent Oscar, recherchant une méthode de configuration plus légère utilisant le langage naturel.

Fonctionnalités principales de Oscar

  • Agent automatisé pour la maintenance open-source

  • Réduit la charge de travail des mainteneurs en traitant les problèmes et les requêtes

  • Exploite les LLM pour la compréhension du langage naturel et l'analyse sémantique

  • Utilise du code déterministe pour une exécution fiable des tâches

  • Indexe et met en évidence le contexte pertinent du projet (documentation, problèmes, discussions)

  • Permet le contrôle du langage naturel des outils déterministes

  • Analyse les rapports de problèmes et les listes de modification pour un meilleur routage et étiquetage

  • Agent prototype @gabyhelp actif dans le traqueur de problèmes Go

  • Architecture extensible pour le développement d'agents personnalisés

  • Prend en charge l'intégration avec divers LLM, couches de stockage et bases de données vectorielles

  • Vise à automatiser les aspects non-codage de la maintenance open-source

  • Facilite un engagement plus rapide des contributeurs grâce à des réponses immédiates

Comment utiliser Oscar ?

  1. Configurer : Définir les capacités de l'agent et se connecter aux sources de données du projet

  2. Déployer : Héberger l'agent sur une plateforme appropriée (par exemple, service cloud)

  3. Intégrer : Se connecter aux dépôts de projet et aux canaux de communication (par exemple, webhooks GitHub)

  4. Entraîner/Indexer : Permettre à l'agent de traiter et d'indexer le contexte du projet à l'aide de LLM

  5. Surveiller : Observer les interactions et les performances de l'agent dans les traqueurs de problèmes et les forums

  6. Étendre : Développer de nouveaux comportements d'agent et intégrer des outils déterministes personnalisés

  7. Optimiser : Affiner les réponses et l'analyse de l'agent en fonction des besoins et des retours du projet

Cas d'utilisation de Oscar

  • Automatisation du triage des problèmes
  • Assistance à la documentation
  • Détection de problèmes en double
  • Réduction de la charge de travail des mainteneurs
  • Support aux contributeurs
  • Analyse des listes de modification
  • Mise en évidence du contexte
  • Intégration d'outils

FAQ de Oscar

Avis sur Oscar

Chargement...

Outils IA populaires comme Oscar

GitHub Copilot est un programmeur IA qui assiste les développeurs en suggérant des lignes de code et des fonctions entières directement dans leur éditeur. Il accélère les flux de…

En vedetteAssistants de codage IA

Aider est un outil de programmation pairée IA qui s'intègre à votre terminal, vous permettant de collaborer avec des modèles de langage de grande taille (LLMs) sur de nouveaux…

En vedetteAssistants de codage IA

Devin est un agent de codage IA conçu pour aider les développeurs à créer des logiciels de manière plus efficace. Il utilise des agents cloud parallèles pour améliorer la…

En vedetteAssistants de codage IA

Codex dans ChatGPT améliore l'ingénierie logicielle en fournissant des agents de codage IA qui aident les équipes à construire plus rapidement. Il automatise des tâches telles que…

En vedetteAssistants de codage IA

Dépôts GitHub d'IA

Goose est un agent IA open source et extensible qui améliore le codage en permettant aux utilisateurs d'installer, d'exécuter, de modifier et de tester avec n'importe quel LLM,…

En vedetteAssistants de codage IA

Agents IA

SWE-agent est un agent d'IA conçu pour utiliser de manière autonome des outils pour des tâches telles que la correction des problèmes GitHub et la recherche de vulnérabilités de…

Assistants de codage IA

Agents IA

Devin Desktop est le centre de commande pour la gestion des agents de codage IA locaux et cloud. Planifiez, déléguez, révisez et déployez du code directement depuis votre éditeur.…

Assistants de codage IA

Agents IA

OpenHands est une plateforme open-source, indépendante du modèle, pour les agents de codage dans le cloud qui automatise les tâches d'ingénierie de manière sécurisée et…

En vedetteCréateurs d'agents IA