Verantwortungsvolle Nutzung von GitHub Copilot Cloud Agent auf GitHub.com

Abgeschlossen

Erfahren Sie, wie Sie copilot Cloud Agent für GitHub.com verantwortungsbewusst verwenden, indem Sie ihre Zwecke, Funktionen und Einschränkungen verstehen.

Am Ende dieser Einheit können Sie:

  • Verstehen Sie den Zweck, die Funktionen und Grenzen des Copilot Cloud-Agents für GitHub.com.
  • Wenden Sie Methoden für die verantwortungsvolle Verwendung an: Bereichsdefinitionen, Schützen von Umgebungen und Validieren von Ergebnissen.
  • Erkennen Sie Sicherheitsmaßnahmen, Risiken und Risikominderungen, und verbessern Sie die Leistung.

Über Copilot Cloud Agent auf GitHub.com

Copilot Cloud Agent ist ein autonomer und asynchroner Softwareentwicklungs-Agent, der in GitHub integriert ist. Der Agent kann eine Aufgabe aus einem Problem oder von Copilot Chat abrufen, eine Verzweigung erstellen, die Codebasis erkunden, einen Implementierungsplan generieren und Code entwerfen, sodass Sie entscheiden können, ob und wann eine Pullanforderung geöffnet werden soll.

Copilot Cloud Agent kann maßgeschneiderte Änderungen basierend auf Ihrer Beschreibung und Konfiguration generieren, einschließlich Aufgaben wie Fehlerbehebungen, Implementieren inkrementeller neuer Features, Prototyperstellung, Dokumentation und Codebasiswartung. Wenn Sie sich entscheiden, eine Pull-Anforderung zu erstellen, kann der Agent basierend auf Ihrem Feedback und Ihren Rezensionen mit Ihnen iterieren.

Während der Bearbeitung Ihrer Aufgabe hat der Agent Zugriff auf seine eigene temporäre Entwicklungsumgebung, in der er Änderungen an Ihrem Code vornehmen, automatisierte Tests durchführen und Linter ausführen kann. Der Agent wurde für verschiedene Programmiersprachen evaluiert, wobei Englisch die primär unterstützte Sprache ist.

Funktionsweise des Agenten (Ende-zu-Ende)

  • Prompt-Verarbeitung

    Die Aufgabe, die Copilot über ein Issue, einen Pull-Request-Kommentar oder eine Copilot-Chat-Nachricht erhält, wird mit anderen relevanten, kontextbezogenen Informationen kombiniert, um eine Aufforderung zu erstellen. Eingaben können in Form von einfacher natürlicher Sprache, Codeausschnitten oder Bildern erfolgen.

  • Sprachmodellanalyse

    Die Eingabe wird dann durch ein großes Sprachmodell verarbeitet, das die Eingabe analysiert, um dem Agenten beim Verständnis der Aufgabe zu helfen und die erforderlichen Tools zu nutzen.

  • Reaktionsgenerierung

    Das Sprachmodell generiert eine Antwort auf Grundlage seiner Analyse des Prompts. Diese Antwort kann in Form von Vorschlägen in natürlicher Sprache und Codevorschlägen erfolgen.

  • Ausgabeformatierung

    Sobald der Agent seinen ersten Durchlauf abgeschlossen hat, aktualisiert er die Beschreibung des Pull Requests mit den vorgenommenen Änderungen. Der Agent kann zusätzliche Informationen über die Ressourcen bereitstellen, auf die er nicht zugreifen konnte, und Vorschläge zu den Schritten machen, um das Problem zu beheben.

    Sie können dem Agent Feedback geben, indem Sie innerhalb der Pull-Anforderung kommentieren oder den Agent explizit erwähnen (@copilot). Der Agent wird dieses Feedback dann zur weiteren Analyse erneut an das Sprachmodell übermitteln. Sobald der Agent Änderungen basierend auf dem Feedback abgeschlossen hat, antwortet er mit aktualisierten Änderungen auf Ihren Kommentar.

Copilot soll Ihnen die relevanteste Lösung für die Erledigung Ihrer Aufgaben bieten. Es kann jedoch vorkommen, dass Sie nicht immer die gewünschte Antwort erhalten. Sie sind verantwortlich für die Überprüfung und Validierung der Antworten von Copilot, um sicherzustellen, dass sie korrekt und angemessen sind. Darüber hinaus führt GitHub im Rahmen unseres Produktentwicklungsprozesses Red Teaming (Tests) durch, um die Sicherheit des Agenten zu verstehen und zu verbessern.

Anwendungsfälle für Copilot Cloud Agent

  • Codebase-Wartung: Sicherheitsfixes, Abhängigkeitsupgrades und gezielte Umgestaltung.
  • Dokumentation: Aktualisieren und Erstellen neuer Dokumentationen
  • Featureentwicklung: Implementieren inkrementeller Featureanfragen
  • Verbesserung der Testabdeckung: Entwicklung zusätzlicher Testsuites für das Qualitätsmanagement
  • Prototyperstellung neuer Projekte: Entwicklung neuer Konzepte von Grund auf.

Verbessern der Leistung für Copilot Cloud Agent

Verwenden Sie die folgenden Maßnahmen, um die Leistung zu verbessern und Einschränkungen zu beheben:

