Skip to main content
Skip to content

Zulassen und Verweigern der Verwendung von Tools

Steuern Sie, welche Tools Copilot CLI verwendet werden können, um unbeabsichtigte Änderungen zu vermeiden.

Einführung

Copilot CLI verwendet eine Vielzahl von Tools zum Ausführen von Aufgaben für Sie. Sie kann Shellbefehle ausführen, Dateien lesen und schreiben, Ihre Codebasis durchsuchen, Webinhalte abrufen und Aufgaben an spezialisierte Unter-Agents delegieren.

Schreibgeschützte Vorgänge wie Suchen, Lesen von Dateien und Ausführen schreibgeschützter Shellbefehle sind in der Regel automatisch zulässig, vorbehaltlich anwendbarer Richtlinien. Andere Vorgänge, z. B. das Ausführen destruktiver Shellbefehle, das Bearbeiten von Dateien oder der Zugriff auf URLs, benötigen eine Berechtigung, bevor Copilot sie verwenden kann. Ob Sie dazu aufgefordert werden, hängt von Ihren vorhandenen Berechtigungen und dem Berechtigungsmodus ab. Diese Steuerelemente tragen dazu bei, unbeabsichtigte Änderungen zu vermeiden, da ein Shellbefehl beispielsweise alles tun kann, was Ihr Benutzerkonto tun kann: Pakete installieren, Dateien löschen, Code übertragen oder Netzwerkanforderungen durchführen.

Sie können Berechtigungen für Tools entweder beim Starten der CLI oder während der interaktiven Sitzung zulassen oder verweigern. Im manuellen Genehmigungsmodus fordert Copilot CLI Sie bei Anfragen auf, die noch nicht zulässig sind. Sie können das Tool dieses Mal oder für den Rest der Sitzung zulassen.

Beständige Berechtigungen

Einige Eingabeaufforderungsoptionen speichern Ihre Zustimmung, sodass Sie nicht erneut gefragt werden. Wo Ihre Genehmigung gespeichert ist, hängt davon ab, was Sie genehmigt haben.

Wenn Sie ein Tool für den aktuellen Speicherort zulassen, wird die Genehmigung in permissions-config.json in Ihrem Konfigurationsverzeichnis gespeichert. Standardmäßig ist diese Datei ~/.copilot/permissions-config.json. Sie können z. B. "In diesem Repository nicht erneut fragen" (oder "in diesem Verzeichnis") für einen Shellbefehl, Dateischreibzugriff, MCP-Tool oder Speicheraktualisierung auswählen. Die Freigabe gilt nur für den aktuellen Ort: entweder für das Wurzelverzeichnis des Git-Repositorys oder, wenn Sie sich nicht in einem Repository befinden, für das Arbeitsverzeichnis. Alle Verzeichnisse, auf die Sie Zugriff gewähren, werden in derselben Datei gespeichert.

URL-Genehmigungen funktionieren anders. Wenn Sie eine URL dauerhaft genehmigen, wird ihre Domain zur allowedUrls-Liste in Ihrem settings.json hinzugefügt. Standardmäßig ist diese Datei ~/.copilot/settings.json. Diese Genehmigung gilt für alle Ihre Sitzungen, anstatt an einen einzelnen Speicherort gebunden zu sein.

Befehlszeilenoptionen wie --allow-tool und --deny-tool gelten nur für die aktuelle Sitzung und werden nicht in permissions-config.json geschrieben. Ablehnungsregeln haben weiterhin Vorrang vor gespeicherten Genehmigungen.

Ausführliche Informationen dazu, wo gespeicherte Genehmigungen gespeichert werden, wie Speicherorte übereinstimmen, und das vollständige permissions-config.json Schema finden Sie unter GitHub Copilot CLI-Konfigurationsverzeichnis.

Ebenen von Toolsteuerelementen

Es gibt zwei Steuerungsebenen, die Sie beim Angeben von Toolberechtigungen in Befehlszeilenoptionen verwenden können. Sie können:

  • Beschränken Sie die Auswahl der tools, die für das KI-Modell verfügbar sind.
  • Berechtigung für bestimmte Tools zulassen oder verweigern.

Einschränken der Auswahl der verfügbaren Tools für das KI-Modell

Die Optionen --available-tools und --excluded-tools beschränken die Menge der Werkzeuge, die dem KI-Modell bekannt sind, und dies beeinflusst die Auswahl des Modells bei der Bestimmung, wie es eine Aufgabe abschließen soll.

  • --available-tools deaktiviert alle anderen Tools als die von Ihnen angegebenen Tools.
  • --excluded-tools deaktiviert nur die angegebenen Tools.

