Die Idee

Ein Coding-Agent kann ein Repository prüfen, Dateien ändern, Shell-Befehle ausführen oder verbundene Dienste verwenden. Das ist nützlich, wirft aber eine einfache Frage auf: Wer entscheidet, ob eine Aktion stattfinden darf?

Berechtigungen sind Kontrollen, die diese Frage beantworten. Sie entscheiden, welche Aktionen automatisch laufen dürfen, welche deine Zustimmung brauchen und welche blockiert sind. Die genauen Namen unterscheiden sich je nach Werkzeug. In Claude Code deckt das Berechtigungssystem Aktionen wie das Lesen von Dateien, das Ändern von Dateien, das Ausführen von Bash-Befehlen und die Nutzung webbezogener Werkzeuge ab. Lesezugriffe auf Dateien in erlaubten Arbeitsverzeichnissen brauchen im Allgemeinen keine Zustimmung; Dateiänderungen und Bash-Befehle brauchen sie im manuellen Modus im Allgemeinen schon. Anthropic-Dokumentation

Ein Prompt ist etwas anderes. Er ist Text, der der KI sagt, was du möchtest, etwa: „Prüfe den fehlschlagenden Test und schlage einen minimalen Fix vor.“ Ein Prompt kann beeinflussen, was das Modell versucht. Er gibt keinen Zugriff. Claude Code erklärt, dass sein Client, also die Anwendung, die die Agent-Sitzung ausführt, Berechtigungsregeln durchsetzt; Prompts und Anweisungen in CLAUDE.md setzen sie nicht außer Kraft. Anthropic-Dokumentation Anthropic-Dokumentation zu Memory

Einfach gesagt: Ein Prompt ist eine Anfrage. Berechtigungen sind das Tor vor der Aktion.

Wenn der Agent etwas tun will, fordert er einen Werkzeugaufruf an: den Versuch, eine Fähigkeit wie das Lesen einer Datei oder das Ausführen eines Befehls zu nutzen. Der Client prüft die passenden Regeln, bevor die Aktion läuft.

In Claude Code kann eine Regel drei nützliche Ergebnisse haben: Eine Erlaubnisregel führt eine passende Aktion ohne Nachfrage aus, eine Ask-Regel fordert eine Bestätigung an und eine Sperrregel blockiert sie. Claude Code wertet passende Ergebnisse in der Reihenfolge deny, ask, dann allow aus. Deshalb hat eine passende Deny-Regel Vorrang vor einer engeren Allow-Regel. Anthropic-Dokumentation

Das ist eine Zugriffskontrollgrenze und keine Zusage, dass der Agent richtigliegt. Ein erlaubter Befehl kann trotzdem die falsche Datei ändern, Daten preisgeben oder einen schlechten Fix erzeugen.

Ein kleines Beispiel

Beispiel: Nach einer kleinen Änderung an einer Validierung schlägt ein Test fehl. Du bittest den Agenten: „Prüfe den Fehler. Erkläre einen minimalen Fix, bevor du Änderungen vornimmst.“

Zuerst liest der Agent den Test und die relevanten Quelldateien. Abhängig vom konfigurierten Arbeitsverzeichnis kann diese reine Leseaufgabe in Claude Code ohne Bestätigung erfolgen. Danach schlägt er eine Änderung an einer Validierungsdatei vor. Du prüfst die angeforderte Änderung und bestätigst sie. Anschließend fordert er die Ausführung des konkreten Testbefehls des Projekts an. Auch diese Anfrage prüfst und bestätigst du, wenn sie angemessen ist.

Es geht nicht darum, alles langsam zu bestätigen. Die Grenze soll zum Risiko passen. Einen Test zu lesen ist etwas anderes als eine Quelldatei zu ändern. Einen bekannten Testbefehl auszuführen ist etwas anderes, als beliebige Shell-Befehle zu erlauben.

Probier es aus

Nimm dir fünf Minuten für diese hypothetische Übung. Wähle eine sehr kleine Aufgabe in einem unkritischen Repository, zum Beispiel die Diagnose eines fehlschlagenden Tests. Schreibe drei Spalten auf:

  1. Darf lesen: Dateien oder Informationen, die der Agent prüfen darf.
  2. Muss fragen: Änderungen oder Befehle, die du zuerst prüfen möchtest.
  3. Darf nicht: Aktionen, die nicht verfügbar sein sollen, etwa Code zu veröffentlichen oder Dateien zu löschen.

Schreibe dann einen Prompt, der vor Änderungen um einen Plan bittet. Vergleiche den Prompt mit deinen drei Spalten. Der Prompt beschreibt den Ablauf. Die Berechtigungsentscheidungen legen fest, was passieren kann, wenn der Agent eine Aktion anfordert.

Darauf solltest du achten

Halte Berechtigungsregeln eng und verständlich. Breite Befehlsmuster können mehr erlauben, als du beabsichtigst. Eine Regel, die auf eine Schreibweise eines Befehls passt, blockiert möglicherweise keine gleichwertige Ausführung über einen anderen Pfad oder einen Shell-Wrapper. Prüfe daher das Matching-Verhalten des jeweiligen Werkzeugs, bevor du dich auf eine Regel für Befehlstext verlässt. Anthropic-Dokumentation

Behandle eine Berechtigungsabfrage nicht als bloßen Klick. Lies, was der Agent anfordert, besonders wenn er Dateien schreibt, Abhängigkeiten ändert, auf ein Netzwerk zugreift oder Code veröffentlicht.

Verwechsle Berechtigungen schließlich nicht mit Isolation. Berechtigungen entscheiden, ob der Agent-Client eine Aktion genehmigt. Eine Sandbox oder virtuelle Maschine ist eine getrennte Umgebung, die Auswirkungen begrenzen kann, nachdem ein Befehl läuft. Claude Code empfiehlt, Bypass-artige Berechtigungsmodi nur in isolierten Umgebungen wie Containern oder virtuellen Maschinen zu verwenden. Anthropic-Dokumentation