Skip to main content

Verantwortungsvolle Nutzung des GitHub Copilot-Programmier-Agents auf GitHub.com

Hier erfährst du, wie du Copilot-Programmierassistent auf GitHub.com verantwortungsbewusst verwendest, indem die Zwecke, Funktionen und Einschränkungen erläutert werden.

Informationen zu Copilot-Programmierassistent auf GitHub.com

Copilot-Programmierassistent ist ein autonomer und asynchroner Softwareentwicklungs-Agent, der in GitHub integriert ist. Der Agent kann eine Aufgabe von einem Issue oder aus Copilot-Chat übernehmen, einen Pull Request erstellen und dann als Reaktion auf Kommentare den Pull Request durchlaufen.

Copilot-Programmierassistent kann angemessene Änderungen basierend auf deiner Beschreibung und Konfiguration generieren, einschließlich Aufgaben wie Fehlerbehebungen, Implementieren inkrementeller neuer Features, Prototyperstellung, Dokumentation und Pflege der Codebasis. Nachdem der anfängliche Pull Request erstellt wurde, kann der Agent basierend auf deinen Feedback und deinen Rezensionen mit dir iterieren.

Während der Arbeit an deiner Aufgabe hat der Agent Zugriff auf seine eigene kurzlebige Entwicklungsumgebung, in der er Änderungen an deinem Code vornehmen, automatisierte Tests durchführen und Linter ausführen kann.

Der Agent wurde für eine Vielzahl von Programmiersprachen ausgewertet, wobei Englisch als primär unterstützte Sprache verwendet wird.

Der Agent arbeitet mit einer Kombination aus Verarbeitung natürlicher Sprache und maschinellem Lernen, um deine Aufgabe zu verstehen und Änderungen an einer Codebasis vorzunehmen, um die Aufgabe abzuschließen. Dieser Prozess kann in eine Reihe von Schritten unterteilt werden.

Promptverarbeitung

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 einen Prompt zu erstellen. Dieser Prompt wird zur Verarbeitung an ein großes Sprachmodell gesendet. Eingaben sind in Form von einfacher natürlicher Sprache, Codeausschnitten oder Bildern möglich.

Sprachmodellanalyse

Der Prompt wird dann über ein großes Sprachmodell übergeben. Dabei handelt es sich um ein neuronales Netz, das mit einer großen Menge an Daten trainiert wurde. Das Sprachmodell analysiert den Prompt, um den Agent bei Rückschlüssen für die Aufgabe und der Verwendung der erforderlichen Tools zu unterstützen.

Antwortgenerierung

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

Ausgabeformatierung

Sobald der Agent die erste Ausführung abgeschlossen hat, aktualisiert er die Beschreibung des Pull Requests mit den vorgenommenen Änderungen. Der Agent kann zusätzliche Informationen zu Ressourcen angeben, auf die er nicht zugreifen konnte, und Vorschläge zu den notwendigen Schritten machen.

Du kannst dem Agent Feedback geben, indem du Kommentare im Pull Request machst oder den Agent explizit erwähnst (@copilot). Der Agent sendet dieses Feedback dann erneut an das Sprachmodell zur weiteren Analyse. Sobald der Agent Änderungen basierend auf dem Feedback vorgenommen hat, antwortet er mit den Änderungen auf deinen Kommentar.

Copilot soll dir die relevanteste Lösung für die Aufgabenbewältigung liefern. Es ist jedoch möglicherweise nicht immer die Antwort, die du suchst. Du bist dafür verantwortlich, die von Copilot generierten Antworten auf Richtigkeit und Angemessenheit zu prüfen.

Darüber hinaus führt GitHub im Rahmen des Produktentwicklungsprozesses Red Teaming (Tests) durch, um die Sicherheit des Agenten zu verstehen und zu verbessern.

Informationen zur Verbesserung der Leistung findest du unter Verbesserung der Leistung für Copilot-Programmierassistent weiter unten.

Anwendungsfälle für Copilot-Programmierassistent

Du kannst in vielen Szenarios eine Aufgabe an Copilot delegieren, einschließlich, aber nicht beschränkt auf:

  •         **Pflege der Codebasis:** sicherheitsbezogene Fixes, Abhängigkeitsupgrades und gezieltes Refactoring
    
  •         **Dokumentation:** Aktualisieren und Erstellen neuer Dokumentationen
    
  •         **Featureentwicklung:** Implementierung inkrementeller Featureanforderungen
    
  •         **Verbesserung der Testabdeckung:** Entwicklung zusätzlicher Testsuites für das Qualitätsmanagement
    
  •         **Prototyperstellung neuer Projekte:** Umsetzung neuer Konzepte auf unberührtem Terrain
    

