Artikelbild für den Artikel: Semantische Suche für Cursor's Codierungsagenten

Semantische Suche für Cursor’s Codierungsagenten

Die Codierungsagenten von Cursor haben ihre Leistung durch die Implementierung einer semantischen Suche erheblich verbessert. Diese Technologie ermöglicht es den Agenten, relevante Informationen in großen Codebasen effizienter zu finden und so die Produktivität der Entwickler zu steigern.

Wenn Codierungsagenten einen Prompt erhalten, ist es entscheidend, die richtige Antwort zu liefern. Dies erfordert ein tiefes Verständnis der Codebasis, das durch das Lesen von Dateien und das Suchen nach relevanten Informationen aufgebaut wird. Eine der Methoden, die Cursor‘s Agenten verwenden, ist die semantische Suche. Diese Technik ermöglicht es, Segmente von Code zu finden, die natürlichen Sprachabfragen entsprechen, wie zum Beispiel „Wo wird die Authentifizierung behandelt?“. Dies ergänzt die regex-basierte Suche, die durch Tools wie grep bereitgestellt wird.

Vorteile der semantischen Suche

Um die semantische Suche zu unterstützen, hat Cursor ein eigenes Embedding-Modell trainiert und Indexierungspipelines für eine schnelle Abfrageerfassung aufgebaut. Während man sich ausschließlich auf grep und ähnliche Kommandozeilenwerkzeuge verlassen könnte, hat sich gezeigt, dass die semantische Suche die Leistung der Agenten erheblich verbessert, insbesondere bei großen Codebasen:

  • Durchschnittlich 12,5 % höhere Genauigkeit bei der Beantwortung von Fragen (je nach Modell zwischen 6,5 % und 23,5 %).
  • Produzierte Codeänderungen, die wahrscheinlicher in den Codebasen erhalten bleiben.
  • Weniger Iterationen erforderlich, um zu einer korrekten Lösung zu gelangen.
  • Erhöhte Genauigkeit über alle getesteten Modelle, einschließlich aller fortschrittlichen Codierungsmodelle.

Offline-Evaluierungen

Um die Effektivität der semantischen Suche zu bewerten, unterhält Cursor einen Evaluationsdatensatz, Cursor Context Bench, der sich auf das Abrufen von Informationen in Codebasen mit bekannten korrekten Antworten konzentriert. Diese Evaluierung wird für die am häufigsten verwendeten Modelle in Cursor, einschließlich des eigenen Composer, durchgeführt. Der Vergleich betrachtet die Leistung mit zwei Sets verfügbarer Werkzeuge: eines, das die semantische Suche umfasst, und eines, das dies nicht tut. In jeder Konfiguration verbessert die semantische Suche die Ergebnisse erheblich.

Online A/B-Tests

Um den Einfluss auf die Benutzererfahrung zu verstehen, führte Cursor A/B-Tests durch, bei denen beide Gruppen dasselbe Modell verwendeten, aber die eine Gruppe Zugriff auf die semantische Suche hatte, während die andere ausschließlich auf traditionelle Suchwerkzeuge wie grep angewiesen war. Dabei wurden zwei Metriken betrachtet:

  • Code-Retention: Der von effektiven Agenten geschriebene Code bleibt wahrscheinlicher in den Benutzer-Codebasen erhalten. Die Agenten-Code-Retention steigt um 0,3 %, wenn die semantische Suche verfügbar ist. Dieser Effekt erhöht sich auf 2,6 % bei großen Codebasen mit 1.000 oder mehr Dateien.
  • Unzufriedene Benutzeranfragen: Der von effektiven Agenten geschriebene Code erfordert keine Nachverfolgungen oder Korrekturen. Es wurde ein Anstieg von 2,2 % bei unzufriedenen Nachfragen beobachtet, wenn die semantische Suche nicht verfügbar war.

Benutzerdefinierte Abrufmodelle

Ein entscheidender Aspekt, der diese Ergebnisse ermöglicht, ist das benutzerdefinierte Embedding-Modell von Cursor. Der Ansatz nutzt Agentensitzungen als Trainingsdaten: Wenn ein Agent eine Aufgabe bearbeitet, führt er mehrere Suchen durch und öffnet Dateien, bevor er den richtigen Code findet. Durch die Analyse dieser Spuren können wir im Nachhinein sehen, was früher in der Konversation abgerufen werden sollte.

Diese Spuren werden einem LLM (Large Language Model) zur Verfügung gestellt, das bewertet, welcher Inhalt zu jedem Zeitpunkt am hilfreichsten gewesen wäre. Anschließend trainieren wir unser Embedding-Modell, um seine Ähnlichkeitsscores mit diesen vom LLM generierten Rankings in Einklang zu bringen. Dies schafft einen Feedback-Loop, in dem das Modell lernen kann, wie Agenten tatsächlich durch Codierungsaufgaben arbeiten, anstatt sich auf generische Codeähnlichkeit zu verlassen.

Fazit

Die semantische Suche ist derzeit notwendig, um die besten Ergebnisse zu erzielen, insbesondere in großen Codebasen. Unser Agent nutzt intensiv sowohl grep als auch die semantische Suche, und die Kombination dieser beiden führt zu den besten Ergebnissen. Wir setzen unsere Tests und Evaluierungen aller Werkzeuge fort, die wir dem Agenten zur Verfügung stellen, während sich die Modelle weiter verbessern.

Quellenliste:

Dieser Artikel wurde mithilfe von KI verfasst und basiert auf automatisch gesammelten Informationen.
0 Kommentare

Hinterlasse einen Kommentar

An der Diskussion beteiligen?
Hinterlasse uns deinen Kommentar!

Schreibe einen Kommentar