Ich habe die wichtigsten Punkte dazu zusammengefasst, wie Claude Code im Terminal funktioniert, basierend auf der offiziellen Dokumentation (Mintlify-Zusammenfassung von VineeTagarwaL).
Wie funktioniert Claude Code?
Kurz gesagt ist es eine Schleife aus „lesen → nachdenken → Tools verwenden → Ergebnis prüfen → wiederholen“.
6 Schritte der Agentic Loop
- Der Nutzer gibt eine Nachricht im Terminal ein (oder sie wird per
--print/ stdin übergeben) - System-Prompt wird zusammengesetzt — aktuelles Datum, git-Status,
CLAUDE.md-Datei, Liste verfügbarer Tools - Anthropic-API-Aufruf → das Modell erzeugt einen
tool_use-Block (Tool-Name + JSON-Eingabe) - Berechtigungsprüfung — es wird entschieden zwischen automatischer Genehmigung / Bestätigungsanfrage / Blockierung
- Tool-Ausführung → das Ergebnis (Dateiinhalt, Kommandoausgabe usw.) wird als
tool_resultzum Gespräch hinzugefügt - Das Modell mit dem Ergebnis ruft weitere Tools auf oder liefert eine endgültige Antwort — Wiederholung, bis keine Tool-Aufrufe mehr erfolgen
Die Schleife läuft nur im lokalen Terminal-Prozess. Außer bei Tools, die explizit externe Aufrufe machen, wie WebFetch, WebSearch oder MCP-Server, verlassen Dateien, Shell und Anmeldedaten die Maschine nicht.
Wie wird der Kontext erzeugt?
Beim Start eines Gesprächs werden zwei Blöcke zusammengesetzt und vor jeden API-Aufruf gestellt.
- Systemkontext — aktueller Branch, die letzten 5 Commits, Ergebnis von
git status --short(abgeschnitten, wenn es 2.000 Zeichen überschreitet) - Nutzerkontext — die Memory-Datei
CLAUDE.md(hierarchische Suche in 4 Stufen), heutiges Datum (Today's date is YYYY-MM-DD)
Beide Blöcke werden mitlodash/memoizepro Gespräch gecacht. Bei einem Aufruf vonsetSystemPromptInjection()wird der Cache sofort zurückgesetzt.
Berechtigungsmodell — wann werden Tools ausgeführt?
| Ergebnis | Verhalten |
|---|---|
allow |
Sofort ausführen, Ergebnis zum Gespräch hinzufügen |
ask |
Anhalten → Bestätigungsdialog anzeigen |
deny |
Ablehnen → Fehler an das Modell zurückgeben |
- Modus
bypassPermissions: alle Prüfungen überspringen - Modus
acceptEdits: Dateiänderungen automatisch genehmigen, für bash wird weiterhin eine Bestätigung verlangt - Schreibgeschützte Tools wie Read, Glob, Grep werden in allen Modi standardmäßig automatisch genehmigt
Sub-Agenten (Task-Tool)
Claude kann mit dem Task-Tool (AgentTool) Sub-Agenten starten. Sub-Agenten führen ihre eigene Agentic Loop mit isolierten Gesprächen und optional eingeschränktem Toolset aus und geben nach Abschluss das Ergebnis an den übergeordneten Agenten zurück. Die Ausführung ist lokal (im Prozess) oder auf Remote-Compute möglich.
Gespräche speichern und wiederherstellen
Gespräche werden unter ~/.claude/ als JSON-Transkriptdateien gespeichert.
- Mit
--resume <session-id>oder nur--resumewird ein früheres Gespräch fortgesetzt - Beim Fortsetzen: vollständige Nachrichtenhistorie laden,
CLAUDE.md-Datei erneut durchsuchen, Berechtigungsmodus auf den Konfigurationsstandard zurücksetzen - Lange Gespräche werden periodisch kompaktiert — ältere Nachrichten werden zusammengefasst, um das Kontextfenster zu verwalten. Das vollständige Originaltranskript bleibt auf der Festplatte erhalten
Was die Query-Engine macht
Jeder „Turn“ wird von query.ts gesteuert.
- Token-Streaming in Echtzeit im Terminal ausgeben
tool_use-Blöcke an den passenden Handler dispatchen- Token- und Tool-Aufruf-Budgets pro Turn verwalten
- Kompaktierung auslösen, wenn das Kontextfenster voll ist
- Jedes Tool besitzt die Eigenschaft
maxResultSizeChars— wenn ein Ergebnis dieses Limit überschreitet, wird es in einer temporären Datei gespeichert und dem Modell wird nur der Dateipfad übergeben (um ein Overflow des Kontextfensters zu verhindern)
Original: How Claude Code works — Mintlify
Hinweis: Dies ist ein inoffizielles Mirror-Dokument, in dem VineeTagarwaL die offizielle Claude-Code-Dokumentation in Mintlify neu strukturiert hat.
1 Kommentare
Seit 2023 hat sich an der ReAct-Struktur wohl nicht viel geändert.