Verbessern der Leistung für Copilot-Programmierassistent

Copilot-Programmierassistent kann verschiedenste Aufgaben unterstützen. Um die Leistung zu verbessern und einige der Einschränkungen des Agenten zu beheben, gibt es verschiedene Maßnahmen, die du treffen kannst.

Weitere Informationen zu Einschränkungen findest du unter Einschränkungen von Copilot-Programmierassistent weiter unten.

Stellen Sie sicher, dass Ihre Aufgaben gut definiert sind

Copilot-Programmierassistent nutzt deinen Prompt als Schlüsselkontext beim Generieren eines Pull Requests. Je klarer und übersichtlicher der Prompt ist, den du dem Agent zuweist, desto besser sind die Ergebnisse. Ein ideales Issue enthält:

  • Eine klare Beschreibung des zu lösenden Problems oder der erforderlichen Arbeit
  • Vollständige Akzeptanzkriterien für eine gute Lösung (sollte es z. B. Komponententests geben?)
  • Hinweise oder Indikatoren, welche Dateien geändert werden müssen

Passen Sie Ihr Erlebnis mit zusätzlichem Kontext an

Copilot-Programmierassistent nutzt deinen Prompt, Kommentare und den Code des Repositorys als Kontext, wenn vorgeschlagene Änderungen generiert werden. Um die Leistung von Copilot zu verbessern, solltest du benutzerdefinierte Copilot-Anweisungen implementieren, damit der Agent dein Projekt und das Vornehmen, Testen und Überprüfen der Änderungen besser versteht. Weitere Informationen findest du unter „Hinzufügen von benutzerdefinierten Anweisungen zu deinem Repository“ unter Bewährte Methoden für die Verwendung von GitHub Copilot für die Arbeit an Aufgaben.

Informationen zu anderen Anpassungen für Copilot-Programmierassistent findest du unter:

  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-the-development-environment-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/customizing-copilot/customizing-or-disabling-the-firewall-for-copilot-coding-agent)
    
  •         [AUTOTITLE](/copilot/using-github-copilot/coding-agent/extending-copilot-coding-agent-with-mcp)
    

Copilot-Programmierassistent als Tool verwenden, nicht als Ersatz

Copilot-Programmierassistent kann zwar ein leistungsfähiges Tool zum Generieren von Code und Dokumentation sein, es ist aber wichtig, es als Hilfsmittel und nicht als Ersatz für die menschliches Programmieren zu verwenden. Du solltest die vom Agent generierten Inhalte immer überprüfen und testen, um sicherzustellen, dass sie deine Anforderungen erfüllt und vor dem Mergen frei von Fehlern oder Sicherheitsproblemen sind.

Methoden für die sichere Programmierung und Code Reviews verwenden

Obwohl Copilot-Programmierassistent syntaktisch korrekten Code generieren kann, ist dieser möglicherweise nicht immer sicher. Du solltest immer bewährte Methoden für die sichere Programmierung befolgen und beispielsweise hartcodierte Kennwörter oder Sicherheitsrisiken durch Einschleusung von SQL vermeiden. Zudem solltest du dich an die bewährten Methoden für Code Reviews halten, um die Einschränkungen des Agents zu berücksichtigen. Du solltest immer die gleichen Vorsichtsmaßnahmen treffen wie bei selbstgeschriebenem Code, der Material verwendet, das du nicht unabhängig bezogen hast, einschließlich solcher Vorsichtsmaßnahmen, um dessen Eignung zu gewährleisten. Diese Vorsichtsmaßnahmen umfassen strenge Tests, IP-Überprüfungen und Suchen nach Sicherheitsrisiken.

Feedback geben

Wenn mit Copilot-Programmierassistent auf GitHub.com Probleme oder Einschränkungen auftreten, empfehlen wir, dein Feedback zu geben, indem du unter jeder Agent-Antwort auf das Daumen nach unten Symbol klickst. Dies kann Entwickler*innen dabei helfen, das Tool zu verbessern und alle Probleme oder Einschränkungen zu behandeln. Darüber hinaus kannst du Feedback im Communityforum geben.

Auf dem Laufenden bleiben

