Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

Anwendungskarte: GitHub Copilot Agents

Erfahren Sie, wie Sie GitHub Copilot agentischen Features verantwortungsbewusst verwenden können, indem Sie ihre Zwecke, Funktionen und Einschränkungen verstehen.

Was ist eine Anwendungskarte?

GitHub’s application and platform cards are intended to help you understand how our AI technology works, the choices application owners can make that influence application performance and behavior, and the importance of considering the whole application, including the technology, the people, and the environment. Application cards are created for AI applications and platform cards are created for AI platform services. These resources can support the development or deployment of your own applications and can be shared with users or stakeholders impacted by them.

As part of its commitment to responsible AI, GitHub adheres to Microsoft's six core principles: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. These principles are embedded in the Responsible AI Standard, which guides teams in designing, building, and testing AI applications. Application and Platform Cards play a key role in operationalizing these principles by offering transparency around capabilities, intended uses, and limitations. For further insight, readers are encouraged to explore Microsoft’s Responsible AI Transparency Report and GitHub-Bedingungen.

1. Übersicht

GitHub Copilot umfasst mehrere agentische Features, die über Vorschläge und Unterhaltungen hinausgehen– sie können Code überprüfen, Aktionen in Ihrem Auftrag ergreifen und Anwendungen erstellen. Diese Karte deckt die folgenden Erfahrungen ab:

  • Copilot-Codeüberprüfung: Überprüft Pull-Request-Diffs und Metadaten auf GitHub.com und erstellt Feedbackkommentare sowie vorgeschlagene Änderungen.

  • Copilot Cloud-Agent: Ein asynchroner Agent für GitHub.com, der Verzweigungen erstellen, Code schreiben und Pullanforderungen als Reaktion auf zugewiesene Probleme öffnen kann. Der Cloud-Agent wird in einer kurzlebigen, firewallierten Umgebung mit automatisierter Sicherheitsüberprüfung ausgeführt.

  • Copilot CLI: Ein Befehlszeilentool zum Erstellen und Ändern von Dateien, Ausführen von Befehlen und Ausführen von Aufgaben mit mehreren Schritten. Alle Aktionen erfordern explizite Bestätigungsaufforderungen und sind auf das aktuelle Verzeichnis beschränkt.

  • Copilot SDK: Eine programmgesteuerte Bibliothek, mit der Entwickler benutzerdefinierte KI-basierte Anwendungen mit Copilot erstellen können. Das SDK kommuniziert mit Copilot CLI über JSON-RPC und unterstützt benutzerdefinierte Agents, MCP-Serverintegrationen, Lebenszyklus-Hooks und Sitzungsverwaltung.

  • GitHub Spark (Vorschau): Eine verwaltete App-Erstellungserfahrung, in der ein Agent Code schreibt und Befehle in einer Entwicklungsumgebung ausführt. Spark stellt eine verwaltete Laufzeit bereit und kann Über das GitHub Models SDK Rückschlussfunktionen hinzufügen.

Diese Features teilen gemeinsame Prinzipien – menschliche Aufsicht, Überprüfung von Ausgaben und verantwortungsvolle Verwendung – unterscheiden sich jedoch in ihren Ausführungsumgebungen, Berechtigungen und Datenflüssen. In den folgenden Abschnitten werden die einzelnen Erfahrungen im Kontext beschrieben.

2. Schlüsselbegriffe

Die folgende Liste enthält ein Glossar mit wichtigen Begriffen im Zusammenhang mit GitHub Copilot Agents:

  • Codevorschlag: Eine spezifische Codeänderung, die von der Copilot-Codeüberprüfung im Rahmen ihres Feedbacks zu einem Pull Request vorgeschlagen wird. Codevorschläge werden als vorgeschlagene Änderungen dargestellt, die mit einigen Klicks angewendet werden können.

  • Inhaltsfilterung: Ein Sicherheitssystem, das Eingabeaufforderungen und Antworten überprüft, um schädliche, anstößige oder unsichere Inhalte zu erkennen und zu blockieren, bevor sie dem Benutzer angezeigt wird.

  • Benutzerdefinierte Anweisungen: Natürlichsprachliche Beschreibungen von Codierungsstil und bewährten Verfahren, die ein Repository-Verwalter konfigurieren kann, um das Feedback der Copilot-Codeüberprüfung zu steuern. Benutzerdefinierte Anweisungen helfen Copilot die Konventionen und Standards einer bestimmten Codebasis zu verstehen.

  • Halluzination: Ein Phänomen, bei dem ein Sprachmodell eine Ausgabe generiert, die plausibel klingt, aber sachlich falsch, nicht vom bereitgestellten Kontext unterstützt oder vollständig erstellt wird. Bei der Codeüberprüfung können sich Halluzinationen als Feedback äußern, das Probleme hervorhebt, die nicht existieren oder auf Missverständnissen in Bezug auf den Code beruhen.

  • Großes Sprachmodell (LLM): Eine Art neurales Netzwerk, das auf einem großen Textteil von Textdaten trainiert wurde, der natürliche Sprache und Code generieren, analysieren und transformieren kann. Copilot Agents verwenden eine oder mehrere LLMs, um Kontext zu verarbeiten und Antworten zu erzeugen.

  • Ephemerale Entwicklungsumgebung: Eine temporäre, isolierte Computeumgebung, die für jede Cloud-Agent-Sitzung erstellt wurde. Die Umgebung wird nach Ende der Sitzung zerstört, sodass zwischen den Ausführungen kein Zustand erhalten bleibt.

  • Firewall: Ein standardmäßig für den Cloud-Agent aktiviertes Steuerelement auf Netzwerkebene, das ausgehende Verbindungen mit nicht autorisierten Hosts verhindert und vor versehentlicher oder böswilliger Exfiltration von Code oder Daten schützt.

  • AI credit: Eine Verbrauchseinheit für Copilot Features. Jede Copilot-Codeüberprüfung verbraucht KI-Gutschriften.

  • Permission-Eingabeaufforderung: Ein interaktiver Bestätigungsschritt in Copilot CLI, der den Benutzer auffordert, eine Aktion zu genehmigen, z. B. eine Datei zu ändern, einen Befehl auszuführen oder auf Dateien außerhalb des aktuellen Verzeichnisses zuzugreifen, bevor der Agent fortfährt. Berechtigungsaufforderungen sind ein wichtiger Sicherheitsmechanismus für die lokale agentische Ausführung.

  • Copilot SDK: Eine programmgesteuerte Bibliothek (@github/copilot-sdk), mit der Entwickler benutzerdefinierte KI-basierte Anwendungen erstellen können, indem Sitzungen erstellt, Eingabeaufforderungen gesendet und Streamingantworten von Copilot empfangen werden. Das SDK kommuniziert mit Copilot CLI über JSON-RPC.

  • JSON-RPC: Das kommunikationsprotokoll, das zwischen dem Copilot SDK und Copilot CLI verwendet wird. Das SDK sendet strukturierte Anforderungen an den CLI-Prozess, der die Modellinteraktion und die Toolausführung verarbeitet.

  • Benutzerdefinierter Agent (SDK): Eine benannte Agent-Konfiguration innerhalb des SDK, die über eine eigene Systemaufforderung, bereichsbezogene Tools und optionale MCP-Server verfügt. Die SDK-Laufzeit kann basierend auf Benutzerabsicht automatisch an Unter-Agents delegiert werden.

  • Hooks (SDK): Lebenszyklusrückrufe im Copilot SDK, mit denen Entwickler benutzerdefinierte Logik an bestimmten Punkten während einer Sitzung einfügen können, z. B. vor oder nach der Toolverwendung, beim Sitzungsstart oder -ende und beim Fehler.

  • Managed runtime: Die vollständig verwaltete Hostingumgebung, die von GitHub Spark bereitgestellt wird, die mit den Anforderungen Ihrer Anwendung skaliert wird, und beseitigt die Notwendigkeit, die Infrastruktur manuell zu verwalten.

  • Spark: Eine Anwendung, die mit GitHub Spark erstellt wurde. Sparks können von einfachen Dienstprogrammen bis hin zu Full-Stack-Webanwendungen reichen und im öffentlichen Internet mit konfigurierbarer Sichtbarkeit bereitgestellt werden.

  • Targeted edit: Ein Feature in GitHub Spark, mit dem Sie ein bestimmtes Element in Ihrer Anwendung auswählen und eine fokussierte Aufforderung zum Verfeinern des Stils, der Substanz oder des Verhaltens bereitstellen können, anstatt eine globale Änderung anzuwenden.

