4 Punkte von xguru 2024-08-13 | Noch keine Kommentare. | Auf WhatsApp teilen
  • Ein Projekt mit dem Ziel, automatisierte Helfer, also „Agenten“, für die Open-Source-Wartung zu entwickeln und damit die Entwicklung von Open-Source-Software zu verbessern
    • Dadurch könnte sich der Umfang repetitiver Aufgaben im Zusammenhang mit der Open-Source-Wartung verringern
  • Die Fähigkeit großer Sprachmodelle (LLMs) zur semantischen Analyse natürlicher Sprache und zur Umwandlung zwischen natürlichsprachlichen Anweisungen und Programmcode schafft neue Möglichkeiten dafür, dass Agenten reibungsloser mit Menschen interagieren
  • LLMs werden nur ein Teil des Agenten sein; der Großteil des Agentenverhaltens wird darin bestehen, standardisierten und deterministischen Code auszuführen
  • Anders als beim entwicklungszentrierten Einsatz von LLMs versucht Oscar nicht, den Prozess des Code-Schreibens zu ergänzen oder zu ersetzen
  • Stattdessen liegt der Fokus auf den langweiligen Teilen, etwa dem Bearbeiten eingehender Issues oder dem Abgleichen von Fragen mit vorhandener Dokumentation

Projektziele

  • Verringerung des Wartungsaufwands zur Lösung von Issues [„Lösung“ bedeutet nicht immer eine Korrektur]
  • Verringerung des Wartungsaufwands zur Bearbeitung von Changelists (CL) oder Pull Requests (PR) [„Lösung“ bedeutet nicht immer Einreichung/Zusammenführung]
  • Verringerung des Wartungsaufwands zur Beantwortung von Forenfragen
  • Mehr Menschen dabei unterstützen, produktive Maintainer zu werden

Ansatz

  • Da die repetitiven Aufgaben der Open-Source-Wartung nicht auf Go-Projekte beschränkt sind, ist das Ziel, eine Architektur zu bauen, die alle Softwareprojekte wiederverwenden und erweitern können
  • Bislang wurden drei Funktionen identifiziert, die einen wichtigen Teil von Oscar bilden werden:
    1. Indizierung und Bereitstellung relevanten Projektkontexts während der Interaktion mit Beitragenden
    2. Steuerung deterministischer Werkzeuge mithilfe natürlicher Sprache
    3. Verbesserung eingereichter Issues und CLs/PRs in Echtzeit während oder direkt nach der Einreichung sowie angemessenes Labeling und Routing durch deren Analyse

Indizierung und Bereitstellung relevanten Projektkontexts

  • LLMs können Dokumente analysieren, indem sie Embeddings erzeugen – hochdimensionale Gleitkomma-Einheitsvektoren mit der Eigenschaft, dass Dokumente mit ähnlicher Bedeutung auf Vektoren abgebildet werden, die in ähnliche Richtungen zeigen
  • In Kombination mit einer Vektordatenbank zum Auffinden von Vektoren, die einem Eingangsvektor ähnlich sind, bieten LLM-Embeddings eine sehr effektive Methode, den gesamten Kontext eines Open-Source-Projekts zu indizieren
  • Ein Prototyp-Agent implementiert diese Funktion und antwortet auf neue Issues im Go-Repository mit einer Liste von bis zu 10 hochrelevanten Links

Natürliche Sprache zur Steuerung deterministischer Werkzeuge verwenden

  • Wenn Open-Source-Projekte wachsen, steigt die Zahl nützlicher Werkzeuge, und es kann schwierig werden, den Überblick zu behalten und sich zu merken, wie jedes einzelne zu verwenden ist
  • LLMs sind sehr effektiv bei der Umwandlung zwischen in natürlicher Sprache formulierten Absichten und ausführbaren Formen dieser Absichten wie Programmcode oder Tool-Aufrufen
  • Es wurden Experimente mit Gemini durchgeführt, bei denen verfügbare Werkzeuge ausgewählt und aufgerufen werden, um natürlichsprachliche Anfragen zu erfüllen, aber bislang funktioniert noch nichts in der Praxis

Analyse von Issue-Reports und CLs/PRs

  • Das Posten zugehöriger Issues ist eine begrenzte Form der Analyse, es ist jedoch geplant, weitere Arten semantischer Analyse hinzuzufügen, etwa das Erkennen von Performance-Issues und das Hinzufügen des Labels „Performance“
  • Es soll untersucht werden, ob Reports gut genug analysiert werden können, um festzustellen, ob zusätzliche Informationen nötig sind, damit ein Report nützlich wird
  • All diese Analysen und die daraus resultierenden Interaktionen funktionieren deutlich besser, wenn sie unmittelbar nach der Einreichung eines Reports stattfinden, solange die meldende Person noch verfügbar und eingebunden ist

Prototyp

  • Der erste Prototyp zur Erkundung von Oscar heißt Gaby (Go AI bot), läuft im Go-Issue-Tracker und postet als @gabyhelp
  • Bislang indiziert Gaby auf GitHub die Inhalte von Go-Issues, indiziert die Go-Dokumentation auf go.dev und antwortet auf neue Issues mit relevanten Links
  • Gabys Struktur macht es einfach, ihn mit beliebigen LLMs, Storage-Layern und Vektordatenbanken auf allen Arten von Hosting-Services auszuführen

Noch keine Kommentare.

Noch keine Kommentare.