Stellen Sie sicher, dass Ihre Aufgaben gut eingegrenzt sind, indem Sie Folgendes bereitstellen:

  • Eine klare Beschreibung des zu lösenden Problems oder der erforderlichen Arbeit.
  • Vollständige Akzeptanzkriterien dafür, wie eine gute Lösung aussehen sollte (sollten beispielsweise Unit-Tests durchgeführt werden?).
  • Hinweise oder Empfehlungen dazu, welche Dateien geändert werden müssen.

Anpassen der Benutzeroberfläche mit zusätzlichem Kontext

Copilot Cloud Agent nutzt Ihre Eingabeaufforderung, Kommentare und den Code des Repositorys als Kontext, wenn vorgeschlagene Änderungen generiert werden. Verbessern Sie die Ergebnisse, indem Sie benutzerdefinierte Copilot-Anweisungen hinzufügen, damit der Agent versteht, wie die Änderungen erstellt, getestet und überprüft werden.

Weitere hilfreiche Anpassungen:

  • Anpassen der Entwicklungsumgebung für GitHub Copilot Cloud Agent
  • Anpassen oder Deaktivieren der Firewall für GitHub Copilot Cloud Agent
  • Erweitern von GitHub Copilot Cloud Agent mit dem Model Context Protocol (MCP)

Verwenden von Copilot Cloud Agent als Tool, nicht als Ersatz

Überprüfen und testen Sie immer die vom Agent generierten Inhalte, um sicherzustellen, dass sie Ihre Anforderungen erfüllt und frei von Fehlern oder Sicherheitsbedenken vor dem Zusammenführen ist.

Verwenden sicherer Codierungs- und Codeüberprüfungspraktiken

Obwohl Copilot Cloud Agent syntaktisch korrekten Code generieren kann, ist es möglicherweise nicht immer sicher. ** Befolgen Sie weiterhin bewährte Methoden für die sichere Codierung (vermeiden Sie hartcodierte Geheimnisse, verhindern Sie Injection-Schwachstellen), und wenden Sie strenge Tests, IP-Überprüfungen und Schwachstellenprüfungen an.

Feedback geben

Wenn Probleme oder Einschränkungen auftreten, verwenden Sie das Daumen-down-Symbol unter einer Agentantwort oder teilen Sie Feedback im Community-Diskussionsforum.

Bleiben Sie auf dem neuesten Stand

Copilot Cloud Agent entwickelt sich weiter. Überwachen Sie neue Sicherheitsrisiken und bewährte Methoden, sobald sie entstehen.

Sicherheitsmaßnahmen für Copilot Cloud Agent

Vermeiden einer Berechtigungseskalation

  • Copilot Cloud Agent reagiert nur auf Interaktionen von Benutzern mit Schreibzugriff .
  • Von Agenten-PRs ausgelöste Aktions-Workflows erfordern vor ihrer Ausführung die Genehmigung durch einen Benutzer mit Schreibzugriff.
  • Ausgeblendete Zeichen (die nicht auf GitHub.com angezeigt werden) werden gefiltert, um das Risiko von Prompt-Injection-Angriffen zu verringern.

Einschränken der Berechtigungen von Copilot

  • Der Agent greift nur auf das Repository zu, auf das er sich bezieht; es kann nicht auf andere Repositorys zugreifen.
  • Pushes sind auf Branches beschränkt, deren Namen mit copilot/ beginnen (nicht Ihr Standard-Branch).
  • Der Agent hat zur Laufzeit keinen Zugriff auf Org/Repo Actions-Geheimnisse oder Variablen. Nur die Geheimnisse oder Variablen, die der Copilot-Umgebung hinzugefügt wurden, werden an den Agenten übermittelt.

Verhindern der Datenexfiltration

Eine Firewall ist standardmäßig aktiviert, um versehentliche oder böswillige Exfiltration von Code oder vertraulichen Daten zu verhindern. Siehe Anpassen oder Deaktivieren der Firewall für GitHub Copilot Cloud Agent .

Einschränkungen von Copilot Cloud Agent

Je nach Codebasis und Eingaben kann die Leistung variieren. Beachten Sie diese Einschränkungen:

  • Begrenzter Umfang und Qualität: Das LLM behandelt möglicherweise bestimmte Codestrukturen oder verdeckte Sprachen nicht; Die Qualität variiert je nach Sprachabdeckung.
  • Mögliche Verzerrungen: Schulungsdaten und abgerufener Kontext können Verzerrungen umfassen; Der Agent kann sich auf bestimmte Sprachen oder Stile stützen.
  • Sicherheitsrisiken: Generierter Code basiert auf dem Repositorykontext und kann vertrauliche Informationen verfügbar machen, wenn sie nicht überprüft werden; Eine gründliche Überprüfung ist erforderlich.
  • Ungenauer Code: Code kann richtig erscheinen, aber semantisch/syntaktisch falsch oder mit Absicht falsch ausgerichtet sein. Validieren Sie Passform, Muster und Stil.
  • Öffentlicher Code: Der Agent kann Übereinstimmungen/Nah-Übereinstimmungen mit öffentlichem Code erzeugen, auch wenn "Blockieren" festgelegt ist; Verweise dürfen nicht bereitgestellt werden.
  • Rechtlich/regulatorisch: Sicherstellen der Einhaltung der geltenden Verpflichtungen; vermeiden Sie die verbotene Nutzung gemäß den Nutzungsbedingungen und Verhaltensregeln.