3. Wesentliche Merkmale oder Funktionen

Die hier beschriebenen wichtigsten Merkmale und Funktionen erläutern, wofür GitHub Copilot Agents ausgelegt sind und wie sie bei den unterstützten Aufgaben arbeiten.

  • Automatiertes Feedback zur Codeüberprüfung: Wenn ein Benutzer eine Überprüfung von Copilot anfordert, überprüft er die Codeänderungen sowie zusätzlichen relevanten Kontext und gibt Feedback zum Code. Feedback kann Kommentare in natürlicher Sprache und spezifische Codevorschläge enthalten, die mit bestimmten Zeilen und Dateien verknüpft sind.

  • Anpassbare Prüfhinweise: Die Copilot-Codeüberprüfung kann durch benutzerdefinierte Anweisungen – natürliche Sprachbeschreibungen von Programmierstil und bewährten Verfahren – angepasst werden, sodass das Feedback die Konventionen und Standards eines Repositorys widerspiegelt.

  • Autonomous Pull Request Creation: Der Copilot Cloud-Agent kann eine Aufgabe aus einem Problem, einem Pullanforderungskommentar oder Copilot Chat abrufen, eine Verzweigung erstellen, maßgeschneiderte Codeänderungen generieren und eine Pullanforderung öffnen. Nachdem der erste Pull Request erstellt wurde, kann der Agent ihn auf Grundlage Ihres Feedbacks und Ihrer Reviews iterativ weiterentwickeln.

  • Ephemerale, firewallierte Ausführung: Während der Arbeit an einer Aufgabe hat der Cloud-Agent Zugriff auf seine eigene kurzlebige Entwicklungsumgebung, in der er Änderungen an Code vornehmen, automatisierte Tests ausführen und Linters ausführen kann. Eine Firewall ist standardmäßig aktiviert, um Datenexfiltration zu verhindern.

  • Automatisierte Sicherheitsüberprüfung: Während der Codegenerierung analysiert der Cloud-Agent automatisch neu generierten Code für Sicherheitsrisiken mithilfe von CodeQL, geheimer Überprüfung und Abhängigkeitsanalyse und versucht, Probleme zu beheben, bevor sie eingeführt werden.

  • Externale Integrationen: Der Cloud-Agent kann Informationen und Kontext von MCP wie WorkIQ und Microsoft 365 sowie externe Anwendungen wie Microsoft Teams, Linear, Slack und Jira empfangen, sodass Teams Aufgaben zuweisen und den Fortschritt direkt in ihren vorhandenen Workflows nachverfolgen können.

  • Local agentic execution (Copilot CLI): Copilot CLI stellt eine chatähnliche Schnittstelle im Terminal bereit, die Dateien autonom erstellen und ändern, Befehle ausführen und mehrere Schritte ausführen kann. Alle Aktionen sind auf das aktuelle Verzeichnis festgelegt und erfordern explizite Berechtigungsaufforderungen, bevor der Agent Dateien ändert oder Befehle ausführt.

  • Natural Language App Building (Spark): GitHub Spark bietet eine natürliche sprachorientierte Entwicklungsumgebung zum Erstellen und Bereitstellen von Webanwendungen mit Vollstapel, ohne dass Benutzer Code manuell schreiben oder bereitstellen müssen. Spark bietet eine vollständig verwaltete Laufzeitumgebung, die mit den Anforderungen Ihrer Anwendung skaliert wird.

  • Inference-Funktionen (Spark): Das SDK von Spark ist nativ in GitHub-Modelle integriert, sodass Sie modellinterne Rückschlüsse in Ihre Anwendung integrieren können. Wenn Spark feststellt, dass Ihre Anwendung Inference-Funktionen erfordert, wird sie mithilfe des Spark SDK hinzugefügt.

4. Beabsichtigte Verwendung

GitHub Copilot Agents können in mehreren Szenarien in einer Vielzahl von Branchen verwendet werden. Beispiele für Anwendungsfälle sind:

  • Ergänzung der menschlichen Codeprüfung: Die Copilot-Codeprüfung soll schnell Rückmeldungen zum Code von Entwicklern liefern, damit sie ihren Code schneller für das Zusammenführen vorbereiten können und die Codequalität insgesamt steigt.

  • Codebase-Wartung: Der Cloud-Agent kann sicherheitsbezogene Fixes, Abhängigkeitsupgrades und gezielte Umgestaltung angehen.

  • Featureentwicklung: Der Cloud-Agent kann inkrementelle Featureanforderungen implementieren, zusätzliche Testsuiten entwickeln und Dokumentation erstellen oder aktualisieren.

  • Prototyping für neue Projekte: Der Cloud-Agent und die Copilot CLI können neue Konzepte von Grund auf entwickeln und Entwicklern helfen, Ideen schnell auszuprobieren.

  • Setting up your environment (CLI): Copilot CLI kann Befehle in Ihrem Terminal ausführen, um Ihre lokale Umgebung einzurichten, um an vorhandenen Projekten zu arbeiten.

  • Finden des richtigen Befehls (CLI): Copilot CLI kann Befehle vorschlagen, um Aufgaben auszuführen, die Sie ausführen möchten, und nicht vertraute Befehle in natürlicher Sprache zu erläutern.

  • Building custom AI applications (SDK): Mit dem Copilot SDK können Entwickler Anwendungen erstellen, die Copilot für die Codegenerierung, die Interaktion natürlicher Sprachen und die Aufgabenautomatisierung in ihren eigenen Produkten und Workflows nutzen.

  • Multi-Agent-Orchestrierung (SDK): Mithilfe von benutzerdefinierten Agents und Unter-Agents können Entwickler komplexe Workflows erstellen, bei denen mehrere spezialisierte Agents an komplexen Aufgaben zusammenarbeiten, wobei die automatische Delegierung basierend auf Benutzerabsicht erfolgt.

  • Erweitern von Anwendungen mit externen Tools (SDK): Die MCP-Serverunterstützung des SDK ermöglicht Es Entwicklern, ihre Anwendungen mit externen Datenquellen und Diensten zu verbinden und die Bandbreite der Aufgaben zu erweitern, die ihre Agents ausführen können.

  • Erstellen und Bereitstellen von Webanwendungen (Spark): Sie können GitHub Spark verwenden, um mithilfe natürlicher Sprache Full-Stack-Webanwendungen zu erstellen. Die integrierte Laufzeitumgebung von Spark ermöglicht ihnen die Bereitstellung dieser Anwendungen im öffentlichen Internet mit konfigurierbarer Sichtbarkeit basierend auf GitHub Kontoberechtigungen.

  • Schnelles Prototyping (Spark): Spark hilft Entwicklern, Designern, Produktmanagern und anderen Beteiligten, Ideen schnell als Prototypen umzusetzen, ohne Anwendungen von Grund auf neu erstellen oder komplexe Mockups erstellen zu müssen. Prototypen können für eine einfache Freigabe bereitgestellt oder unveröffentlicht bleiben.

5. Modelle und Trainingsdaten

GitHub Copilot Agents nutzen eine Vielzahl von KI-Modellen, um die Benutzerfreundlichkeit zu verbessern. Einen Vergleich der für Copilot verfügbaren Modelle finden Sie unter KI-Modellvergleich. Die vollständige Liste der unterstützten Modelle finden Sie unter Unterstützte KI-Modelle in GitHub Copilot. Informationen dazu, wo Modelle gehostet werden, finden Sie unter Hosting von Modellen für GitHub Copilot. Weitere Informationen zu den Daten, die zum Trainieren der Foundation-Modelle hinter GitHub Copilot Agents verwendet werden, finden Sie in dem oben verlinkten Vergleich der KI-Modelle sowie in What data has GitHub Copilot been trained on? in den GitHub Copilot-FAQ.