Copilot-Programmierassistent ist eine neue Technologie und wird sich wahrscheinlich im Laufe der Zeit weiterentwickeln. Sie sollten sich über alle neuen Sicherheitsrisiken sowie neu entwickelte bewährte Methoden auf dem Laufenden halten.

Sicherheitsmaßnahmen für Copilot-Programmierassistent

Standardmäßig sind in Copilot-Programmierassistent verschiedene Vorsichtsmaßnahmen integriert, um sicherzustellen, dass deine Daten und die Codebasis sicher sind. Obwohl Vorsichtsmaßnahmen vorhanden sind, solltest du weiterhin bewährte Methoden für die Sicherheit implementieren und die Einschränkungen des Agents sowie deren Auswirkung auf deinen Code kennen.

Vermeidung der Privilegieneskalation

Copilot-Programmierassistent reagiert nur auf Interaktionen (z. B. das Zuweisen des Agents oder Kommentars) von Benutzern mit Repositoryschreibzugriff.

GitHub Actions-Workflows, die als Reaktion auf Pull Requests ausgelöst wurden, die von Copilot-Programmierassistent erstellt wurden, erfordern eine Genehmigung von einem Benutzer mit Repositoryschreibzugriff, bevor sie ausgeführt werden.

Der Agent filtert versteckte Zeichen, die nicht auf GitHub.com angezeigt werden, was Benutzern ansonsten ermöglichen könnte, schädliche Anweisungen in Kommentaren oder Inhalte im Hauptteil eines Issues zu verstecken. Dies schützt vor Risiken wie Jailbreaks.

Einschränken der Copilot-Berechtigungen

Copilot hat nur Zugriff auf das Repository, in dem ein Pull Request erstellt wird, und kann nicht auf andere Repositorys zugreifen.

Die Berechtigungen sind darauf eingeschränkt, Code zu pushen und andere Ressourcen zu lesen. Integrierte Schutzmaßnahmen bedeuten, dass Copilot nur an Branches pushen darf, deren Namen mit copilot/ beginnen. Dies bedeutet, dass Copilot nicht an deinen Standardbranch (z. B. main) pushen kann.

Copilot-Programmierassistent hat während der Laufzeit keinen Zugriff auf Organisations- oder Repositoryschlüssel oder -variablen von Actions. Nur Geheimnisse und Variablen, die speziell zur copilot-Umgebung hinzugefügt werden, werden an den Agent übergeben.

Verhindern der Datenexfiltration

Standardmäßig ist für Copilot-Programmierassistent eine Firewall aktiviert, um die Exfiltration von Code oder anderen vertraulichen Daten zu verhindern, entweder versehentlich oder aufgrund von böswilligen Benutzereingaben.

Weitere Informationen finden Sie unter Anpassen oder Deaktivieren der Firewall für den GitHub Copilot-Programmier-Agent.

Verhindern von Sicherheitsrisiken im generierten Code

Während des Codegenerierungsprozesses analysiert Copilot-Programmierassistent automatisch den neu generierten Code auf Sicherheitsrisiken und versucht, sie zu beheben, um zu verhindern, dass erkannte Probleme eingeführt werden. Die Analyse erfolgt mithilfe der folgenden Tools und Prozesse:

  •         **CodeQL**: wird ausgeführt, um potenzielle Sicherheitsrisiken und Fehler zu identifizieren.
    
  •         **Secret scanning**: sucht nach bekannten Arten von geheimen Schlüsseln, um sicherzustellen, dass geheime Schlüssel nicht in der Antwort eingeführt werden.
    
  •         **Abhängigkeitsanalyse**: Abhängigkeiten, auf die durch neuen Code verwiesen wird, werden auf bekannte Sicherheitsrisiken in den GitHub Advisory Database überprüft.
    

Einschränkungen von Copilot-Programmierassistent

Abhängig von Faktoren wie zum Beispiel Ihrer Codebasis und Ihren Eingabedaten können Sie bei der Nutzung von Copilot-Programmierassistent unterschiedliche Leistungsniveaus erleben. Die folgenden Informationen sind dazu ausgelegt, dich dabei zu unterstützen, Systemeinschränkungen und wichtige Konzepte zur Leistung nachzuvollziehen, die für den Copilot-Programmierassistent gelten.

Eingeschränkter Gültigkeitsbereich

Das von Copilot-Programmierassistent verwendete Sprachmodell wurde mit einer großen Codemenge trainiert, verfügt aber dennoch über einen begrenzten Anwendungsbereich und kann bestimmte Codestrukturen oder unbekannte Programmiersprachen nicht verarbeiten. Für jede Sprache hängt die Qualität der Vorschläge, die du erhältst, von der Menge und Vielfalt der Trainingsdaten für diese Sprache ab.

