Skip to main content

Über den Rubber-Duck-Agent

Der Rubber-Duck-Agent ist ein integrierter Kritiker, der Copilot eine konstruktive zweite Meinung zu seinen eigenen Plänen, seinem Code und seinen Tests liefert – wobei er ein anderes KI-Modell verwendet als das, das Ihre Sitzung steuert.

Wer kann dieses Feature verwenden?

GitHub Copilot-CLI ist mit allen Copilot Tarifen verfügbar. Wenn Sie Copilot von einer Organisation erhalten, muss die Copilot CLI-Richtlinie in den Einstellungen der Organisation aktiviert sein.

Einleitung

Rubber-Duck ist ein in GitHub Copilot-CLI integrierter Agent, der als konstruktiver Kritiker fungiert. Während der Arbeit an einer Aufgabe kann der Haupt-CLI-Agent für eine Sitzung seinen aktuellen Plan, seinen Entwurf, die Implementierung oder Tests an den Rubber-Duck-Agent zur Überprüfung übergeben. Der Rubber-Duck-Agent sucht nach blinden Flecken, Konstruktionsfehlern und inhaltlichen Problemen und gibt konkretes, umsetzbares Feedback. Copilot berücksichtigt dann diese Kritik, bevor er fortfährt.

Der Rubber-Duck-Agent dient dazu, vorgeschlagene Änderungen zu prüfen, nicht jedoch, selbst Änderungen an Dateien vorzunehmen. Der Hauptagent für die Sitzung entscheidet, was mit dem Feedback zu tun ist.

Hinweis

Der Rubber Duck-Agent ist derzeit nur verfügbar, wenn der Hauptagent ein großes Sprachmodell von Claude oder GPT verwendet.

Warum "Gummiente"?

Der Name leitet sich von einer seit langem bekannten Technik in der Softwareentwicklung ab, die als Rubber-Ducking bezeichnet wird und bei der man seinen Code oder eine Lösungsidee einem leblosen Gegenstand – traditionell einer Gummiente (Rubber-Duck) – erklärt. Die Idee ist, dass Sie durch die Artikulation Ihres Denkens oft Fehler, Missverständnisse oder logische Fehler aufdecken.

Der Rubber-Duck-Agent wendet ein ähnliches Konzept wie in Copilot an. Bevor er eine nicht unerhebliche Änderung vornimmt, kann Copilot innehalten, seine derzeitige Überlegung darlegen und diese von einem unabhängigen Gutachter prüfen lassen. Im Gegensatz zu einer echten Gummiente gibt diese hier eine Antwort: Sie liefert eine fundierte Kritik, auf die Copilot reagieren kann.

Zweite Meinung aus einem anderen Modell

Ein wesentliches Merkmal des Rubber-Duck-Agents besteht darin, dass er bewusst auf einem anderen KI-Modell ausgeführt wird, das Ihre Sitzung steuert. GitHub Copilot-CLI wählt ein Kritikermodell aus, das mit dem aktuellen Sitzungsmodell kontrastiert. Wenn Sie sich z. B. dafür entschieden haben, ein Claude-Modell für Ihre Sitzung zu verwenden, kann der Rubber-Duck-Agent ein GPT-Modell als Kritiker verwenden. Copilot CLI verwendet nur den Rubber-Duck-Agent, wenn ein geeignetes Modell zur Verfügung steht, das eine nützliche Kritik bieten kann.

Der Vorteil der Verwendung eines anderen Modells besteht darin, dass der Kritiker weniger wahrscheinlich die gleichen Blindflecken, Verzerrungen oder Fehlermodi wie das Modell teilt, das die Arbeit produziert hat. Sie erhalten effektiv zwei unabhängige Perspektiven auf dasselbe Problem.

Das entsprechende Kritikermodell wird jedes Mal automatisch ausgewählt, wenn der Rubber-Duck-Agent aufgerufen wird, basierend auf Ihrem aktuellen Sitzungsmodell. Wenn Sie die Sitzungsmodelle mitten in der Sitzung wechseln (z. B. mit dem /model-Befehl), wählt der nächste Aufruf des Rubber-Duck-Agents den entsprechenden Beurteiler für das neue Sitzungsmodell aus.

Was der Gummiente-Agent tut

Wenn der Rubber-Duck-Agent konsultiert wird, passiert Folgendes:

  1. Liest die Arbeit im Kontext. Es versteht, was der Code, der Entwurf oder der Vorschlag zu erreichen versucht, wie er in das restliche System integriert wird und welche Annahmen vorhanden sind.
  2. Identifiziert echte Probleme. Es sucht nach Fehlern, Logikfehlern, Sicherheitsrisiken, Entwurfsfehlern, Antimustern, Leistungsengpässen und anderen Problemen, die für den Erfolg der Aufgabe wirklich wichtig sind.
  3. Empfiehlt bestimmte Korrekturen. Für jedes Problem, das gefunden wird, gibt es das Problem, seine Auswirkungen und eine konkrete vorgeschlagene Änderung an.
  4. Kategorisiert ihr Feedback nach Schweregrad:
    • Blockierungsprobleme – müssen behoben werden, damit die Arbeit erfolgreich ausgeführt werden kann.
    • Nicht blockierende Probleme – sollten behoben werden, um die Qualität zu verbessern, aber nicht den Erfolg verhindern.
    • Vorschläge – Verbesserungen mit niedrigerer Priorität, die weiterhin echte Auswirkungen auf das Ergebnis haben.
  5. Es werden nur Ergebnisse gemeldet, die wichtig sind. Wenn keine Probleme gefunden werden, wird dies explizit angegeben. Der Rubber-Duck-Agent ist so konfiguriert, dass er keine Kommentare zu Stil, Formatierung, Benennungskonventionen, Grammatik in Kommentaren, kleineren Umgestaltungen oder Best Practices abgibt, die keine tatsächlichen Probleme vermeiden.