Copilot Codeüberprüfung ist ein zweckorientiertes Produkt, das eine sorgfältig abgestimmte Mischung aus Modellen, Eingabeaufforderungen und Systemverhalten verwendet, um konsistentes, qualitativ hochwertiges Feedback über eine vielzahl von Codebasen hinweg zu liefern. Der Modellwechsel wird nicht unterstützt, da das Ändern des Modells die Zuverlässigkeit, die Benutzererfahrung und die Qualität der Reviewkommentare wahrscheinlich beeinträchtigt. Die Copilot-Codeüberprüfung kann Modelle verwenden, die auf der Einstellungsseite „Modelle“ Ihrer Organisation nicht aktiviert sind.

Der Copilot Cloud-Agent verwendet ein großes Sprachmodell, um Aufgaben zu ermitteln, Code zu generieren und Tools in seiner kurzlebigen Entwicklungsumgebung zu nutzen. Der Agent wurde in einer Vielzahl von Programmiersprachen ausgewertet. Englisch ist die primäre unterstützte Sprache für Eingabeaufforderungen und Antworten.

Copilot CLI verwendet ein großes Sprachmodell zum Erstellen von Aufgaben, Generieren von Code, Ändern von Dateien und Ausführen von Befehlen in Ihrer lokalen Terminalumgebung. Der Agent wurde in einer Vielzahl von Programmiersprachen ausgewertet. Englisch ist die primäre unterstützte Sprache für Eingabeaufforderungen und Antworten.

Das Copilot SDK kommuniziert mit Copilot CLI über JSON-RPC mit den gleichen zugrunde liegenden Modellen und Funktionen. Anwendungen, die mit dem SDK erstellt wurden, verwenden dieselben Modelle, die für die authentifizierte Copilot Benutzer oder Organisation verfügbar sind. Entwickler können auch eigene API-Schlüssel (BYOK) verwenden, um benutzerdefinierte Modellanbieter zu verwenden.

GitHub Spark verwendet ein großes Sprachmodell, um seinen Agent in der Entwicklungsumgebung zu nutzen. Der Agent schreibt Code und führt Befehle aus, um Ihre Anwendung zu erstellen. Das SDK von Spark ist nativ in GitHub-Modelle integriert, sodass Ihre Anwendung modellinterne Ableitungsfunktionen integrieren kann. Informationen zu den modellen, die von GitHub Models verwendet werden, finden Sie unter Verantwortungsvolle Nutzung von GitHub-Modellen. Spark testet nicht die Aufforderungen, die Sie in Ihrer Anwendung erstellen, um Rückschlüsse zu ziehen. Sie müssen sicherstellen, dass die enthaltenen Funktionen wie vorgesehen funktionieren.

6. Leistung

Unterschiede nach Erfahrung

Copilot Cloudagent

Der Copilot Cloud-Agent funktioniert mithilfe einer Kombination aus natürlicher Sprachverarbeitung und maschinellem Lernen, um Ihre Aufgabe zu verstehen und Änderungen an einer Codebasis vorzunehmen. Dieser Vorgang kann in eine Reihe von Schritten unterteilt werden:

  1. Prompt-Verarbeitung: Die über ein Issue, einen Pull-Request-Kommentar oder eine Copilot-Chat-Nachricht bereitgestellte Aufgabe wird mit anderen relevanten Kontextinformationen kombiniert, um einen Prompt zu bilden. 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.
  2. Sprachmodellanalyse: Die Eingabeaufforderung wird über ein großes Sprachmodell übergeben, bei dem es sich um ein neurales Netzwerk handelt, das auf einem großen Datenteil trainiert wurde. Das Sprachmodell analysiert den Eingabe-Prompt, um dem Agenten dabei zu helfen, die Aufgabe zu erschließen und die erforderlichen Werkzeuge zu nutzen.
  3. Antwortgenerierung: Das Sprachmodell generiert eine Antwort basierend auf der Analyse der Eingabeaufforderung. Diese Antwort kann in Form von Vorschlägen in natürlicher Sprache und Codevorschlägen erfolgen.
  4. Ausgabeformatierung: Sobald der Agent die erste Ausführung abgeschlossen hat, aktualisiert er die Beschreibung der Pull-Anforderung mit den vorgenommenen Änderungen. Der Agent kann zusätzliche Informationen über Ressourcen bereitstellen, auf die er nicht zugreifen konnte, und Vorschläge für Schritte zur Behebung machen. Sie können Feedback geben, indem Sie innerhalb der Pull-Anforderung kommentieren oder den Agent explizit erwähnen (@copilot). Der Agent sendet dieses Feedback dann erneut zur weiteren Analyse und antwortet mit aktualisierten Änderungen.

Copilot Cloud-Agent soll die relevanteste Lösung für die Aufgabenauflösung bereitstellen. Es ist jedoch möglicherweise nicht immer die Antwort, die du suchst. Sie sind dafür verantwortlich, die vom Copilot-Cloud-Agent generierten Antworten zu prüfen und zu validieren, um sicherzustellen, dass sie korrekt und angemessen sind.

Copilot-Codeüberprüfung

Copilot Codeüberprüfung überprüft Ihren Code und gibt Feedback mithilfe einer Kombination aus natürlicher Sprachverarbeitung und maschinellem Lernen. Dieser Vorgang kann in eine Reihe von Schritten unterteilt werden:

  1. Eingabeverarbeitung: Die Codeänderungen werden mit anderen relevanten kontextbezogenen Informationen (z. B. titel und Textkörper der Pullanforderung) und allen benutzerdefinierten Anweisungen kombiniert, die definiert wurden, um eine Eingabeaufforderung zu bilden. Diese Eingabeaufforderung wird an ein großes Sprachmodell gesendet.
  2. Language-Modellanalyse: Die Eingabeaufforderung wird über das Copilot-Sprachmodell übergeben, bei dem es sich um ein neurales Netzwerk handelt, das auf einem großen Textteil trainiert wurde. Das Sprachmodell analysiert die Eingabeaufforderung.
  3. Antwortgenerierung: Das Sprachmodell generiert eine Antwort basierend auf der Analyse der Eingabeaufforderung. Diese Antwort kann in Form von Vorschlägen in natürlicher Sprache und Codevorschlägen erfolgen.
  4. Output-Formatierung: Die Antwort wird dem Benutzer entweder direkt in einem unterstützten Editor oder als Pullanforderungsüberprüfung auf GitHub.com angezeigt und stellt Codefeedback bereit, das mit bestimmten Zeilen bestimmter Dateien verknüpft ist. Wenn Copilot einen Codevorschlag bereitgestellt hat, wird der Vorschlag als vorgeschlagene Änderung dargestellt, die mit einigen Klicks angewendet werden kann.

Copilot CLI

Copilot CLI funktioniert mithilfe einer Kombination aus natürlicher Sprachverarbeitung und maschinellem Lernen, um Ihre Aufgabe zu verstehen und Änderungen an einer Codebasis vorzunehmen. Dieser Vorgang kann in eine Reihe von Schritten unterteilt werden:

  1. Eingabeverarbeitung: Ihre Eingabe wird mit relevanten Kontextinformationen kombiniert, um eine Eingabeaufforderung zu bilden. Dieser Prompt wird zur Verarbeitung an ein großes Sprachmodell gesendet. Eingaben können in Form einfacher natürlicher Sprache, Codeausschnitte oder Verweise auf Dateien in Ihrem Terminal erfolgen.
  2. Sprachmodellanalyse: Die Eingabeaufforderung wird über ein großes Sprachmodell übergeben, bei dem es sich um ein neurales Netzwerk handelt, das auf einem großen Datenteil trainiert wurde. Das Sprachmodell analysiert den Prompt, um dem Agenten zu helfen, die Aufgabe zu durchdenken und die erforderlichen Tools zu verwenden.
  3. Antwortgenerierung: Das Sprachmodell generiert eine Antwort basierend auf der Analyse der Eingabeaufforderung. Diese Antwort kann in Form von Vorschlägen für natürliche Sprache, Codevorschläge, Dateiänderungen und Befehlsausführungen verwendet werden.
  4. Ausgabeformatierung: Die Antwort wird formatiert und mithilfe von Syntaxmarkierung, Einzug und anderen Formatierungsfeatures dargestellt. Der Agent kann auch Befehle in Ihrer lokalen Umgebung ausführen und Dateien in Ihrem Dateisystem erstellen, bearbeiten oder löschen, um die Aufgabe abzuschließen. Alle derartigen Aktionen erfordern explizite Berechtigungsaufforderungen.