Potenzielle Verzerrungen

Das Sprachmodell, das von Copilot-Programmierassistent für seine Schulungsdaten und den vom großen Sprachmodell gesammelten Kontext verwendet wird, kann Bias und Fehler enthalten, die ggf. vom Tool übernommen werden. Außerdem kann der Copilot-Programmierassistent auf bestimmte Programmiersprachen oder Programmierstile ausgerichtet sein, was zu suboptimalem oder unvollständigen Vorschlägen führen kann.

Sicherheitsrisiken

Copilot-Programmierassistent generiert Code und natürliche Sprache basierend auf dem Kontext eines Issues oder Kommentars innerhalb eines Repositorys, wodurch vertrauliche Informationen offengelegt oder Sicherheitsrisiken entstehen können, wenn sie nicht sorgfältig verwendet werden. Achte darauf, alle vom Agent generierten Ausgaben vor dem Mergen gründlich zu überprüfen.

Ungenauer Code

Copilot-Programmierassistent kann Code generieren, der funktionstüchtig zu sein scheint, aber möglicherweise nicht semantisch oder syntaktisch korrekt ist oder die Absicht des Entwicklers nicht genau widerspiegelt.

Um das Risiko von ungenauem Code zu minimieren, solltest du den generierten Code sorgfältig überprüfen und testen, insbesondere bei kritischen oder vertraulichen Anwendungen. Darüber hinaus solltest du sicherstellen, dass der generierte Code den bewährten Methoden und Entwurfsmustern entspricht und in die allgemeine Architektur und den Stil der Codebasis passt.

Öffentlicher Code

Copilot-Programmierassistent generiert möglicherweise Code, der mit öffentlich verfügbarem Code übereinstimmt oder fast identisch ist, selbst wenn die Richtlinie „Vorschläge, die mit öffentlichem Code übereinstimmen“ auf „Blockieren“ eingestellt ist. Weitere Informationen findest du unter Verwalten von GitHub Copilot-Richtlinien als Einzelperson mit einem Abonnent.

Wenn dies passiert, zeigt Copilot Entsprechungen in den Sitzungsprotokollen des Agenten an und bietet einen Link, um die Details des entsprechenden Codes anzuzeigen. Weitere Informationen finden Sie unter Nachverfolgen von GitHub Copilot-Sitzungen.

Benutzer müssen potenzielle rechtliche und behördliche Verpflichtungen berücksichtigen, wenn du KI-Dienste und -Lösungen verwendest. Diese sind möglicherweise nicht für die Verwendung in jeder Branche oder in jedem Szenario geeignet. Darüber hinaus sind KI-Dienste oder -Lösungen nicht dafür konzipiert, auf eine Weise verwendet zu werden, die gegen die geltenden Nutzungsbedingungen und Verhaltensregeln verstößt, und dürfen nicht solchermaßen eingesetzt werden.

Externe Einbindungen mit dem Copilot-Coding-Agent

Copilot-Programmierassistent kann Informationen und Kontext von externen Anwendungen wie Microsoft Teams, Linear und Slack empfangen. Wenn Sie die externe Anwendung auf diesen Plattformen erwähnen oder dem Codierungs-Agent eine Aufgabe über einen verbundenen Workflow zuweisen, kann sie auf relevanten Kontext zugreifen, z. B. unterhaltungsverlauf in Threads, in denen sie erwähnt wird, oder Problemdetails und Aktivitätszeitachsen. Auf diese Weise kann der Codierungs-Agent Ihre Entwicklungsanforderungen besser verstehen und relevantere Unterstützung bieten. Mit diesen Integrationen können Teams an Code zusammenarbeiten, Aufgaben zuweisen und den Fortschritt direkt innerhalb ihrer vorhandenen Workflows nachverfolgen, ohne Tools zu wechseln. Stellen Sie sicher, dass Ihr Team versteht, welche Informationen freigegeben werden, und konfigurieren Sie Integrationen gemäß den Datenschutz- und Datenverarbeitungsrichtlinien Ihrer Organisation.

Weitere Informationen zu externen Integrationen mit Copilot-Programmierassistent finden Sie unter: * Integrieren des Copilot-Programmier-Agents mit Teams * Integration von Copilot-Codierungsagent mit Linear * Integrieren des Copilot-Codierungs-Agents mit Slack