Wenn Sie beide Optionen zusammen verwenden, wendet die CLI die in der Zulassungsliste angegebene --available-tools an und ignoriert die in der Sperrliste angegebene --excluded-tools.

Wenn sich ein Tool nicht im verfügbaren Satz befindet, kann das KI-Modell es überhaupt nicht verwenden, auch wenn Sie es mit der --allow-tool Option angeben. In einer interaktiven Sitzung, in der Sie keinen verfügbaren Toolsatz angeben, kann das KI-Modell versuchen, ein Tool zu verwenden, nur um verweigert zu werden. Die Optionen --available-tools und --excluded-tools verhindern, dass Sie auf diese Weise Interaktionen mit dem Modell verschwenden.

Exemplarischer Anwendungsfall

Sie beginnen eine CLI-Sitzung, um Benchmarking für Ihr Projekt durchzuführen und verhindern dass das KI-Modell überhaupt versucht, die Websuche zu verwenden.

copilot --excluded-tools='web_fetch, web_search'

Hinweis

Ausführliche Informationen zur Syntax für diese und andere in diesem Artikel erwähnte Befehlszeilenoptionen finden Sie unter GitHub Copilot CLI-Befehlsreferenz.

Zulassen oder Verweigern der Berechtigung für bestimmte Tools

Die --allow-tool Optionen --deny-tool erlauben oder verweigern die Berechtigung für bestimmte Tools oder Toolunterbefehle.

Der Wert für jede dieser Optionen ist eine durch Trennzeichen getrennte Liste von Tooltypen, die optional genaue Tools und Unterbefehlsmuster angeben können.

Wenn Sie ein Tool mit --allow-toolangeben, kann das KI-Modell auswählen, dass dieses Tool verwendet werden soll, ohne Sie zur Berechtigung aufzufordern. Wenn Sie ein Tool mit --deny-toolangeben, kann das KI-Modell dieses Tool überhaupt nicht verwenden, auch wenn es die beste Wahl für die Durchführung einer Aufgabe wäre.

Ablehnungsregeln haben immer Vorrang vor Erlaubnisregeln, auch wenn --allow-all festgelegt ist oder in permissions-config.json eine entsprechende Genehmigung gespeichert wurde.

Beispiele

AuswahlAuswirkung
--allow-tool=shellAlle Shellbefehle zulassen.
--allow-tool='shell(git commit)'Lassen Sie den git commit Befehl zu.
--allow-tool='shell(git:*)' --deny-tool='shell(git push)'Zulassen Sie alle git Befehle außer git push.
--deny-tool=writeAlle Dateischreibvorgänge verweigern.
--allow-tool='read, write(.github/copilot-instructions.md)'Alle Lesevorgänge zulassen und Schreibvorgänge für eine bestimmte Datei zulassen.
--allow-tool='MyMCP(create_issue), MyMCP(delete_issue)'Erlauben Sie die create_issue- und delete_issue-Werkzeuge vom MyMCP MCP-Server.
--available-tools='bash,edit,view,grep,glob' --allow-tool='shell(git:*)' --deny-tool='shell(git push)'Kombinieren Sie beide Steuerungsebenen für eine eingeschränkte CLI-Sitzung.
Copilot kann den Code erkunden, Änderungen vornehmen und diese speichern, hat aber keinen Zugriff auf das Internet, kann keine beliebigen Subagenten ausführen oder Änderungen in den Git-Verlauf übertragen.

Ausführliche Informationen zu den unterstützten Tooltypen finden Sie unter GitHub Copilot CLI-Befehlsreferenz.

Zulässige Optionen

Die folgenden Befehlszeilenoptionen erteilen Copilot CLI die Berechtigung, alle verfügbaren Tools zu verwenden.

Wenn Sie über eine Copilot Business- oder Copilot Enterprise-Lizenz verfügen, können diese Befehle von einem Enterprise-Administrator blockiert werden.

Bevor Sie Copilot umfassende Berechtigungen mit einer Option „Alle zulassen“ erteilen, sollten Sie die Verwendung der lokalen Sandkastenumgebung oder das Ausführen der Sitzung in einer Cloud-Sandbox in Betracht ziehen, um einzuschränken, worauf Copilot zugreifen kann. Weitere Informationen findest du unter Informationen zum lokalen Sandboxing für GitHub Copilot und Informationen zu Cloud-Sandboxes für GitHub Copilot.

  • --allow-all-tools — Vollzugriff auf die verfügbaren Tools.

  • --allow-all oder --yolo — Entspricht der Nutzung aller Optionen --allow-all-tools, --allow-all-paths und --allow-all-urls beim Starten der CLI.

    Innerhalb einer interaktiven Sitzung können Sie die /permissions allow-all Befehle oder /yolo Schrägstriche verwenden, um alle Tools zuzulassen, ohne die Sitzung neu starten zu müssen.