Sie können dem Agent Feedback geben, nachdem er eine Antwort im interaktiven Chatfenster zurückgegeben hat. Der Agent sendet dieses Feedback erneut an das Sprachmodell zur weiteren Analyse und gibt eine zusätzliche Antwort zurück.

Copilot SDK

Das Copilot-SDK stellt eine programmatische Schnittstelle für Copilots agentische Funktionen bereit. Anwendungen, die mit dem SDK erstellt wurden, folgen diesem Prozess:

  1. Sitzungserstellung: Die Anwendung erstellt eine Sitzung mit dem SDK, wobei das Modell, die Systemaufforderung, verfügbare Tools, benutzerdefinierte Agents, MCP-Server und Hooks angegeben werden. Das SDK stellt eine JSON-RPC Verbindung mit Copilot CLI her.
  2. Prompt-Übermittlung: Die Benutzereingabe wird an die Sitzung gesendet. Das SDK leitet die Eingabeaufforderung (zusammen mit dem Sitzungskontext) an die CLI weiter, die sie an das Sprachmodell weiterleitet.
  3. Agentenausführung: Das Sprachmodell denkt über die Aufgabe nach und kann Werkzeuge aufrufen, an Unteragenten delegieren oder sich mit MCP-Servern verbinden. Lebenszyklus-Hooks werden in jeder Phase ausgelöst, sodass die Anwendung benutzerdefinierte Logik einfügen kann.
  4. Antwortstreaming: Antworten werden zurück an die Anwendung gestreamt, die sie in einem beliebigen Format präsentieren können, das für die Benutzeroberfläche geeignet ist. Das SDK stellt strukturierte Ereignisse für Text-, Toolaufrufe, Fehler und Abschlusssignale bereit.

GitHub Spark

GitHub Spark verwendet einen agentbasierten Ansatz zum Erstellen und Ändern von Anwendungen. Dieser Vorgang kann in eine Reihe von Schritten unterteilt werden:

  1. Input-Verarbeitung: Eingabeaufforderungen werden von Copilot vorverarbeitet, mit kontextbezogenen Informationen aus Ihren aktuellen Spark-Eingaben erweitert, einschließlich Code aus Ihrer aktuellen Anwendung, vorherigen Eingabeaufforderungen und allen Fehlerprotokollen aus Ihrer Entwicklungsumgebung und gesendet an einen großen, modellgestützten Agent in Ihrer Entwicklungsumgebung. Das System ist darauf ausgelegt, auf Grundlage eingegebener Prompts Code zu generieren, und ist nicht zu dialogorientierten Interaktionen fähig. Englisch ist die bevorzugte Sprache für Eingabeaufforderungen.
  2. Sprachmodellanalyse: Die Eingabeaufforderung wird über ein großes Sprachmodell übergeben, bei dem es sich um ein neurales Netzwerk handelt, das auf einem großen Textkörper trainiert wird. Das Sprachmodell analysiert den Eingabeprompt, damit der Agent die Aufgabe besser erschließen und die erforderlichen Werkzeuge nutzen kann.
  3. Agent-Ausführung: Der Agent läuft in Ihrer Entwicklungsumgebung, nimmt den Prompt und zusätzlichen Kontext entgegen und entscheidet, wie Ihre Anwendung aktualisiert werden soll. Der Agent kann Code schreiben, Befehle ausführen und Ausführungsausgaben lesen. Alle Aktionen werden ausgeführt, um funktionalen, genauen Code sicherzustellen. Die einzige Ausgabe des Agents besteht aus deinem Anwendungscode.

Spark verwendet Frameworks und SDKs, die das moderne Design und sichere Bereitstellungen nahtlos in die Laufzeitkomponente von Spark integrieren. Das Designframework ist flexibel und modular, sodass Sie das Design so ändern können, dass es Ihrem gewünschten Aussehen und Verhalten entspricht. Die Laufzeitintegration von Spark verwendet bewährte Methoden für Webbereitstellungen, um sichere, skalierbare Bereitstellungen sicherzustellen.

7. Einschränkungen

