51 Punkte von princox 29 일 전 | 1 Kommentare | Auf WhatsApp teilen

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

  1. Der Nutzer gibt eine Nachricht im Terminal ein (oder sie wird per --print / stdin übergeben)
  2. System-Prompt wird zusammengesetzt — aktuelles Datum, git-Status, CLAUDE.md-Datei, Liste verfügbarer Tools
  3. Anthropic-API-Aufruf → das Modell erzeugt einen tool_use-Block (Tool-Name + JSON-Eingabe)
  4. Berechtigungsprüfung — es wird entschieden zwischen automatischer Genehmigung / Bestätigungsanfrage / Blockierung
  5. Tool-Ausführung → das Ergebnis (Dateiinhalt, Kommandoausgabe usw.) wird als tool_result zum Gespräch hinzugefügt
  6. 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 mit lodash/memoize pro Gespräch gecacht. Bei einem Aufruf von setSystemPromptInjection() 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 --resume wird 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

 
jeeeyul 29 일 전

Seit 2023 hat sich an der ReAct-Struktur wohl nicht viel geändert.