Es gibt einen Moment in jedem Softwareprojekt, in dem man erkennt, dass man das Falsche gebaut hat. Man hat Wochen damit verbracht, einen Message-Router, eine Tool-Execution-Engine, einen Conversation-State-Manager und ein Retry-System zu schreiben — und dann stellt man fest, dass der KI-Anbieter all das bereits handhabt, besser als man selbst es könnte, in einem einzigen API-Aufruf.
Dieser Moment führte zu NanoClaws Architektur. Der gesamte Kern — der Teil, der eine WhatsApp-Nachricht in eine KI-Agent-Antwort mit Tool-Nutzung, Web-Browsing, Dateizugriff und Mehrfach-Konversation verwandelt — umfasst ungefähr 500 Zeilen TypeScript. Nicht 500 Zeilen Glue-Code, der 50.000 Zeilen Framework importiert. Fünfhundert Zeilen, insgesamt, aufgebaut auf Anthropics Claude Agent SDK.
Die Reaktion von Entwicklern, die den Quellcode zum ersten Mal lesen, ist meist Ungläubigkeit, gefolgt von der entscheidenden Frage: „Wo ist der Rest?"
Was Claude Agent SDK tatsächlich macht
Die meisten KI-Agent-Frameworks existieren, weil Sprachmodell-APIs historisch zustandslos und einfach waren. Man schickte einen Prompt, man bekam eine Antwort. Wenn man Tool-Nutzung wollte, musste man die Tool-Execution-Schleife selbst bauen. Wenn man Mehrfach-Konversation wollte, musste man die Nachrichtenhistorie selbst verwalten. Wenn man wollte, dass das Modell zwischen mehreren Tools entscheidet, musste man die Routing-Logik selbst bauen.
Claude Agent SDK ändert diese Gleichung grundlegend. Das SDK ruft nicht einfach die Claude API auf — es führt eine Agent-Schleife aus. Man gibt ihm einen System-Prompt, eine Menge von Tools und eine Nutzernachricht. Das SDK erledigt alles Weitere: Es sendet die Nachricht an Claude, empfängt die Antwort, prüft ob Claude ein Tool nutzen möchte, führt das Tool aus, sendet das Ergebnis zurück an Claude und wiederholt das, bis Claude eine finale Antwort produziert. Die gesamte Tool-Use-Schleife — das, wofür die meisten Frameworks Tausende Zeilen aufwenden — ist ein einziger Funktionsaufruf.
Das ist kein dünner Wrapper. Das SDK handhabt Streaming, Retry-Logik, Token-Zählung und Konversationsstatus. Es verwaltet das Hin und Her zwischen Claude und Tools über mehrere Runden und behandelt Randfälle wie Tool-Execution-Fehler und Context-Window-Limits. Die Komplexität, die NanoClaw nicht implementieren muss, fehlt nicht — sie wurde in ein gut getestetes SDK verlagert, das von Anthropics eigenem Engineering-Team gepflegt wird.
Was NanoClaw tatsächlich baut
Wenn das SDK die Agent-Schleife handhabt, was machen NanoClaws 500 Zeilen dann eigentlich? Die Antwort ist alles drumherum — die Teile, die spezifisch für den Betrieb eines persönlichen KI-Assistenten sind, nicht nur für einen API-Aufruf.
Die erste Aufgabe ist die Kanal-Integration. NanoClaw verbindet sich über die Baileys-Bibliothek mit WhatsApp, empfängt Nachrichten und leitet sie an den richtigen Agent-Container weiter. Das ist der Klebstoff zwischen „jemand hat eine Nachricht auf WhatsApp gesendet" und „ein Agent muss diese Nachricht verarbeiten". Es ist kein komplizierter Code, aber es ist essenzieller Code — ohne ihn hat der Agent keine Möglichkeit, Nutzer dort zu erreichen, wo sie bereits sind.
Die zweite Aufgabe ist die Container-Orchestrierung. Jede Agent-Konversation läuft in ihrem eigenen Linux-Container — Apple Container auf macOS, Docker auf Linux. NanoClaw startet Container, mountet die richtigen Verzeichnisse, übergibt Secrets über stdin und sammelt Antworten ein. Das ist die Sicherheitsgrenze, die verhindert, dass ein kompromittierter Agent auf irgendetwas außerhalb seiner Sandbox zugreift. Das Container-Lifecycle-Management umfasst vielleicht 80 Zeilen Code, aber diese 80 Zeilen sind der Unterschied zwischen einem Agent, dem man echte Zugangsdaten anvertrauen kann, und einem, dem man das nicht kann.
Die dritte Aufgabe ist persistenter Speicher. NanoClaw pflegt eine SQLite-Datenbank mit Konversationen, Gruppenstatus und geplanten Aufgaben. Jede WhatsApp-Gruppe erhält ihre eigene CLAUDE.md-Datei, die als Langzeitgedächtnis des Agents für diese Gruppe dient. Das Speichersystem ist einfach — absichtlich — weil der komplexe Teil des Gedächtnisses (entscheiden, was relevant ist, was abgerufen werden soll, wie Kontext genutzt wird) von Claude selbst übernommen wird.
Die vierte Aufgabe sind geplante Aufgaben. Nutzer können den Agent bitten, Dinge zu bestimmten Zeiten zu tun — „erinnere mich um 15 Uhr" oder „prüfe diese Website jeden Morgen". NanoClaws Cron-ähnlicher Scheduler löst Agent-Container zur richtigen Zeit aus — ein kleines, aber wirklich nützliches Feature, das einen reaktiven Chatbot in einen proaktiven Assistenten verwandelt.
Warum 500 Zeilen wichtig sind
Die Zeilenzahl ist keine Eitelkeitsmetrik. Sie ist ein direktes Maß für die Wartungsoberfläche, die Fehleroberfläche und die kognitive Last, die nötig ist, um das System zu verstehen.
Wenn ein Bug in NanoClaws Kern auftaucht, gibt es 500 Zeilen, in denen er sich befinden könnte. Ein Entwickler kann die gesamte Codebasis in unter einer Stunde lesen und jede getroffene Entscheidung nachvollziehen. Vergleiche das mit Frameworks mit 50.000 Zeilen Kerncode — einen Bug zu finden bedeutet, durch Abstraktionen zu navigieren, Plugin-Systeme zu verstehen und die Ausführung durch Schichten von Indirektion zu verfolgen, die existieren, um Features zu unterstützen, die man vielleicht gar nicht nutzt.
Die Sicherheitsimplikationen sind ebenso konkret. Jede Codezeile ist eine potenzielle Schwachstelle. NanoClaws 500-Zeilen-Kern hat eine kleinere Angriffsfläche als die Konfigurationsparser der meisten Frameworks. Die Container-Isolation, die Secret-Übergabe über stdin, die Mount-Allowlists — diese Sicherheitsfeatures sind in Code implementiert, der klein genug ist, um ihn an einem Nachmittag vollständig zu auditieren.
Und die Upgrade-Story ist einfach. Wenn Anthropic eine neue Version von Claude Agent SDK mit besserer Tool-Nutzung, schnellerem Streaming oder neuen Fähigkeiten veröffentlicht, erhält NanoClaw diese Verbesserungen durch das Update einer einzigen Abhängigkeit. Es gibt keine Framework-Abstraktionsschicht, die aktualisiert werden muss, um neue SDK-Features freizugeben. Das SDK ist das Framework.
Die Philosophie des Nicht-Bauens
Der schwierigste Teil von NanoClaws Architektur war nicht das Bauen — es war die Entscheidung, was man nicht bauen sollte. Die Versuchung, eine eigene Tool-Execution-Engine, ein ausgefeiltes Memory-Retrieval-System, eine Multi-Provider-Abstraktionsschicht oder einen Plugin-Marktplatz hinzuzufügen — all das sind Dinge, die andere Frameworks gebaut haben, und all das sind Dinge, die NanoClaw bewusst nicht hat.
Jedes dieser Features würde Tausende Zeilen Code, Dutzende potenzielle Bugs und Wochen an Wartungsaufwand hinzufügen. Und jedes würde Funktionalität duplizieren, die entweder Claude Agent SDK bereits bietet oder die Claude selbst besser handhabt als jeder handgeschriebene Code es könnte.
Das Ergebnis ist ein Projekt, bei dem die interessanten Entscheidungen architektonischer Natur sind, nicht implementierungstechnischer. Wie sollten Container isoliert werden? Wie sollten Secrets übergeben werden? Wie sollte Speicher pro Gruppe begrenzt werden? Das sind die Fragen, die für einen persönlichen KI-Assistenten wichtig sind, und das sind die Fragen, deren Beantwortung NanoClaws 500 Zeilen gewidmet sind.
Wenn du das nächste Mal ein KI-Agent-Framework evaluierst, zähle nicht die Features. Zähle die Zeilen. Das Framework mit den wenigsten Zeilen ist nicht das am wenigsten leistungsfähige — es könnte dasjenige sein, das das Problem gut genug verstanden hat, um den KI-Anbieter die schwere Arbeit machen zu lassen.