Das Verständnis der Einschränkungen der agentischen Funktionen von GitHub Copilot ist entscheidend, um sicherzustellen, dass sie innerhalb sicherer und effektiver Grenzen verwendet werden. Während wir Kunden ermutigen, diese Features in ihren innovativen Lösungen oder Anwendungen zu nutzen, ist es wichtig zu beachten, dass sie nicht für jedes mögliche Szenario entwickelt wurden. Wir empfehlen Benutzern, auf GitHub-Bedingungen sowie die folgenden Überlegungen bei der Auswahl eines Anwendungsfalls zu verweisen:

  • Übersehene Codequalitätsprobleme: Copilot kann möglicherweise nicht alle Probleme identifizieren, die im Code vorhanden sind, insbesondere bei großen oder komplexen Änderungen. Um sicherzustellen, dass alle relevanten Probleme identifiziert und behoben werden, sollte die Codeüberprüfung durch Copilot durch eine sorgfältige menschliche Codeüberprüfung ergänzt werden.

  • Fehlalarme: Copilot Code-Review birgt das Risiko von Halluzinationen – es kann auf Probleme im überprüften Code hinweisen, die nicht existieren oder auf Missverständnissen des Codes beruhen. Kommentare, die von Copilot Codeüberprüfung generiert wurden, sollten sorgfältig überprüft und berücksichtigt werden, bevor Sie Maßnahmen ergreifen und Änderungen vornehmen.

  • Ungenaue oder unsichere Codevorschläge: Im Rahmen seiner Kommentare kann die Copilot-Codeüberprüfung spezifische Codevorschläge unterbreiten. Der generierte Code scheint gültig zu sein, ist aber möglicherweise nicht semantisch oder syntaktisch korrekt oder kann das im Kommentar identifizierte Problem nicht ordnungsgemäß beheben. Darüber hinaus können von Copilot generierte Code Sicherheitsrisiken oder andere Probleme enthalten. Sie sollten den von Copilot generierten Code immer sorgfältig überprüfen und testen.

  • Potenzielle Verzerrungen: Copilots Trainingsdaten stammen aus bestehenden Code-Repositorys, die Verzerrungen und Fehler enthalten können, die durch das Tool weitergetragen werden können. Darüber hinaus kann die Codeüberprüfung von Copilot zugunsten bestimmter Programmiersprachen oder Codierungsstile voreingenommen sein, was zu suboptimalem oder unvollständigem Feedback führen kann.

  • Eingeschränkter Umfang (Cloud-Agent): Das vom Cloud-Agent verwendete Sprachmodell wurde auf einem großen Codeteil trainiert, verfügt aber dennoch über einen begrenzten Umfang und kann bestimmte Codestrukturen nicht verarbeiten oder Programmiersprachen verschleiern. Für jede Sprache hängt die Qualität der Vorschläge von der Menge und Vielfalt der Schulungsdaten für diese Sprache ab.

  • Ungenauer Code (Cloud-Agent): Der Cloud-Agent kann Code generieren, der als gültig erscheint, aber nicht tatsächlich semantisch oder syntaktisch korrekt ist oder die Absicht des Entwicklers nicht genau widerspiegelt. Sie sollten generierten Code sorgfältig überprüfen und testen, insbesondere bei kritischen oder sensiblen Anwendungen.

  • Sicherheitsrisiken (Cloud-Agent): Der Cloud-Agent generiert Code und natürliche Sprache basierend auf dem Kontext eines Problems oder Kommentars innerhalb eines Repositorys, wodurch potenziell vertrauliche Informationen oder Sicherheitsrisiken verfügbar gemacht werden können, wenn sie nicht sorgfältig verwendet werden. Sie sollten alle vom Agenten generierten Ausgaben vor dem Zusammenführen gründlich überprüfen.

  • Übereinstimmungen mit öffentlichem Code (Cloud-Agent): Der Cloud-Agent kann Code generieren, der eine Übereinstimmung oder nah übereinstimmung mit öffentlich verfügbarem Code ist, auch wenn die Richtlinie "Vorschläge, die öffentlichem Code entsprechen" auf "Blockieren" festgelegt ist. Wenn dies geschieht, zeigt Copilot Übereinstimmungen in den Sitzungsprotokollen des Agents sowie einen Link zum Anzeigen von Details des entsprechenden Codes an.

  • Begrenzter Umfang (CLI): Das von Copilot CLI verwendete Sprachmodell wurde mit einer großen Menge an Code trainiert, hat aber dennoch nur einen begrenzten Umfang und kann bestimmte Codestrukturen oder weniger verbreitete Programmiersprachen möglicherweise nicht verarbeiten. Für jede Sprache hängt die Qualität der Vorschläge von der Menge und Vielfalt der Schulungsdaten für diese Sprache ab.

  • Inaccurate Code (CLI): Copilot CLI kann Code generieren, der als gültig erscheint, aber möglicherweise nicht semantisch oder syntaktisch korrekt ist oder die Absicht des Entwicklers nicht genau widerspiegelt. Sie sollten generierten Code sorgfältig überprüfen und testen, insbesondere bei kritischen oder sensiblen Anwendungen.

  • Security-Risiken (CLI): Copilot CLI generiert Code und natürliche Sprache basierend auf dem Kontext Ihrer lokalen Umgebung, wodurch potenziell vertrauliche Informationen oder Sicherheitsrisiken verfügbar gemacht werden können, wenn sie nicht sorgfältig verwendet werden. Sie sollten alle vom Agenten generierten Ausgaben gründlich überprüfen.

  • Public Code matches (CLI): Copilot CLI kann Code generieren, der eine Übereinstimmung oder nahezu übereinstimmung mit öffentlich verfügbarem Code ist, auch wenn die Richtlinie "Vorschläge, die öffentlichem Code entsprechen" auf "Blockieren" festgelegt ist.

  • Risiken bei der Befehlsausführung (CLI): Besondere Vorsicht ist geboten, wenn Sie Copilot CLI auffordern oder erlauben, einen Befehl auszuführen, insbesondere im Hinblick auf die potenziell zerstörerische Wirkung mancher vorgeschlagener Befehle. Möglicherweise stoßen Sie auf Befehle für das Löschen von Dateien oder die Formatierung der Festplatte, was bei unsachgemäßem Gebrauch zu Problemen führen kann. Sie sind letztendlich für die Befehle verantwortlich, die von Copilot CLI ausgeführt werden.

  • Inherited limitations (SDK): Da das Copilot SDK mit Copilot CLI kommuniziert, erben Anwendungen, die mit dem SDK erstellt wurden, dieselben Modellbeschränkungen, einschließlich eingeschränkter Umfang für bestimmte Programmiersprachen und das Potenzial für ungenaue oder unsichere Codegenerierung.

  • Komplexität des benutzerdefinierten Agents (SDK): Falsch konfigurierte benutzerdefinierte Agents, Tools oder Hooks können zu unerwartetem Verhalten führen. Entwickler sind für das Testen und Überprüfen des Verhaltens ihrer benutzerdefinierten Agentkonfigurationen verantwortlich.

  • Vertrauen in MCP-Server (SDK): Über das SDK verbundene MCP-Server können Tools und Daten aus externen Quellen bereitstellen. Entwickler müssen sicherstellen, dass verbundene MCP-Server vertrauenswürdig sind, da böswillige oder falsch konfigurierte Server schädliches Verhalten bewirken oder vertrauliche Daten verfügbar machen könnten.

  • BYOK-Modellabweichung (SDK): Wenn Sie Bring-your-own-key-Konfigurationen mit Drittanbietern verwenden, kann sich das Verhalten von GitHub gehosteten Modellen unterscheiden. Entwickler sind dafür verantwortlich, die Sicherheit und Qualität der Antworten von ihrem gewählten Anbieter zu bewerten.

  • Interpretation der Benutzerabsicht (Spark): Spark ist nicht immer korrekt bei der Interpretation Ihrer Absicht. Sie sollten die bereitgestellte Vorschau von Spark immer verwenden, um das genaue Verhalten in Ihrer Anwendung zu bestätigen.

  • Eingeschränkter Umfang (Spark): Spark wurde mit einer großen Menge Code und relevanten Anwendungen trainiert, kann sich jedoch mit komplexen oder tatsächlich neuartigen Anwendungen schwertun. Spark funktioniert am besten bei allgemeinen und persönlichen Anwendungsszenarien (z. B. Produktivitätstools, Lernhilfen, Tools zur Alltagsorganisation) sowie dann, wenn die natürlichsprachige Anweisung auf Englisch erfolgt.

  • Übereinstimmungen mit öffentlichem Code (Spark): Spark kann Code generieren, bei dem es sich um eine Übereinstimmung oder nahezu übereinstimmung mit öffentlich verfügbarem Code handelt, auch wenn die Richtlinie "Vorschläge, die öffentlichem Code entsprechen" auf "Blockieren" festgelegt ist. In diesem Fall stellt Copilot keine Codeverweise bereit, die auf die ursprüngliche Quelle des Codes verweisen.

  • Sicherheitsbeschränkungen (Spark): Während die Spark-Laufzeit bewährte Methoden für die Anwendungsbereitstellung befolgt, generiert sie Code probabilistisch, was potenziell Sicherheitsrisiken auslösen kann, insbesondere, wenn diese Sicherheitsrisiken im Schulungssatz üblich sind. Du solltest vorsichtig sein, wenn du Anwendungen erstellst, die persönliche oder vertrauliche Daten verwalten, und die generierte Anwendung immer gründlich überprüfen und testen.

8. Bewertungen

Leistungs- und Sicherheitsbewertungen bewerten, ob KI-Anwendungen zuverlässig und sicher funktionieren, indem Faktoren wie Grundhaftigkeit, Relevanz und Kohärenz untersucht und gleichzeitig die Risiken der Generierung schädlicher Inhalte identifiziert werden. Die folgenden Bewertungen wurden durchgeführt, wobei Sicherheitskomponenten bereits vorhanden waren, die auch in 9. Sicherheitskomponenten und Minderungsmaßnahmen beschrieben werden.

Leistungs- und Qualitätsbewertungen

GitHub Copilot Agents werden auf allen unterstützten Oberflächen mit einer Kombination aus Branchenstandard-Benchmarks (z. B. SWE-Bench) und intern entwickelten Evaluierungssuiten ausgewertet. Benchmark-Aufgaben stammen aus öffentlichen Open Source-Repositorys und synthetischen Szenarien; Keine echten Benutzerabfragen oder Kundencode werden verwendet. Jede Auswertung enthält mehrere unabhängige Läufe, um den Nichtdeterminismus in Modellausgaben zu berücksichtigen. Zu den wichtigsten Metriken gehören die Auflösungsrate (Prozentsatz der erfolgreich abgeschlossenen Aufgaben), Tokeneffizienz, Latenz und Zuverlässigkeit von Toolaufrufen. Modelle werden neu ausgewertet, wenn Aktualisierungen vorgenommen und kontinuierlich in der Produktion über Fehlerraten, Antwortlatenz und aggregierte Nutzungsmuster überwacht werden.

Methoden zur Leistungs- und Qualitätsbewertung

Neue Modelle für GitHub Copilot Agents durchlaufen vor der Bereitstellung einen mehrstufigen Evaluierungsprozess. Integratorteams führen Benchmark-Suites speziell für ihre Oberfläche aus, testen das Modell auf repräsentativen Codierungsaufgaben wie Fehlerbehebungen, Codegenerierung und Umgestaltung mit mehreren Dateien. Die Ergebnisse werden anhand etablierter Basispläne und bestehender Produktionsmodelle überprüft. Modelle müssen grundlegende Metriken wie Auflösungsrate, Tokeneffizienz und Latenz erfüllen oder überschreiten, bevor sie zur nächsten Stufe wechseln. Ein funktionsübergreifendes Prüfgremium trifft eine formale Go-/No-Go-Entscheidung, bevor ein Modell für eine nutzerseitige Bereitstellung freigegeben wird.

Risiko- und Sicherheitsbewertungen