Der Rubber-Duck-Agent hat schreibgeschützten Zugriff auf Ihre Codebasis über die Standard-Explorationstools. Dateien können nicht bearbeitet oder Befehle ausgeführt werden, die Ihre Umgebung ändern.

Bei der Konsultation von Copilot des Rubber-Duck-Agents

Wenn der Rubber-Duck-Agent aktiviert ist, wird Copilot angewiesen, ihn in entscheidenden Momenten zu konsultieren, anstatt nur bei Schwierigkeiten. Typische Situationen sind:

  • Nach der Planung einer nicht trivialen Änderung, aber vor der Implementierung. Dies ist der beste Zeitpunkt, um Entwurfsfehler zu erkennen, solange Anpassungen noch günstig sind.
  • Mitte der Implementierung, um blinde Flecken in einem komplexen Stück Arbeit zu überprüfen.
  • Nach dem Schreiben von Tests, um zu überprüfen, ob die Testabdeckung umfassend ist und das Verhalten Tatsächlich Ihre ursprüngliche Anforderung erfüllt.
  • Reaktiv handeln, wenn Copilot wiederholte Fehler oder unerwartete Ergebnisse festgestellt werden, um eine unabhängige Analyse des Problems zu erhalten, anstatt denselben Ansatz erneut zu versuchen.

Bei kleinen, gut verstandenen Änderungen überspringt Copilot normalerweise den Rubber-Duck-Agent.

Wenn Copilot den Rubber-Duck-Agent konsultiert, fasst er die resultierende Kritik für Sie in der Zeitleistenausgabe zusammen, anstatt sie wörtlich zu wiederholen – z. B. „Die Kritik hat einen blinden Fleck in Bezug auf X in meinem Plan aufgezeigt, also habe ich meinen Plan aktualisiert, um dies zu beheben.“

Manuelles Aufrufen des Rubber-Duck-Agents

In der Regel wird der Rubber-Duck-Agent automatisch von Copilot CLI konsultiert. Sie müssen nichts weiter tun. Die Zeitachsenausgabe zeigt, wann der Hauptagent eine Rubber-Duck-Krtitik erhält. Manchmal verwendet die CLI jedoch nicht den Rubber-Duck-Agent. Beispielsweise kann es entscheiden, dass die Änderungen nicht umfangreich genug sind, um eine Kritik zu rechtfertigen.

Sie können eine Eingabeaufforderung in natürlicher Sprache verwenden, um explizit um eine zweite Meinung zu bitten Copilot . Zum Beispiel können Sie, nachdem Sie Copilot aufgefordert haben, einen Arbeitsplan zu erstellen, eine Eingabeaufforderung eingeben wie:

Rubber duck your plan.

Oder während einer Reihe von Änderungen könnten Sie einen Prompt wie den Folgenden verfassen:

Get a critique of the changes you've made so far.

Sie können den Rubber-Duck-Agent auch mit einem Slash-Befehl aufrufen:

/rubber-duck What edge cases are missing?

Vorteile der Verwendung des Rubber-Duck-Agents

  • Fängt Probleme frühzeitig ab. Die meisten nicht trivialen Aufgaben, die fehlschlagen, haben Probleme, die eine Kritik in der Planungsphase erwischt haben könnte. Es ist vorzuziehen, Feedback einzuholen, bevor der Code geschrieben wird, anstatt später im Prozess Probleme zu beheben.

    Hinweis

    Die Abfrage des Rubber-Duck-Agents führt einen zusätzlichen Schlussfolgerungspass auf einem separaten Modell aus, was einige Latenz hinzufügt und eine zusätzliche Nutzung des Modells erfordert. Der Vorteil besteht darin, dass Sie, wenn Sie im Voraus etwas mehr Zeit und Ressourcen investieren, insgesamt Zeit und Modellnutzung sparen können, indem Sie Probleme frühzeitig erkennen und die Anzahl der fehlgeschlagenen Versuche zur Durchführung einer Aufgabe reduzieren.

  • Reduziert blinde Flecken eines Einzelmodells. Da der Agent ein Modell aus einer anderen Familie nutzt, bietet er eine wirklich andere Perspektive an, anstatt die gleichen Argumentationsabläufe wie bei der ursprünglichen Arbeit zu wiederholen.

  • Verbessert die Qualität komplexer Änderungen. Architekturentscheidungen, Änderungen an mehreren Dateien und unbekannte Codebasen profitieren von einer zweiten Meinung, bevor Copilot sich auf einen Ansatz festlegt.

  • Hält sich für einfache Aufgaben im Hintergrund. Copilot konsultiert nur den Rubber-Duck-Agent, wenn die Arbeit nicht trivial ist, damit schnelle Bearbeitungen und offensichtliche Korrekturen nicht verlangsamt werden.

Weiterführende Lektüre