Wie macht man aus einem reinen LLM-Textgenerator einen handlungsfähigen Software-Engineering-Agenten?
Dieses Repository dokumentiert und analysiert die interne Architektur des Agent Harness von Claude Code — der Laufzeitumgebung, die Anthropics KI-Modell Claude über ~40 Werkzeuge mit der realen Welt verbindet: Shell, Dateisystem, Web, IDE-Integration und mehr.
Am 31. März 2026 wurde der Quellcode von Claude Code durch eine versehentlich im npm-Registry veröffentlichte .map-Datei öffentlich. Der Code umfasst ~512.000 Zeilen TypeScript und bietet einen seltenen, ungeschminkten Einblick in die Architektur eines produktionsreifen Agent Harness.
Der Originalcode ist in diesem Repository nicht enthalten (src/ ist in .gitignore ausgeschlossen). Der Quellcode kann über den referenzierten Commit eingesehen werden:
Quelle: ultraworkers/claw-code @
5a774a2
┌─────────────────────────────────────────────────────┐
│ Agent Harness │
│ │
│ ┌───────────┐ ┌──────────────┐ ┌───────────┐ │
│ │ Benutzer │◄─►│ Query-Loop │◄─►│ LLM │ │
│ │ (CLI/UI) │ │ (Steuerung) │ │ (API) │ │
│ └───────────┘ └──────┬───────┘ └───────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ Tool-System │ │
│ │ Shell · Dateien · │ │
│ │ Web · MCP · IDE · │ │
│ │ Sub-Agenten · ... │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────┘
Ein Agent Harness ist die Infrastruktur, die ein großes Sprachmodell (LLM) zu einem autonomen Agenten macht. Es verbindet drei Dinge:
- Benutzer-Schnittstelle — Eingabe und Ausgabe (hier: Terminal-UI mit React/Ink)
- Query-Loop — die Kern-Schleife, die Nachrichten an die API sendet, Streaming-Antworten verarbeitet, Tool-Aufrufe erkennt und die Ergebnisse zurückspeist
- Tool-System — ~40 konkrete Werkzeuge, mit denen der Agent auf die reale Welt zugreift
Die Dokumentation in diesem Repository erklärt, wie diese drei Teile zusammenspielen.
| Kapitel | Status | Inhalt |
|---|---|---|
| 1. Einleitung & Zweck | ✅ | Was ist Claude Code? Was ist ein Agent Harness? Technologiestack |
| 2. Architekturübersicht | ✅ | 9-Schichten-Modell, Startup-Ablauf, Query-Lifecycle, State-Management, Berechtigungen, Feature Flags |
| 3. Hauptkomponenten | ✅ | QueryEngine, Query-Schleife, Tool-System (Interface, Registry, Ausführung), Command-System, AgentTool, BashTool, Coordinator, Skills/Plugins |
| 4. Typische Abläufe | ✅ | Startup-Sequenz, Query-Lifecycle, Query-Schleife, Tool-Pipeline, Fallback & Recovery, Sub-Agent-Spawning, Session-Resume, Hooks, Timing |
| 5. Erweiterungsmöglichkeiten | ✅ | Skills, MCP-Server, Plugins, Custom Agents — praktischer Leitfaden mit Querverweisen |
| 6. Ausblick | ✅ | Learnings aus dem Leak, offene Fragen, nächste Generation, Vergleich mit Cursor/Windsurf/Cline/Aider |
| Anhang: React/Ink als Terminal-UI | ✅ | Warum React im Terminal? Ink-Architektur, Claude Codes Fork, Komponentenhierarchie, Render-Zyklus |
| Anhang: Rust-Projekt claw-code | ✅ | Einordnung und Abgrenzung des öffentlichen Rust-Reimplementierungsprojekts ultraworkers/claw-code |
| Anhang: Kommentare von Gemini | ✅ | Exklusive Einblicke und Kommentare von Gemini (Google/Alphabet) zum Leak und zur Architektur |
| Anhang: Quellenverzeichnis | ✅ | Analysierte Quelldateien mit Links zu zwei öffentlichen Mirrors |
| Anhang: Entstehungsprotokoll | ✅ | Making-of, Analyseprozess, Herausforderungen, Learnings |
Die Analyse zeigt, wie ein modernes Agent Harness die folgenden Probleme löst:
Ein LLM hat ein begrenztes Kontextfenster. Claude Code löst das durch eine 6-stufige Kompressions-Pipeline (Tool-Result-Budget → Snip → Microcompact → Context Collapse → Auto-Compact → Reactive Compact), die den Kontext intelligent komprimiert, ohne relevante Informationen zu verlieren.
Nicht alle Werkzeuge sind gleich: Read-Only-Tools (Grep, Glob, FileRead) laufen parallel (bis zu 10 gleichzeitig), mutierende Tools (Bash, FileWrite) seriell. Der StreamingToolExecutor startet Tools sogar während des API-Streamings, noch bevor die vollständige Antwort vorliegt.
Jeder Tool-Aufruf durchläuft eine 5-stufige Permission-Pipeline: Config-Rules → Permission-Mode → Auto-Classifier → Hooks → User-Prompt. Vier Modi (default, plan, auto, bypass) erlauben feingranulare Kontrolle.
Über AgentTool können Sub-Agenten mit eingeschränkten Tool-Sets gestartet werden. Der Coordinator-Mode orchestriert mehrere Worker-Agenten für parallele Aufgaben.
~30 Feature Flags via bun:bundle's feature() ermöglichen Dead Code Elimination beim Build — deaktivierte Features werden physisch aus dem Binary entfernt.
| Kategorie | Technologie |
|---|---|
| Runtime | Bun |
| Sprache | TypeScript (strict) |
| Terminal-UI | React + Ink |
| CLI-Parsing | Commander.js |
| Validierung | Zod v4 |
| Code-Suche | ripgrep |
| Protokolle | MCP SDK, LSP |
| API | Anthropic SDK |
| Telemetrie | OpenTelemetry |
| Feature Flags | GrowthBook |
.
├── README.md ← dieses Dokument
├── .github/
│ └── copilot-instructions.md ← Projektweite Regeln für GitHub Copilot
├── .gitignore ← schließt src/ aus (Link zum Originalcode)
├── docs/
│ ├── 1_Einleitung_&_Zweck.md ← Was und warum
│ ├── 2_Architekturübersicht.md ← Wie es zusammenhängt
│ ├── 3_Hauptkomponenten.md ← Detailanalyse der Kernmodule
│ ├── 4_Typische_Abläufe.md ← Sequenzdiagramme & Abläufe
│ ├── 5_Erweiterungsmöglichkeiten.md ← Skills, MCP, Plugins, Custom Agents
│ ├── 6_Ausblick.md ← Learnings, offene Fragen, Vergleich
│ ├── v_React-Ink-UI-Framework.md ← React/Ink als Terminal-UI-Framework
│ ├── w_Rust-Projekt_claw-code.md ← Einordnung des Rust-Reimplementierungsprojekts
│ ├── x_Kommentare_von_Gemini.md ← Kommentare von Gemini zum Leak
│ ├── y_Quellenverzeichnis.md ← Analysierte Quelldateien mit Links
│ └── z_Entstehungsprotokoll.md ← Making-of & Entstehungsprotokoll
└── src/ ← NICHT im Repo (siehe .gitignore)
└── (Originalcode via Link oben)
Dieses Repository enthält keinen Quellcode von Anthropic. Es enthält ausschließlich eigenständig verfasste Dokumentation und Analyse. Der Originalcode kann über den in .gitignore referenzierten Link eingesehen werden.
Die Dokumentation dient ausschließlich Bildungs- und Forschungszwecken.
Erstellt mit Unterstützung von Claude (Anthropic) als Analyse- und Dokumentationswerkzeug.