Die Bewertung potenzieller Risiken im Zusammenhang mit KI-generierten Inhalten ist für den Schutz vor Inhaltsrisiken mit unterschiedlichem Schweregrad unerlässlich. Dies umfasst die Bewertung der Veranlagung einer KI-Anwendung, schädliche Inhalte zu generieren oder Sicherheitsrisiken für Jailbreak-Angriffe zu testen. Für GitHub führen wir Leistungsbewertungen durch, einschließlich derjenigen, die für Codierungszwecke von Microsoft Foundry angepasst sind:

  • Hass und Unfairness
  • Sexuelle
  • Gewalt
  • Selbstverletzung
  • Geschütztes Material
  • Jailbreak (Entsperrung von Geräten)
  • Sicherheitsanfälligkeit in Code

Auswertungsdaten für Qualität und Sicherheit

Unsere Auswertungsdaten wurden speziell entwickelt, um die Leistung von KI-Anwendungen in wichtigen Bereichen der Sicherheit und Qualität zu bewerten und reale Szenarien und Risiken zu simulieren. Zunächst identifizieren wir relevante Bewertungsaspekte von Beunruhigungen basierend auf multidisziplinären Forschungs- und Experteneingaben. Diese Bedenken werden in gezielte Bewertungsziele übersetzt und leiten die Formulierung von Bewertungsmetriken. Für Sicherheit erstellen wir adversariale Prompts, um unerwünschte oder Grenzfallantworten hervorzurufen, die anschließend von KI-gestützten Annotatoren bewertet werden, die darauf trainiert sind, die Übereinstimmung mit GitHubs Standards zu beurteilen. Aus Qualitätsgründen erstellen wir rubrikenbasierte Aufforderungen, die für Szenarien relevant sind, einschließlich der Auswertung von Rag-Anwendungen (Retrieval-Augmented Generation) und Agents. Datasets werden aus verschiedenen Quellen zusammengestellt, einschließlich synthetischer und öffentlicher Datasets, um reale Benutzerszenarien zu simulieren. Mit den kuratierten Datasets durchlaufen beide Auswertungen iterative Verfeinerung und menschliche Ausrichtung zur Verbesserung der metrischen Wirksamkeit und Zuverlässigkeit. Diese Methodik bildet die Grundlage für wiederholbare, strenge Bewertungen, die widerspiegeln, wie Kunden Auswertungen verwenden, um eine bessere KI zu schaffen.

Benutzerdefinierte Auswertungen

Die agentischen Copilot-Funktionen wurden einem RAI-Red-Teaming unterzogen, um potenzielle Risiken zu identifizieren und zu mindern. Wir überwachen weiterhin die Wirksamkeit und Sicherheit dieser Merkmale im Laufe der Zeit. Weitere Informationen finden Sie unter Microsoft AI Red Team baut die Zukunft einer sichereren KI im Microsoft Security-Blog.

9. Sicherheitskomponenten und Entschärfungen

Copilot Cloudagent

  • Berechtigungseskalationskontrolle: Der Cloud-Agent reagiert nur auf Interaktionen von Benutzern mit Repository-Schreibzugriff. Actions-Workflows, die durch vom Agenten erstellte Pull Requests ausgelöst werden, benötigen die Genehmigung eines Benutzers mit Schreibzugriff, bevor sie ausgeführt werden. Der Agent filtert versteckte Zeichen, die es Benutzern ermöglichen könnten, schädliche Anweisungen in Kommentaren oder Issue-Inhalten zu verbergen.
  • Eingeschränkte Berechtigungen: Der Cloud-Agent hat nur Zugriff auf das Repository, in dem es eine Pullanforderung erstellt und nicht auf andere Repositorys zugreifen kann. Sie kann nur in einen einzelnen Branch pushen: den bestehenden Pull-Request-Branch, wenn sie über @copilot ausgelöst wird, andernfalls in einen neuen copilot/-Branch. Dies bedeutet, dass Copilot nicht direkt auf den Standardbranch pushen kann (z. B. main). Der Agent hat keinen Zugriff auf Secrets auf Organisations- oder Repository-Ebene von Actions – nur Secrets und Variablen, die der Umgebung copilot speziell hinzugefügt wurden, werden an den Agenten übergeben.
  • Sicherstellung der Nachverfolgbarkeit: Die Commits des Cloud-Agents werden von Copilot verfasst, wobei die Person, die die Aufgabe gestartet hat, als Mitautor gekennzeichnet wird. Dadurch ist es einfacher, code zu identifizieren, der vom Agent generiert wurde und wer die Aufgabe initiiert hat. Die Commits des Cloud-Agents sind signiert, sodass sie bei GitHub als "Überprüft" angezeigt werden. Dies stellt sicher, dass die Commits von GitHub Copilot Cloud-Agent vorgenommen wurden und nicht geändert wurden. Jede Commitnachricht enthält einen Link zu den Agentsitzungsprotokollen. Auf diese Weise erhalten Sie einen dauerhaften Link von jedem von einem Agenten erstellten Commit zu den vollständigen Sitzungsprotokollen, sodass Sie während der Codeüberprüfung nachvollziehen können, warum Copilot eine Änderung vorgenommen hat, oder dies später zu Auditzwecken zurückverfolgen können.
  • Firewall zur Verhinderung von Datenexfiltration: Standardmäßig ist dem Cloud-Agent eine Firewall aktiviert, um die Exfiltration von Code oder anderen vertraulichen Daten zu verhindern, entweder versehentlich oder aufgrund bösartiger Benutzereingaben.
  • Automatische Erkennung von Sicherheitsrisiken: Während der Codegenerierung analysiert der Cloud-Agent automatisch neu generierten Code für Sicherheitsrisiken und versucht, sie zu beheben. Die Analyse erfolgt mithilfe von CodeQL (zur Identifizierung potenzieller Sicherheitsrisiken und Fehler), geheimer Überprüfung (um sicherzustellen, dass geheime Schlüssel nicht eingeführt werden) und Abhängigkeitsanalyse (um bekannte Sicherheitsrisiken in referenzierten Abhängigkeiten zu überprüfen).

Copilot CLI

  • Directory-Bereichszugriff: Standardmäßig hat Copilot CLI nur Zugriff auf Dateien und Ordner in und unter dem Verzeichnis, aus dem sie aufgerufen wurde. Wenn der Agent auf Dateien außerhalb des aktuellen Verzeichnisses zugreifen möchte, fordert er die Berechtigung an.
  • Berechtigungsabfragen für Dateiänderungen: Copilot CLI fragt vor dem Ändern von Dateien um Erlaubnis. Sie sollten sicherstellen, dass sie die richtigen Dateien ändert, bevor Sie die Berechtigung erteilen.
  • Permission fordert zur Ausführung von Befehlen auf: Copilot CLI fordert die Berechtigung vor dem Ausführen von möglicherweise gefährlichen Befehlen an. Sie sollten diese Befehle sorgfältig überprüfen, bevor Sie die Berechtigung zum Ausführen erteilen.
  • Konfigurierbare Berechtigungen: Sie können Copilot CLI bestimmte oder alle Berechtigungen erteilen, indem Sie die verschiedenen Befehlszeilenoptionen verwenden, zum Beispiel --allow-tool=[TOOLS...], --allow-all-tools, --allow-all (oder den entsprechenden Slash-Befehl /allow-all zur Verwendung in einer interaktiven Sitzung). Weitere Informationen findest du unter GitHub Copilot CLI-Befehlsreferenz. Wenn Sie in der Regel Copilot CLI im Autopilot-Modus verwenden, erteilen Sie ihm vollständige Berechtigungen, damit eine Aufgabe autonom abgeschlossen werden kann, ohne dass Sie die Aktivität genehmigen müssen, während sie für die Aufgabe funktioniert. Weitere Informationen findest du unter Zulassen, dass GitHub Copilot CLI autonom arbeiten kann.
  • Security-Überlegungen: Weitere Informationen zu Sicherheitspraktiken bei der Verwendung von Copilot CLI finden Sie unter Informationen zu GitHub Copilot CLI.