Achtung

Es wird dringend empfohlen, diese Optionen nur in einer isolierten Umgebung zu verwenden. Sie sollten niemals einen Alias verwenden, um jedes Mal, wenn Sie Copilot CLI starten, eine dieser Optionen anzuwenden, da dies Copilot die Verwendung eines Tools ohne Ihre ausdrückliche Erlaubnis jedes Mal ermöglichen würde, wenn Sie die CLI verwenden, was zu unbeabsichtigten Folgen führen könnte.

Reduzieren von Aufforderungen mit assisted permissions

Die Berechtigungsoptionen für "Alle zulassen" gewähren umfassende Berechtigungen, ohne einzelne Aktionen zu überprüfen. Um Genehmigungsaufforderungen zu reduzieren, ohne pauschale Berechtigungen zu erteilen, verwenden Sie stattdessen die Option assisted permissions.

Zum Aktivieren assisted permissions geben Sie den /permissions assisted Schrägstrichbefehl in einer interaktiven Sitzung ein. Ein großes Sprachmodell bewertet zulässige Berechtigungsanfragen und genehmigt automatisch diejenigen, die es als sicher bewertet. Vorhandene Berechtigungen und Unternehmensregeln gelten weiterhin, und Anfragen, die noch Ihre Genehmigung benötigen, werden Ihnen vorgelegt. Geben Sie /permissions manual ein, um zur manuellen Genehmigung zurückzukehren, oder /permissions show, um die aktuelle Einstellung zu überprüfen. Sie können auch /permissions ohne Argument eingeben, um einen Modus aus einer Liste auszuwählen.

Um assisted permissions standardmäßig in neuen interaktiven Sitzungen zu verwenden, wenn kein verwalteter Standardwert konfiguriert ist, setzen Sie defaultPermissionMode in Ihrer Benutzerkonfigurationsdatei auf "assisted". Um es für eine nicht interaktive Ausführung, z. B. in einem CI/CD-Workflow, zu verwenden, nutzen Sie die --assisted-approval-Befehlszeilenoption. Weitere Informationen findest du unter Zulassen der Ausführung sicherer Befehle ohne manuelle Genehmigung.

Zurücksetzen von Berechtigungen

Der /reset-allowed-tools Schrägstrichbefehl widerruft die Berechtigungen, die Sie während der aktuellen interaktiven Sitzung erteilt haben. Dies gilt gleichermaßen für Berechtigungen, die Sie durch die Beantwortung von Eingabeaufforderungen erteilt haben, sowie für die Verwendung der /permissions, /allow-all oder /yolo Slash-Befehle. Außerdem wird der Berechtigungsmodus wieder auf manuell gesetzt, wobei die Berechtigung „Alle zulassen“ oder assisted permissions deaktiviert wird, wenn eine der beiden Optionen aktiviert ist.

Die Verwendung von /reset-allowed-tools setzt Berechtigungen auf die Standardeinstellung oder auf die Basislinie zurück, die durch die regelbasierten und URL-Befehlszeilenoptionen definiert wird, die Sie beim Starten von Copilot CLI verwendet haben, z. B. --allow-tool, --deny-tool, --allow-url und --deny-url.

Mit dem Befehl werden auch alle gespeicherten Genehmigungen für den aktuellen Speicherort permissions-config.jsongelöscht, einschließlich gespeicherter Toolgenehmigungen und aller gespeicherten Verzeichnisberechtigungen. Darüber hinaus aktiviert es das Autopilot-Berechtigungsdialogfeld erneut, sodass Copilot Sie bei Bedarf erneut zur Erteilung der Autopilot-Berechtigung auffordert.

Wenn Sie beispielsweise eine Copilot CLI interaktive Sitzung mit der Option --allow-tool='shell(git:*)'starten und dann weitere Berechtigungen während der Sitzung zulassen und verweigern, indem Sie auf Eingabeaufforderungen antworten, wenn Sie dann den /reset-allowed-tools Befehl verwenden, kehren die Berechtigungen der CLI in den ursprünglichen --allow-tool='shell(git:*)' Zustand zurück, ohne dass andere Berechtigungen zulässig oder verweigert wurden. Wenn Sie weiterhin in der Sitzung arbeiten, werden Sie erneut aufgefordert, falls Copilot zusätzliche Berechtigungen benötigt.

Um gespeicherte Genehmigungen für einen anderen Speicherort zu entfernen, bearbeiten oder löschen Sie den entsprechenden Speicherorteintrag in permissions-config.json. Weitere Informationen findest du unter GitHub Copilot CLI-Konfigurationsverzeichnis.

Weiterführende Lektüre