Beschreibung
Oscar, eine Open-Source-Agentenarchitektur für Mitwirkende, ist ein Projekt, das sich auf die Verbesserung der Open-Source-Softwareentwicklung konzentriert, indem es automatisierte Agenten für die Projektwartung erstellt. Die Kernüberzeugung ist, dass der erhebliche Aufwand bei der Wartung von Open-Source-Projekten, sowohl großen als auch kleinen, reduziert werden kann. Large Language Models (LLMs) bieten neue Möglichkeiten für Agenten, reibungslos mit Menschen zu interagieren, durch semantische Analyse natürlicher Sprache, wie z. B. Issue-Berichte und Anweisungen von Maintainern, und durch die Umwandlung von Anweisungen in natürlicher Sprache in Programmcode. Während LLMs eine kritische Komponente sind, wird der Großteil der Aktionen eines Agenten die Ausführung von Standard- und deterministischem Code beinhalten. Im Gegensatz zu vielen entwicklungsfokussierten LLM-Anwendungen zielt Oscar nicht darauf ab, den Prozess der Codeerstellung zu erweitern oder zu ersetzen. Stattdessen konzentriert es sich auf die weniger ansprechenden Aspekte der Wartung, wie die Bearbeitung eingehender Issues, die Zuordnung von Fragen zu bestehender Dokumentation und ähnliche Aufgaben.
Oscar ist im Grunde ein Experiment, dessen zukünftige Richtung und Erkenntnisse noch nicht vollständig bestimmt sind. Der erste Prototyp, der @gabyhelp-Bot, hat bereits zahlreiche erfolgreiche Interaktionen im Go-Issue-Tracker demonstriert. Derzeit unter dem Go-Projekt entwickelt, könnte Oscar in Zukunft möglicherweise als separates Projekt ausgegliedert werden. Zu den konkreten Zielen des Projekts gehören die Reduzierung des Aufwands für Maintainer bei der Lösung von Issues und Change Lists (CLs/Pull Requests), die Verringerung des Aufwands für die Beantwortung von Forenfragen und die Ermöglichung, dass mehr Personen produktive Maintainer werden. Ein wichtiges Nicht-Ziel ist die Automatisierung des Codings; der Fokus liegt weiterhin auf der Automatisierung des Aufwands für Maintainer.
Der Ansatz konzentriert sich auf den Aufbau einer wiederverwendbaren und erweiterbaren Architektur, die jedes Softwareprojekt anpassen kann, um maßgeschneiderte Agenten zu erstellen. Oscar zielt darauf ab, den Aufwand für Maintainer zu bewältigen, der nicht nur für das Go-Projekt einzigartig ist. Zu den identifizierten Schlüsselkompetenzen gehören die Indizierung und Bereitstellung relevanter Projektkontexte während der Interaktionen mit Mitwirkenden, die Verwendung natürlicher Sprache zur Steuerung deterministischer Werkzeuge und die Analyse von Issue-Berichten, CLs/PRs und Gruppendiskussionen, um diese in Echtzeit zu verbessern, zu kennzeichnen und entsprechend weiterzuleiten. LLMs sind aufgrund ihrer Stärke in der Verarbeitung natürlicher Sprache integraler Bestandteil dieser Fähigkeiten, während deterministischer Code die Ausführung übernimmt. Das Projekt betont die Verwendung von LLMs für die semantische Analyse und die Übersetzung von natürlicher Sprache in Programme, wobei für den Rest deterministischer Code verwendet wird.
Eine entscheidende Fähigkeit ist die Indizierung und Bereitstellung relevanter Projektkontexte. Softwareprojekte sind komplex, und Maintainer können nicht immer alle relevanten Details im Gedächtnis behalten. Oscar verwendet LLM-Embeddings, um eine Projektsuchmaschine zu erstellen, die Dokumentation, Issues und Diskussionen indiziert. Wenn ein neues Issue auftritt, kann ein Agent diesen Index verwenden, um verwandte Kontexte zu finden, wie z. B. ähnliche frühere Issues oder relevante Dokumentation, und mit Links antworten. Dies hat Vorteile gezeigt, wie z. B. die Identifizierung von Duplikaten, die Bereitstellung von Kontext für Mitwirkende und die Zeitersparnis für Maintainer, indem sie auf relevante frühere Diskussionen oder Fehlerberichte verwiesen werden. Die sofortige Interaktion des Agenten nach der Einreichung eines Berichts ist ebenfalls entscheidend, um Reporter zu binden, solange sie noch verfügbar und engagiert sind.
Eine weitere Schlüsselkompetenz ist die Verwendung natürlicher Sprache zur Steuerung deterministischer Werkzeuge. Mit wachsender Größe von Projekten nimmt die Anzahl der Werkzeuge zu, was es schwierig macht, sie zu verfolgen und zu nutzen. Oscar sieht Einrichtungen vor, um Issue-Kommentare zu bearbeiten, Labels hinzuzufügen oder Personen basierend auf Anfragen in natürlicher Sprache zuzuweisen. LLMs sind geschickt darin, Absichten in natürlicher Sprache in ausführbare Formen wie Werkzeugaufrufe zu übersetzen. Vorläufige Experimente mit Gemini zeigen vielversprechende Ergebnisse bei der Auswahl und dem Aufruf von Werkzeugen. Dieser Ansatz, der LLMs zur Umwandlung natürlicher Sprache in deterministischen Werkzeuggebrauch verwendet, wird als effektiver angesehen als ein reiner LLM-"Zauberstab"-Ansatz, da er eine deterministische Ausführung und eine einfachere Verifizierung ermöglicht.
Die dritte wichtige Fähigkeit beinhaltet die Analyse von Issue-Berichten und CLs/PRs. Über die Verknüpfung verwandter Issues hinaus plant Oscar, semantische Analysen zu integrieren, wie z. B. die Identifizierung des Hauptthemas eines Issues für eine entsprechende Kennzeichnung (z. B. „Performance“). Es zielt auch darauf ab, festzustellen, ob weitere Informationen für einen nützlichen Bericht benötigt werden, z. B. die Anforderung eines Reproduktionsprogrammlinks oder das Inline-Einbetten von Code. Der Agent könnte potenziell sandboxed Ausführungswerkzeuge ausführen, um fehlerhafte Releases zu identifizieren oder Git Bisect zu verwenden, um fehlerverursachende Commits zu lokalisieren. Diese Analysen sind am effektivsten, wenn sie unmittelbar nach der Einreichung eines Berichts durchgeführt werden, wobei die 24/7-Verfügbarkeit des Agenten genutzt wird.
Der erste Prototyp, Gaby („Go AI bot“), operiert im Go-Issue-Tracker und postet als @gabyhelp. Sein Quellcode befindet sich in internal/gaby. Gaby indiziert Inhalte aus Go-Issues, Go-Dokumentation, Gerrit-Code-Reviews und Go-Projekt-/golang-nuts-Diskussionen, was es ihm ermöglicht, auf neue Issues mit relevanten Links zu antworten. Gabys Architektur ist auf Flexibilität ausgelegt, sodass sie auf verschiedenen Hosting-Diensten laufen, unterschiedliche LLMs, Speicherschichten und Vektordatenbanken verwenden kann. Der aktuelle Prototyp verwendet GCP Cloud Run mit Googles Gemini LLM und Google Cloud Firestore. Das Projekt erkennt auch die Existenz von @gopherbot an, einem langjährigen deterministischen Agenten im Go-Projekt, und zielt darauf ab, @gabyhelp schließlich in @gopherbot zu integrieren, indem @gopherbot als Oscar-Agent neu aufgebaut wird, und sucht nach einer leichteren Konfigurationsmethode, die natürliche Sprache verwendet.
Oscar's Kernfunktionen
Automatisierter Agent für die Wartung von Open-Source-Projekten
Reduziert den Aufwand für Maintainer durch die Bearbeitung von Issues und Anfragen
Nutzt LLMs für das Verständnis natürlicher Sprache und die semantische Analyse
Verwendet deterministischen Code für eine zuverlässige Aufgabenausführung
Indiziert und stellt relevante Projektkontexte bereit (Dokumentation, Issues, Diskussionen)
Ermöglicht die Steuerung deterministischer Werkzeuge mittels natürlicher Sprache
Analysiert Issue-Berichte und Change Lists für verbesserte Weiterleitung und Kennzeichnung
Prototyp-Agent @gabyhelp aktiv im Go-Issue-Tracker
Erweiterbare Architektur für die Entwicklung benutzerdefinierter Agenten
Unterstützt die Integration mit verschiedenen LLMs, Speicherschichten und Vektordatenbanken
Zielt darauf ab, nicht-codierungsbezogene Aspekte der Open-Source-Wartung zu automatisieren
Ermöglicht eine schnellere Einbindung von Mitwirkenden durch sofortige Antworten
Wie verwendet man Oscar?
Konfigurieren: Definieren Sie die Fähigkeiten des Agenten und verbinden Sie ihn mit den Datenquellen des Projekts
Bereitstellen: Hosten Sie den Agenten auf einer geeigneten Plattform (z. B. Cloud-Dienst)
Integrieren: Verbinden Sie sich mit Projekt-Repositories und Kommunikationskanälen (z. B. GitHub Webhooks)
Trainieren/Indizieren: Lassen Sie den Agenten den Projektkontext mithilfe von LLMs verarbeiten und indizieren
Überwachen: Beobachten Sie die Interaktionen und die Leistung des Agenten in Issue-Trackern und Foren
Erweitern: Entwickeln Sie neue Agentenverhaltensweisen und integrieren Sie benutzerdefinierte deterministische Werkzeuge
Optimieren: Verfeinern Sie die Antworten und Analysen des Agenten basierend auf Projektanforderungen und Feedback
Oscar's Anwendungsfälle
- Automatisierung der Issue-Triage
- Dokumentationsunterstützung
- Erkennung von Duplikat-Issues
- Reduzierung des Aufwands für Maintainer
- Unterstützung von Mitwirkenden
- Analyse von Change Lists
- Bereitstellung von Kontext
- Werkzeugintegration