Copilot SDK

  • Von der CLI übernommene Sicherheitsmechanismen: Das Copilot SDK kommuniziert mit Copilot CLI und übernimmt dessen Berechtigungsmodell und Sicherheitsmechanismen. Toolausführungen und Dateiänderungen erfordern weiterhin geeignete Berechtigungen.
  • Hook-basierte Kontrolle: Die Lebenszyklus-Hooks des SDK (wie onPreToolUse und onPostToolUse) ermöglichen es Entwicklern, benutzerdefinierte Sicherheitsprüfungen, Audit-Protokollierung und Genehmigungs-Workflows vor und nach der Ausführung von Tools zu implementieren.
  • MCP-Serverisolation: MCP-Server werden als separate Prozesse ausgeführt. Entwickler können steuern, welche Server pro Sitzung verfügbar sind, wodurch der Umfang des Zugriffs auf externe Tools eingeschränkt wird.
  • Sitzungsabgrenzung: Jede SDK-Sitzung ist mit eigenem Kontext, eigenen Tools und Berechtigungen isoliert. Entwickler können steuern, welche Daten und Funktionen in jeder Sitzung verfügbar sind.
  • BYOK-Verantwortung: Bei Verwendung von Bring-your-own-Key-Konfigurationen werden Aufforderungen und Antworten direkt an den konfigurierten Anbieter gesendet. Entwickler sind für die Überprüfung der Datenverarbeitungsrichtlinien ihres ausgewählten Anbieters verantwortlich.

Datenverarbeitung bei Verwendung Ihres eigenen Modellanbieters (CLI)

Wenn Sie Copilot CLI für die Verwendung Ihres eigenen Modellanbieters konfigurieren, werden Ihre Eingabeaufforderungen, der Codekontext und die generierten Antworten direkt an den von Ihnen konfigurierten Anbieter gesendet. Sie werden nicht durch GitHub geleitet. Sie sind verantwortlich für die Überprüfung und Einhaltung der Nutzungsbedingungen und der Datenverarbeitungsrichtlinien Ihres gewählten Anbieters.

Telemetry

Wenn Sie Ihren eigenen Modellanbieter ohne Offlinemodus verwenden, sendet Copilot CLI weiterhin Telemetrie an GitHub wie gewohnt. Diese Telemetrie enthält keine Eingabeaufforderungen oder Code, enthält jedoch Nutzungsmetadaten.

Wenn Sie den Offlinemodus aktivieren, indem Sie die Umgebungsvariable COPILOT_OFFLINE auf truefestlegen, ist alle Telemetrie deaktiviert. Im Offlinemodus sendet Copilot CLI nur Netzwerkanforderungen an Ihren konfigurierten Modellanbieter.

Authentifizierungs- und Funktionsverfügbarkeit

GitHub Authentifizierung ist bei Verwendung Ihres eigenen Modellanbieters (BYOK) nicht erforderlich. Ohne GitHub Authentifizierung sind die folgenden Features nicht verfügbar:

  • /delegate, die die Sitzung an GitHubs serverseitigen Copilot übergibt
  • Der GitHub MCP-Server
  • GitHub Codesuche

Im Offlinemodus sind auch webbasierte Tools wie web_fetch und GitHub Codesuche deaktiviert.

Kein Fallback auf auf GitHub gehostete Modelle

Wenn ihre Modellanbieterkonfiguration ungültig ist, wird Copilot CLI mit einem Fehler beendet. Es fällt nicht auf GitHub gehostete Modelle zurück. Häufige Fehler wie abgelehnte Verbindungen, Authentifizierungsfehler, nicht gefundene Modelle und Timeouts führen zu benutzerfreundlichen Meldungen mit konkreten Handlungsempfehlungen.

GitHub Spark

  • Schutz vor Inhalten: Spark verfügt über integrierten Schutz vor schädlichen, hassfähigen oder anstößigen Inhalten.
  • Inhalte melden: Sie können problematische oder anstößige Inhalte über die Feedback-Funktion melden oder einen Spark wegen Missbrauchs oder als Spam melden. Beispiele für anstößige Inhalte sollten an [email protected] unter Angabe der URL des Sparks gemeldet werden.
  • Sichere Laufzeit: Die Laufzeitintegration von Spark verwendet bewährte Methoden für Webbereitstellungen, um sichere, skalierbare Bereitstellungen sicherzustellen.

10. Bewährte Methoden für die Bereitstellung und Einführung von agentenbasierten Funktionen in GitHub Copilot

