Blog • AI / Agent
Warum wirkt Claude Code immer mehr wie ein echter AI Agent? Tool Use, MCP, Session, Permission und der JSON-Workflow
Claude Code wirkt wie ein Agent, weil eine Sitzung drei JSON-Dokumente bindet: ein fortsetzbares Gespräch, die Rechteprüfung bei jedem Tool Use und die beim Start gelesene MCP-Konfiguration. Fortsetzen mit --resume, Rechte in settings.json, Werkzeuge aus .mcp.json. Fehlt eines, ist der fortgesetzte Lauf nicht dieselbe Arbeit.
Die Tool-Schleife steht schon in Wie Coding Agents arbeiten. Unterschiede der Harnesses stehen in dem Harness-Rennen. Dieser Artikel zerlegt nur Claude Code: was eine Sitzung zurückbringt, wann der Modus wechselt, wann MCP neu gelesen wird und welches Workflow-JSON Sie selbst behalten.
Dieser Artikel behandelt:
- Was eine fortgesetzte Sitzung mitbringt und was nicht
- Der Modus ist Sitzungszustand. Regeln stehen in den Settings
- MCP wird beim Start gelesen. Eine Kommandozeilen-Konfiguration kommt nicht von allein zurück
- Ein eigenes Workflow-JSON, damit der nächste Resume dieselben Argumente nutzt
- In welcher Reihenfolge ein Tool Use die drei Dokumente ändert
Zuerst festhalten: Eine Sitzung fortsetzen heißt nicht, die Startflags wiederherzustellen. Gespräch und manche Modi kommen zurück. --mcp-config nicht. Unten: Sitzung, Rechte, MCP, eigenes Workflow-JSON.
Was eine Sitzung zurückbringt und was nicht
Eine Sitzung ist ein Gespräch, gebunden an ein Projektverzeichnis. Siehe Sitzungen verwalten. Das Transkript wird lokal mitgeschrieben, deshalb können Sie nach dem Beenden zurück.
| Einstieg | Was zurückkommt | Berechtigungsmodus |
|---|---|---|
claude --continue |
Das letzte interaktive Gespräch in diesem Verzeichnis, inklusive Tool-Aufrufen und Ergebnissen | Im Terminal ohne -p gilt die offizielle Tabelle. bypassPermissions und plan kommen nicht unverändert zurück |
claude --resume <name> |
Diese Sitzung direkt über den Namen fortsetzen | Ein eindeutiger Name öffnet sie. Ein doppelter Name öffnet die Auswahl, und die stellt den gespeicherten Modus nicht wieder her |
claude -p --resume |
Nicht-interaktives Fortsetzen, für Skripte | Der Modus ist der eines neuen claude -p. Plan kommt nur zurück, wenn die Sitzung in plan endete und die vier offiziellen Bedingungen gelten |
Zurück kommen auch das damalige Modell, ein aktives Ziel und nicht abgelaufene geplante Aufgaben. Hintergrund-Bash nicht.
- Kommt zurück: Gesprächsverlauf, das Modell (außer es ist eingestellt oder von availableModels gesperrt) und ein mit --agent gestarteter Agent. Fehlt er in beiden Verzeichnissen, fallen die Standardwerkzeuge zurück und es erscheint eine Warnung.
- Kommt nicht von allein zurück:
--mcp-config,--settings,--add-dirund Verzeichnisse, die mitten in der Sitzung mit /add-dir kamen. Die beim Fortsetzen erneut übergeben. - Konfiguration in
settings.jsonund settings.local.json wird beim Start neu gelesen. Nicht erneut übergeben.
Das Transkript ist standardmäßig JSONL unter ~/.claude/projects/ in einem Ordner aus dem Arbeitsverzeichnis. Die Doku sagt, das Format ändert sich. Nicht als stabilen Vertrag behandeln. Stabile Felder in ein eigenes JSON legen.
Der Berechtigungsmodus gehört zur Sitzung
Der Modus ist kein Satz im Prompt. In der Sitzung wechselt Shift+Tab zwischen default, acceptEdits und plan. Beim Start --permission-mode. Der dauerhafte Standard ist Berechtigungsmodi, Feld permissions.defaultMode. Das Modell im Chat um einen anderen Modus zu bitten ändert das Tor nicht.
{
"permissions": {
"defaultMode": "default",
"allow": ["Bash(npm test *)"],
"ask": ["Bash(git push *)"],
"deny": ["Read(./.env)", "Read(./.env.*)"]
}
}
Die Reihenfolge steht in Claude-Code-Rechte. Ein spezielleres allow hebt ein schon getroffenes deny nicht auf.
| Wie Sie fortsetzen | Berechtigungsmodus |
|---|---|
| Terminal --continue oder --resume eines eindeutigen Namens, ohne -p | Stellt den Modus vom Ende wieder her, außer bypassPermissions und plan starten wie eine neue Sitzung. auto nur, wenn das Konto noch qualifiziert ist. |
| Die Auswahl beim Start oder ein Name mit mehreren Treffern | Stellt den gespeicherten Modus nicht wieder her. Startet im Modus einer neuen Sitzung für diesen Start. |
/resume |
Stellt den gespeicherten Modus der Zielsitzung nicht wieder her. Läuft im Modus der Sitzung weiter, in der Sie schon sind. |
Wie Regeln zur Warteschlange und zur Ablehnungsrückgabe werden, steht in Rechtekontrolle anschließen. Hier ist der Modus nur Sitzungszustand. Die Regeldatei wird beim Fortsetzen neu gelesen.
MCP wird beim Sitzungsstart gelesen
Ein Projektserver liegt in .mcp.json im Repo-Wurzelverzeichnis und wird beim Start gelesen. Nach einer Änderung beenden und neu starten. Siehe MCP verbinden. Beim ersten Projektserver wird um Zustimmung gebeten. Ein geklontes Repo darf ohne sie keinen Prozess auf Ihrem Rechner starten.
{
"mcpServers": {
"docs": {
"type": "http",
"url": "https://code.claude.com/docs/mcp"
}
}
}
- Projektbereich:
.mcp.json, geteilt mit allen, die das Repo klonen. Zuerst zustimmen. - Lokaler Bereich:
~/.claude.json. local ist nur Sie, nur dieses Projekt. user ist nur Sie, alle Projekte. - Das Flag
--mcp-configgilt nur für diesen Start. Resume bringt es nicht zurück. Erneut übergeben.
Der volle Toolname nutzt ein Präfix wie mcp__docs__. Rechte-Regeln treffen diesen vollen Namen. Nicht nur den Kurznamen vom Server schreiben.
Das Workflow-JSON, das Sie behalten
Das JSONL-Transkript ist kein stabiler Vertrag. Das Dokument unten gehört Ihnen. Es merkt, was Sie beim nächsten Fortsetzen übergeben. Es ist kein Claude-Code-Request, und die CLI liest es nicht.
{
"name": "auth-refactor",
"cwd": "/repo/app",
"permission_mode": "default",
"settings": ".claude/settings.json",
"mcp_config": ".mcp.json",
"resume": ["--resume", "auth-refactor"],
"last_tool": {
"name": "mcp__docs__search",
"decision": "allow"
}
}
name ist der Name aus claude -n oder /rename, damit --resume ihn findet. cwd muss das damalige Projektverzeichnis sein. Sitzungen liegen pro Verzeichnis.
-
1
Zuerst die Sitzung treffen
namegeht an --resume.cwdentscheidet, in welchem Projektverzeichnis das Transkript liegt. Falsches Verzeichnis: derselbe Name wird nicht gefunden. -
2
Dann den Modus angleichen
permission_modein--permission-modedes Resume-Befehls kopieren. Auswahl und /resume stellen den alten Modus nicht wieder her. -
3
Zuletzt MCP anhängen
Zeigt
mcp_configauf eine Datei im Repo, liest der Start sie neu. Hing der ursprüngliche Lauf an einer Kommandozeilen-Datei, den Pfad in--mcp-configlegen.
Wie ein Tool Use die drei Dokumente ändert
Ein Zug ist kein weiterer Prompt-Absatz. Die Reihenfolge ist fest.
-
1
Laden
Die Sitzung lädt das Gespräch und liest settings.json sowie .mcp.json neu. Kommandozeilen-MCP ist nur da, wenn Sie es diesmal übergeben.
-
2
Aufruf vorschlagen
Das Modell gibt ein tool_use aus: voller Toolname und input. Ein MCP-Tool trägt das Server-Präfix.
-
3
Rechte prüfen
Zuerst deny, dann ask, dann allow. Deny führt nicht aus. Ask wartet auf eine Person. Allow ruft das Tool auf.
-
4
Zurückschreiben
Das Ergebnis wird ans Sitzungstranskript angehängt. Ihr Workflow-JSON aktualisiert nur
last_tool. Nicht das ganze Transkript hineinkopieren.
Beim nächsten Fortsetzen wissen Sie, bei welchem Tool Sie standen, welcher Modus galt und welche Datei MCP lieferte. Das Transkript speichert weiter Claude Code.
Abgrenzung zu den anderen beiden Artikeln
| Wie Coding Agents arbeiten | Das Harness-Rennen | Dieser Artikel | |
|---|---|---|---|
| Frage | Wie eine Tool-Schleife allgemein dreht | Worin sich die Hüllen unterscheiden | Was jedes der drei JSON-Dokumente tut, wenn eine Claude-Code-Sitzung fortgesetzt wird |
| Hier nicht suchen | Noch eine Übersicht zum Tool Calling | Noch eine Produktvergleichstabelle | Das JSONL-Transkript als stabile API zu parsen |
Das Workflow-JSON in JSONNote prüfen
-
1
Formatieren
Öffnen Sie settings.json und den Workflow-Eintrag in JSON formatieren. Ein Kommentar oder ein nachgestelltes Komma führt beim nächsten Start zu einem Settings Error.
-
2
Workflow-Eintrag prüfen
Fügen Sie das Schema unten in JSON Schema ein. Fehlen name oder cwd oder liegt permission_mode außerhalb des enum, erst korrigieren, dann fortsetzen.
-
3
Rechte-Regeln vergleichen
Vor und nach einer Änderung an deny / allow mit JSON Diff prüfen, ob eine
deny-Regel nachallowgewandert ist. Diese Änderung wiegt mehr als der Sitzungsname.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"additionalProperties": false,
"required": ["name", "cwd", "permission_mode", "settings", "mcp_config"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"cwd": { "type": "string", "minLength": 1 },
"permission_mode": {
"enum": ["default", "acceptEdits", "plan", "auto", "dontAsk", "bypassPermissions"]
},
"settings": { "type": "string", "minLength": 1 },
"mcp_config": { "type": "string", "minLength": 1 },
"resume": { "type": "array", "items": { "type": "string" } },
"last_tool": {
"type": "object",
"required": ["name", "decision"],
"properties": {
"name": { "type": "string" },
"decision": { "enum": ["allow", "deny", "ask"] }
}
}
}
}
Häufige Fragen
Sind MCP-Server nach resume noch da?
Server in .mcp.json oder ~/.claude.json werden beim Start neu gelesen. Was nur über --mcp-config kam, kommt nicht zurück. Beim Fortsetzen erneut übergeben.
Kommt der Berechtigungsmodus mit dem Gespräch zurück?
Nicht immer. Ein Terminal --continue oder --resume eines eindeutigen Namens ohne -p folgt der offiziellen Tabelle. bypassPermissions und plan kommen nicht unverändert zurück. Auswahl und /resume nutzen den Modus dieses Starts.
Darf man das JSONL unter ~/.claude/projects als Workflow parsen?
Nein. Die Doku behandelt das Format als interne Datei, die sich ändert. Stabile Felder gehören ins Workflow-JSON dieses Artikels: Name, Verzeichnis, Modus, Pfade und die letzte Tool-Entscheidung.
Hilft es, das Modell im Chat um einen anderen Modus zu bitten?
Nein. Den Modus setzen Shift+Tab, --permission-mode oder defaultMode in den Settings. Ein Prompt ändert das Tor nicht.
Ist das dieselbe Sache wie die Freigabe-Warteschlange?
Nein. permission_mode hier ist das Tor dieser Sitzung. Warteschlange, Ablehnungsrückgabe und tool_use_id stehen im Artikel zur Rechtekontrolle. Beides braucht es: Der Modus entscheidet, ob gefragt wird, die Warteschlange, wie die Antwort gespeichert wird.
Fazit
Claude Code wirkt wie ein Agent, weil eine Sitzung Gespräch, Modus und MCP-Tools zu einer fortsetzbaren Arbeit bindet. Das Gespräch zurückzuholen ist nicht dasselbe wie die Startflags. Das JSONL-Transkript bleibt bei der CLI. Behalten Sie Ihr eigenes Workflow-JSON.
Direktes Fazit: Sitzung über Name und Verzeichnis finden. Den Modus bei Auswahl und /resume erneut übergeben. --mcp-config bei jedem Resume erneut mitgeben.
Als Nächstes: den Workflow-Eintrag prüfen, dann die Sitzung mit den resume-Argumenten darin öffnen.