Verantwortungsvolle KI ist ein gemeinsames Engagement zwischen GitHub und seinen Kunden. Während GitHub KI-Anwendungen mit Sicherheit, Fairness und Transparenz im Kern erstellt, spielen Kunden eine wichtige Rolle bei der Bereitstellung und Verwendung dieser Technologien in ihren eigenen Kontexten. Um diese Partnerschaft zu unterstützen, bieten wir die folgenden bewährten Methoden für Bereitstellungen und Endbenutzer an, um Kunden bei der effektiven Implementierung verantwortungsvoller KI zu unterstützen.

  • Lassen Sie Vorsicht walten und bewerten Sie die Ergebnisse, wenn Sie agentische Funktionen von Copilot für folgenschwere Entscheidungen oder in sensiblen Bereichen verwenden: Folgeentscheidungen sind solche, die einen rechtlichen oder erheblichen Einfluss auf den Zugang einer Person auf Bildung, Beschäftigung, Finanzplattformen, staatliche Leistungen, Gesundheitsversorgung, Wohnung, Versicherung, Rechtliche Plattformen haben oder die zu physischem, psychologischem oder finanziellem Schaden führen könnten. Sensible Domänen wie Finanzplattformen, Gesundheitswesen und Wohnungen erfordern besondere Sorgfalt aufgrund des Potenziellen für unverhältnismäßige Auswirkungen auf verschiedene Personengruppen. Wenn Sie KI für Entscheidungen in diesen Bereichen verwenden, stellen Sie sicher, dass betroffene Beteiligte verstehen, wie Entscheidungen getroffen werden, Beschwerdeentscheidungen treffen und alle relevanten Eingabedaten aktualisieren können.

  • Bewertung rechtlicher und behördlicher Überlegungen: Kunden müssen potenzielle rechtliche und behördliche Verpflichtungen bewerten, wenn Sie KI-Plattformen und -Lösungen verwenden, die möglicherweise nicht für die Verwendung in jeder Branche oder in jedem Szenario geeignet sind. Darüber hinaus sind KI-Plattformen oder -Lösungen nicht für sie ausgelegt und dürfen nicht auf eine Weise verwendet werden, die in anwendbaren Nutzungsbedingungen und relevanten Verhaltensregeln verboten ist.

  • Üben Sie bei Bedarf eine menschliche Aufsicht aus: Die menschliche Aufsicht ist ein wichtiger Schutz bei der Interaktion mit KI-Anwendungen. Während wir unsere KI-Anwendungen kontinuierlich verbessern, kann KI immer noch Fehler machen. Die generierten Ausgaben können ungenau, unvollständig, voreingenommen, falsch ausgerichtet oder irrelevant für Ihre beabsichtigten Ziele sein. Dies kann verschiedene Gründe haben, z. B. Mehrdeutigkeit in den Eingaben oder Einschränkungen der zugrunde liegenden Modelle. Benutzer sollten die von den agentischen Features von Copilot generierten Antworten überprüfen und verifizieren, dass sie ihren Erwartungen und Anforderungen entsprechen.

  • Achten Sie auf das Risiko einer Überlastung: Überlastung bei KI geschieht, wenn Benutzer falsche oder unvollständige KI-Ausgaben akzeptieren, hauptsächlich weil Fehler in KI-Ausgaben möglicherweise schwer zu erkennen sind. Für den Endbenutzer kann eine Überzuverlässigkeit unter anderem zu verminderter Produktivität, Vertrauensverlust, Anwendungsabbruch, finanziellem Verlust, psychischen Schäden, körperlichen Schäden führen. (z. B. ein Arzt akzeptiert eine falsche KI-Ausgabe).

  • Seien Sie vorsichtig beim Entwerfen agentischer KI in sensiblen Domänen: Benutzer sollten beim Entwerfen und/oder Bereitstellen agentischer KI-Anwendungen in sensiblen Domänen Vorsicht walten lassen, bei denen Agentaktionen unumkehrbar oder stark folgefähig sind. Zusätzliche Vorsichtsmaßnahmen sollten auch bei der Erstellung autonomer agentischer KI getroffen werden, wie weiter im GitHub-Bedingungen beschrieben.

  • ** Verwenden Sie Copilot Codeüberprüfung, um menschliche Rezensionen zu ergänzen, nicht zu ersetzen**: Während Copilot Codeüberprüfung ein leistungsstarkes Tool zur Verbesserung der Codequalität sein kann, ist es wichtig, sie als Tool zu verwenden, anstatt menschliche Rezensionen zu ersetzen. Sie sollten das durch die Copilot-Codeüberprüfung erzeugte Feedback stets überprüfen und verifizieren und das Feedback von Copilot durch eine sorgfältige menschliche Prüfung ergänzen, um sicherzustellen, dass Ihr Code Ihren Anforderungen entspricht.

  • Feedback geben: Wenn Sie bei der Copilot-Codeüberprüfung auf Probleme oder Einschränkungen stoßen, empfehlen wir Ihnen, mithilfe der Schaltflächen „Daumen hoch“ und „Daumen runter“ in den Kommentaren von Copilot Feedback zu geben. Dies kann dazu beitragen, GitHub das Tool zu verbessern und alle Bedenken oder Einschränkungen zu beheben.

  • Benutzerdefinierte Anweisungen konfigurieren: Sie können benutzerdefinierte Anweisungen konfigurieren, damit Copilot Ihren Programmierstil und Ihre Best Practices besser versteht, wodurch die Relevanz und Qualität des Feedbacks bei Überprüfungen verbessert werden.

  • Stellen Sie sicher, dass Cloud-Agent-Aufgaben gut eingegrenzt sind: Je klarer und besser die Aufforderung, die Sie dem Cloud-Agent zuweisen, desto besser sind die Ergebnisse. Ein ideales Problem enthält eine klare Beschreibung des Problems, vollständige Akzeptanzkriterien und Hinweise darauf, welche Dateien geändert werden müssen.

  • Passen Sie den Cloud-Agent mit zusätzlichem Kontext an: Der Cloud-Agent hat Zugriff auf die Semantikcodesuche, wodurch er relevanten Code basierend auf bedeutungsbezogenen Und nicht nur exakten Text-Übereinstimmungen finden kann, sodass er Aufgaben schneller erledigen kann. Um die Leistung weiter zu verbessern, implementieren Sie benutzerdefinierte Copilot Anweisungen, damit der Agent Ihr Projekt besser verstehen und wie Sie die Änderungen erstellen, testen und überprüfen können.

  • Verwenden Sie den Cloud-Agent als Tool, nicht als Ersatz: Sie sollten die vom Cloud-Agent generierten Inhalte immer überprüfen und testen, um sicherzustellen, dass sie Ihre Anforderungen erfüllt und fehler- oder Sicherheitsbedenken vor dem Zusammenführen frei ist.

  • Verwenden Sie methoden für sicheres Codieren und Codeüberprüfung mit dem Cloud-Agent: Obwohl der Cloud-Agent syntaktisch korrekten Code generieren kann, ist es möglicherweise nicht immer sicher. Befolgen Sie bewährte Methoden für sichere Codierung und Codeüberprüfung. Treffen Sie dieselben Vorsichtsmaßnahmen wie bei jedem Code, der Material verwendet, das Sie nicht unabhängig verwendet haben, einschließlich strenger Tests, IP-Überprüfung und Überprüfung auf Sicherheitsrisiken.

  • Bleiben Sie auf dem neuesten Stand: Der Cloud-Agent ist eine sich entwickelnde Technologie. Bleiben Sie mit allen neuen Sicherheitsrisiken oder bewährten Methoden auf dem laufenden, die entstehen können.

  • Use Copilot CLI als Tool, nicht als Ersatz: Sie sollten Befehle und Code, die von Copilot CLI generiert werden, immer überprüfen und überprüfen, um sicherzustellen, dass sie Ihre Anforderungen erfüllen und keine Fehler oder Sicherheitsbedenken haben.

  • Befehle vor der Ausführung überprüfen (CLI): Lassen Sie besondere Vorsicht walten, wenn Copilot CLI vorschlägt, Befehle auszuführen, insbesondere solche, die Dateien ändern oder löschen. Sie sind letztendlich für die Befehle verantwortlich, deren Ausführung Sie dem Agenten erlauben.

  • Halten Sie CLI-Aufgaben klar umrissen: Je klarer und präziser Ihr Prompt ist, desto besser sind die Ergebnisse. Fügen Sie eine klare Beschreibung des Problems, der Akzeptanzkriterien und Hinweise dazu ein, welche Dateien geändert werden müssen.

  • Provide Feedback (CLI): Wenn Probleme oder Einschränkungen mit Copilot CLI auftreten, geben Sie Feedback mithilfe des Befehls /feedback.

  • Überprüfen des benutzerdefinierten Agentverhaltens (SDK): Testen Sie sorgfältig benutzerdefinierte Agents, Tools und Hooks, bevor Sie Anwendungen bereitstellen, die mit dem SDK für die Produktion erstellt wurden. Stellen Sie sicher, dass Toolkonfigurationen und Systemaufforderungen ein sicheres, erwartetes Verhalten erzeugen.

  • Überwachen von MCP-Serververbindungen (SDK): Stellen Sie nur eine Verbindung mit MCP-Servern her, denen Sie vertrauen. Überprüfen Sie die Tools und Daten, die jeder Server verfügbar macht, und stellen Sie sicher, dass sie den Sicherheitsanforderungen Ihrer Anwendung entsprechen.

  • Implementieren von Sicherheitshaken (SDK): Verwenden Sie die Lifecycle-Hooks des SDK, um Schutzläufe wie Inhaltsfilterung, Überwachungsprotokollierung und Toolgenehmigungsworkflows in Ihren Anwendungen zu implementieren.

  • Sitzungen angemessen eingrenzen (SDK): Konfigurieren Sie jede SDK-Sitzung nur mit den Tools, Agenten und Berechtigungen, die für die jeweilige Aufgabe erforderlich sind. Vermeiden Sie die Gewährung eines breiten Zugriffs, wenn schmale Bereichsdefinitionen ausreichen.

  • Überprüfen Sie DIE BYOK-Anbieterrichtlinien (SDK): Wenn Sie bring-your-own-key-Konfigurationen verwenden, stellen Sie sicher, dass die Nutzungsbedingungen ihres ausgewählten Modellanbieters und die Richtlinien für die Datenverarbeitung die Anforderungen Ihrer Organisation erfüllen.

  • Halten Sie Spark-Eingabeaufforderungen spezifisch und im Thema: Je spezifischer Sie über die beabsichtigten Verhaltensweisen und Interaktionen sein können, desto besser ist die Ausgabe. Wenn Sie relevante Kontexte wie bestimmte Szenarien, Modelle oder Spezifikationen integrieren, hilft Spark, Ihre Absicht zu verstehen. Spark bezieht den Kontext aus vorherigen Eingaben ein, sodass thematisch nicht passende Eingaben die Leistung bei späteren Überarbeitungen beeinträchtigen können.

  • Verwenden Sie gezielte Bearbeitungen in Spark: Mit gezielten Bearbeitungen können Sie Elemente innerhalb Ihrer Anwendung für eine fokussierte Einschränkung angeben. Die Verwendung gezielter Bearbeitungen – anstelle von globalen Prompts – führt zu genaueren Änderungen und weniger Nebenwirkungen.

  • Überprüfen Sie die Spark-Ausgabe: Verwenden Sie immer die bereitgestellte Anwendungsvorschau von Spark, um zu überprüfen, ob sich Ihre Anwendung in verschiedenen Szenarien wie vorgesehen verhält. Wenn Sie mit Code vertraut sind, überprüfen Sie den generierten Code, um sicherzustellen, dass er Ihren Qualitätsstandards entspricht.

  • Stellen Sie sicher, dass die Inferenzfunktionen wie beabsichtigt funktionieren (Spark): Wenn Ihre Spark-Anwendung über das GitHub Models SDK Inferenzfunktionen verwendet, sind Sie dafür verantwortlich, die von Ihnen erstellten Prompts zu testen, um sicherzustellen, dass sie angemessene Ergebnisse liefern.

11. Erfahren Sie mehr über die agentischen Funktionen von GitHub Copilot

Weitere Anleitungen zur verantwortungsvollen Verwendung von Copilot agentischen Features finden Sie in der folgenden Dokumentation:

Erfahren Sie mehr über verantwortungsvolle KI