1 Punkte von GN⁺ 2025-05-20 | 1 Kommentare | Auf WhatsApp teilen
  • Das Claude Agent SDK ermöglicht es, die Tool-Ausführung, Agenten-Schleife und Kontextverwaltung von Claude Code aus Python- und TypeScript-Code heraus zu steuern und damit das Lesen von Dateien, das Ausführen von Befehlen, Websuche und Codebearbeitung zu automatisieren
  • Als Standard-Tools stehen Read, Write, Edit, Bash, Monitor, Glob, Grep, WebSearch, WebFetch, AskUserQuestion bereit, sodass Aufgaben von der Codebase-Erkundung bis zu Rückfragen an Nutzer ohne separate Ausführungsschicht erledigt werden können
  • Durch die Kombination von Hooks, Subagenten, MCP, Berechtigungen und Sessions lassen sich Konfigurationen wie Audit-Logs für Dateiänderungen, spezialisierte Subagenten für Code Reviews, Playwright-basierte Browser-Automatisierung oder Read-only-Analyseagenten umsetzen
  • Die Installation erfolgt über @anthropic-ai/claude-agent-sdk oder claude-agent-sdk; Python erfordert 3.10 oder höher, und das TypeScript-SDK enthält das native Claude-Code-Binary für die jeweilige Plattform als optionale Abhängigkeit
  • Anders als das Anthropic Client SDK, bei dem die Tool-Schleife selbst implementiert wird, bietet das Agent SDK integrierte Tool-Ausführung und läuft nicht wie Managed Agents auf Anthropic-Infrastruktur, sondern in den Prozessen und auf der Infrastruktur der Nutzer

Zuständigkeitsbereich des Claude Agent SDK

  • Das Claude Agent SDK macht die Tools, Agenten-Schleife und Kontextverwaltung, die Claude Code antreiben, in Python und TypeScript nutzbar
  • Agenten können Dateien lesen, Befehle ausführen, im Web suchen und Code bearbeiten
  • Die integrierte Tool-Ausführung ist enthalten, sodass Nutzer keine eigene separate Tool-Ausführungsschicht bauen müssen, damit Agenten mit der Arbeit beginnen können
  • Das Basisbeispiel erlaubt die Tools Read, Edit und Bash, um einen Bug in auth.py zu finden und zu beheben

Installation und Authentifizierungsablauf

  • Die Installation erfolgt über sprachspezifische Pakete
    • TypeScript: npm install @anthropic-ai/claude-agent-sdk
    • Python: pip install claude-agent-sdk
  • Das Python-Paket erfordert Python 3.10 oder höher
    • Wenn der Fehler No matching distribution found for claude-agent-sdk auftritt, ist der Interpreter möglicherweise älter als 3.10
    • Unter macOS oder Linux prüft man dies mit python3 --version, unter Windows mit py --version
  • Das TypeScript-SDK enthält das native Claude-Code-Binary für die Plattform als optionale Abhängigkeit, sodass Claude Code nicht separat installiert werden muss
  • Der API-Key wird in der Console erstellt und als Umgebungsvariable ANTHROPIC_API_KEY gesetzt
  • Auch die Authentifizierung über Drittanbieter-API-Provider wird unterstützt
    • Amazon Bedrock: CLAUDE_CODE_USE_BEDROCK=1 setzen und anschließend AWS-Anmeldedaten konfigurieren
    • Claude Platform on AWS: CLAUDE_CODE_USE_ANTHROPIC_AWS=1 und ANTHROPIC_AWS_WORKSPACE_ID setzen und anschließend AWS-Anmeldedaten konfigurieren
    • Google Vertex AI: CLAUDE_CODE_USE_VERTEX=1 setzen und anschließend Google-Cloud-Anmeldedaten konfigurieren
    • Microsoft Azure: CLAUDE_CODE_USE_FOUNDRY=1 setzen und anschließend Azure-Anmeldedaten konfigurieren
  • Anthropic erlaubt Drittentwicklern ohne vorherige Genehmigung nicht, in Produkten auf Basis des Claude Agent SDK einen claude.ai-Login oder Rate Limits bereitzustellen

Standard-Tools und Agentenfunktionen

  • Das SDK macht zentrale Funktionen von Claude Code im Code nutzbar
    • Integrierte Tools
    • Hooks
    • Subagenten
    • MCP
    • Berechtigungen
    • Sessions
  • Die wichtigsten integrierten Tools erfüllen folgende Rollen
    • Read: Dateien im Arbeitsverzeichnis lesen
    • Write: Neue Dateien erstellen
    • Edit: Präzise Änderungen an bestehenden Dateien vornehmen
    • Bash: Terminalbefehle, Skripte und Git-Operationen ausführen
    • Monitor: Hintergrundskripte überwachen und auf jede Ausgabezeile als Event reagieren
    • Glob: Dateien anhand von Mustern wie **/*.ts oder src/**/*.py finden
    • Grep: Dateiinhalte per regulärem Ausdruck durchsuchen
    • WebSearch: Aktuelle Informationen im Web suchen
    • WebFetch: Inhalte von Webseiten abrufen und parsen
    • AskUserQuestion: Nutzern Bestätigungsfragen mit Multiple-Choice-Optionen stellen
  • Ein Beispielagent erlaubt Read, Glob und Grep, um TODO-Kommentare in einer Codebase zu finden und zusammenzufassen

Hooks, Subagenten, MCP

  • Hooks führen an wichtigen Punkten im Agenten-Lebenszyklus Nutzercode aus
    • Über Callback-Funktionen lässt sich Agentenverhalten prüfen, protokollieren, blockieren oder transformieren
    • Verfügbare Hooks sind unter anderem PreToolUse, PostToolUse, Stop, SessionStart, SessionEnd und UserPromptSubmit
    • Ein Beispiel erkennt in PostToolUse Vorgänge vom Typ Edit|Write und protokolliert Dateiänderungen in audit.log
  • Subagenten sind spezialisierte Agenten für fokussierte Teilaufgaben
    • Der Hauptagent delegiert Aufgaben, und der Subagent gibt Ergebnisse zurück
    • Custom Agents werden über Beschreibung, Prompt und zu verwendende Tools definiert
    • Subagenten-Aufrufe erfolgen über das Tool Agent; für eine automatische Freigabe muss Agent daher in allowedTools enthalten sein
    • Nachrichten im Kontext eines Subagenten enthalten das Feld parent_tool_use_id, damit nachvollziehbar ist, zu welcher Subagenten-Ausführung sie gehören
  • Über das Model Context Protocol (MCP) lassen sich externe Systeme wie Datenbanken, Browser und APIs anbinden

Berechtigungen und Session-Verwaltung

  • Berechtigungseinstellungen beschränken, welche Tools ein Agent verwenden darf
    • Sichere Aktionen können erlaubt, riskante Aktionen blockiert und für sensible Vorgänge Genehmigungen verlangt werden
    • Ein Beispiel konfiguriert einen Read-only-Agenten, der nur Read, Glob und Grep vorab freigibt, um Code zu analysieren, ohne ihn zu verändern
  • Das Tool AskUserQuestion und interaktive Genehmigungs-Prompts werden gemeinsam im Ablauf zur Verarbeitung von Nutzereingaben verwendet
  • Sessions erhalten Kontext über mehrere Interaktionen hinweg
    • Claude merkt sich gelesene Dateien, durchgeführte Analysen und den Gesprächsverlauf
    • Später kann dieselbe Session fortgesetzt oder per Fork ein anderer Ansatz erkundet werden
    • Ein Beispiel ruft in der ersten Query eine session_id ab und führt in der zweiten Query mit resume=session_id denselben Kontext fort

Unterstützung für Claude-Code-Einstellungen

  • Das SDK unterstützt die dateisystembasierten Einstellungen von Claude Code
  • Mit den Standardoptionen werden Einstellungen aus .claude/ im Arbeitsverzeichnis und aus ~/.claude/ geladen
  • Um die zu ladenden Einstellungsquellen einzuschränken, verwendet man in Python die Option setting_sources und in TypeScript settingSources
  • Unterstützte Funktionen und Speicherorte sind
    • Skills: Spezialisierte Funktionen, die Claude automatisch nutzt oder per /name aufruft, .claude/skills/*/SKILL.md
    • Commands: Custom Commands im Legacy-Format, .claude/commands/*.md
    • Memory: Projektkontext und Anweisungen, CLAUDE.md oder .claude/CLAUDE.md
    • Plugins: Erweiterung um Skills, Agents, Hooks und MCP-Server, programmatische Konfiguration über die Option plugins

Unterschiede zu anderen Claude-Tools

  • Das Anthropic Client SDK bietet direkten API-Zugriff; Nutzer senden Prompts und implementieren die Tool-Ausführung selbst
  • Im Agent SDK übernimmt Claude die Tool-Verarbeitung autonom
    • Im Client SDK implementieren Nutzer die Tool-Schleife
    • Das Agent SDK stellt Claude integrierte Tool-Ausführung bereit
  • Auswahlkriterien nach Einsatzzweck
    • Interaktive Entwicklung: CLI
    • CI/CD-Pipelines: SDK
    • Custom Applications: SDK
    • Einmalige Aufgaben: CLI
    • Produktionsautomatisierung: SDK
  • Viele Teams nutzen im Alltag die CLI und in Produktion das SDK; Workflows lassen sich direkt zwischen beiden übertragen
  • Managed Agents ist eine gehostete REST API, bei der Anthropic Agenten und Sandboxes ausführt
  • Das Agent SDK ist eine Library, die die Agenten-Schleife im Nutzerprozess ausführt
    • Ausführungsort: Beim Agent SDK sind es Nutzerprozess und Nutzerinfrastruktur, bei Managed Agents die von Anthropic verwaltete Infrastruktur
    • Interface: Das Agent SDK ist eine Python- oder TypeScript-Library, Managed Agents eine REST API
    • Arbeitsziel: Das Agent SDK arbeitet mit Dateien in der Nutzerinfrastruktur, Managed Agents mit sitzungsbezogenen verwalteten Sandboxes
    • Session-Zustand: Beim Agent SDK als JSONL im Dateisystem, bei Managed Agents als von Anthropic gehostetes Event-Log
    • Custom Tools: Beim Agent SDK sind es prozessinterne Python- oder TypeScript-Funktionen, bei Managed Agents triggert Claude Tools und Nutzer geben Ausführungsergebnisse zurück
    • Geeignete Einsatzzwecke: Das Agent SDK eignet sich für lokales Prototyping und Agenten mit direktem Zugriff auf Dateisystem und Services; Managed Agents für Produktionsagenten ohne Betrieb eigener Sandbox- oder Session-Infrastruktur sowie für lang laufende, asynchrone Sessions
  • Ein üblicher Weg besteht darin, zunächst mit dem Agent SDK lokal einen Prototyp zu bauen und ihn anschließend in Produktion auf Managed Agents zu übertragen

Changelog, Bug Reports und Branding

  • SDK-Updates, Bugfixes und neue Funktionen findet man in den Changelogs der jeweiligen Repositories
  • Bugs oder Issues werden auf GitHub gemeldet
  • Wenn Partner das Claude Agent SDK integrieren, ist die Verwendung des Claude-Brandings optional
    • Erlaubt: „Claude Agent“, „Claude“, „Powered by Claude“
    • Verboten: „Claude Code“, „Claude Code Agent“, Claude-Code-ASCII-Art als Markenelement oder visuelle Elemente, die Claude Code nachahmen
    • Produkte müssen ihr eigenes Branding beibehalten und dürfen nicht wie Claude Code oder Anthropic-Produkte wirken
  • Für die Nutzung des Claude Agent SDK gelten die Anthropic’s Commercial Terms of Service
    • Ausgenommen sind Fälle, in denen bestimmte Komponenten oder Abhängigkeiten in der LICENSE-Datei der jeweiligen Komponente eine andere Lizenz angeben

1 Kommentare

 
GN⁺ 2025-05-20
Meinungen auf Hacker News
  • Die Richtung, die Claude Code einschlägt, passt genau zu dem, was ich mir von agentischen Coding-Tools wünsche, und mir gefällt auch die Philosophie „wie ein Unix-Tool“.
    Ich nutze es seit der frühen öffentlichen Preview, und die Richtung war erkennbar. Der ideale Endzustand eines Coding-Agenten wäre aus meiner Sicht, dass man ihm eine Feature-Anfrage wie ein Jira-Ticket gibt und er daraus einen PR erstellt, den man prüfen und zu dem man Feedback geben kann. In diesem Sinne sind auf lokale Editoren fokussierte Tools wie Cursor oder Windsurf fast eine Sackgasse, weil sie nicht in CI laufen können. Wenn man eine Codebase mit Regeln, MCP usw. auf AI ausrichtet, sollte man auf Technologien abzielen, die bis hin zur Headless-Nutzung führen können. Claude Code lässt sich über Tools leicht als Teil von Automatisierung einsetzen, daher ist es für mich inzwischen der Standard, wenn ich über Coding-Agenten nachdenke; das Codex-npm-Paket ist ähnlich. Allerdings helfe ich Unternehmen dabei, ihre Codebases für den Einsatz von Agenten vorzubereiten, daher kann ich eine Voreingenommenheit zugunsten leicht konfigurierbarer Tools haben.

    • Diesem „idealen Endzustand“ kann ich schwer zustimmen. Was ich mir vorstelle: Ich sitze in einem Raum, umgeben von mehreren Bildschirmen, auf denen AI-Agenten coden, entwerfen und testen, und ich gebe aus der Mitte heraus die Richtung vor und bringe meinen Geschmack ein.
      Alles läuft über Gespräche, und in 99 % der Fälle muss ich die Tastatur nicht anfassen.
    • Sehe ich anders. Der „ideale“ Endzustand eines Coding-Agenten ist ein freier und Open-Source-Coding-Agent, der auf meinem Computer oder auf einer Maschine meiner Wahl läuft.
      Stell dir vor, du müsstest jedes Mal bezahlen, wenn du im Terminal Befehle wie ls, ps oder kill ausführst — das ergibt keinen Sinn. Bei LLMs ist es genauso. Ich meine nicht, dass proprietäre LLMs verboten werden sollten, aber die Hauptwerkzeuge der Hacker von früher sollten freie und Open-Source-Tools sein.
    • Anthropic hat heute ebenfalls eine Beta-Funktion in eine ähnliche Richtung angekündigt: https://docs.anthropic.com/en/docs/claude-code/github-action...
    • Ich habe solche Aufgaben auch mit Cursor und MCP ausprobiert. Nach etwa einem Tag bin ich an Nutzungslimits gestoßen und wurde auf das langsamste und dümmste Modell zurückgestuft.
      Mit Claude habe ich es auch versucht, aber die Limits waren schnell aufgebraucht. Nur in etwa 25 % der Fälle war der PR direkt „bereit zum Mergen“, und oft ist es schneller, es einfach selbst richtig zu machen, statt herauszufinden, wo die AI es vermasselt hat.
    • Ich verstehe, was mit dem Zustand gemeint ist, in dem man eine Feature-Anfrage gibt und einen PR zur Prüfung erhält, aber dann bleibt von der Softwarearbeit ausgerechnet der seelenzermürbendste Teil übrig: Jira-Tickets. Das ist deprimierend.
  • Claude Code ist die Art, LLMs fürs Coding zu nutzen, die mir bisher am besten gefällt.
    Was aber wirklich nötig wäre, ist eine Open-Source-Version, an die man jedes beliebige Modell übergeben und auch die Antworten mehrerer Modelle vergleichen kann. Aider und andere Alternativen fühlen sich nicht so angenehm an wie Claude Code. Aus Sicht von Anthropic wäre das natürlich unerwünscht, weil damit der Burggraben verschwindet, aber aus Verbrauchersicht will man einfach das beste Modell nutzen, ohne an ein bestimmtes Ökosystem gebunden zu sein. Wahrscheinlich ist genau das der Punkt, vor dem LLM-Modellanbieter am meisten Angst haben.

    • OpenAI Codex ist vermutlich die nächstliegende Alternative. Es ist Open Source und kann mit Modellen beliebiger Anbieter genutzt werden.
      Im Moment ist es noch nicht so gut wie Claude Code, aber ich denke, es wird schnell aufholen. https://github.com/openai/codex/tree/main
    • Das OpenCode-Projekt könnte zu deinen Interessen passen: https://github.com/opencode-ai/opencode
      Es ist noch in Entwicklung, sieht aber vielversprechend aus.
    • Ich frage mich, was Claude Code besser kann als Aider.
    • Ich habe mich in letzter Zeit zwar etwas zu viel selbst beworben, aber wenn man sich meine früheren Kommentare ansieht: Ich habe einen Dienst in Go gebaut. Er zielt genau auf diesen Bedarf ab.
    • Zustimmung, aber müssten andere Modelle nicht ebenfalls darauf trainiert sein, mit MCP-Servern zu arbeiten? Oder ist das kein Problem?
  • Aider unterstützt schon seit langer Zeit Python und Shell-Scripting [0].
    Kürzlich habe ich im Zuge der Erweiterung um 130 neue Programmiersprachen auch einen Screencast erstellt, in dem spontanes Bash-Scripting mit Aider gezeigt wird [1]. Das kann ein Gefühl dafür geben, wie mächtig dieser Ansatz sein kann.
    [0] https://aider.chat/docs/scripting.html
    [1] https://aider.chat/docs/recordings/tree-sitter-language-pack...

    • Ich mag Aider wirklich sehr. MCP-Unterstützung soll ebenfalls bald kommen, und ich teste gerade den Development-Branch.
      Dann kann man mit einem Modell, dem man vertraut, über PRs, Tickets usw. Entwicklung von Anfang bis Ende durchführen.
    • Ich frage mich, wie nah man Aider an Claude Code heranbringen kann. Die User Experience von Claude Code war gut, aber ich nutze es nicht, weil ich Gemini 2.5 Pro bevorzuge.
      Dass es sogar Commits erstellt, möchte ich nicht unbedingt; mir gefällt vor allem das Nutzungserlebnis von Claude Code.
    • Aider könnte mit einem gut ausgearbeiteten GitHub-Actions-Workflow deutlich besser werden.
      Es sollte reichen, eine einzige Datei zum Repository hinzuzufügen, sodass man über Issues mit einem beliebigen Modell interagieren kann.
  • Das Claude-Code-Team hat das Thema ausführlicher behandelt: http://latent.space/p/claude-code
    Man kann auch nur das Transkript überfliegen, aber mich persönlich haben vor allem diese Punkte beeindruckt: dass Anthropic-Mitarbeiter trotz unbegrenzter Claude-Nutzung im Schnitt nur etwa 6 US-Dollar pro Tag verbrauchen; dass sie headless Claude Code wie ein „Linux“-Utility sehen, das man überall in CI einsetzen kann; dass sie es als vom Nutzer erweiterbare Plattform betrachten; dass Sandboxing, Branching und Planungsfunktionen auf der künftigen Roadmap stehen; und dass sie Sonnet 3.7 als Modell für persistente Agenten sehen.

    • Im Link steht auch, dass es unter den internen Engineers bei Anthropic jemanden gab, der an einem Tag mehr als 1.000 US-Dollar ausgegeben hat.
      Mich würde interessieren, wie hoch P50, P75 und P95 der Ausgaben pro Mitarbeiter sind.
    • Vielleicht benutze ich es auch falsch, aber wenn ich Claude Code 2 Stunden lang nutze, lande ich leicht bei über 20 US-Dollar.
      Für persönliche Projekte war mir das zu teuer, deshalb habe ich aufgehört, es zu verwenden.
    • Ich höre den Podcast latent space in letzter Zeit wirklich gern. Es gibt kaum Personen oder Podcasts, die bei einem so hohen Signal-Rausch-Verhältnis zugleich einen derart großen Gesamtausstoß liefern.
      Erstaunlich ist, dass über das letzte halbe Jahr oder sogar mehrere Jahre hinweg die Menge und der Wert der öffentlichen Arbeit weiter gewachsen sind, während gleichzeitig mehrere Unternehmen aufgebaut wurden. Ich hoffe, dass auch andere eine ähnliche Produktivitätskurve finden können. Es wird grob geteilt, was gut funktioniert, aber es ist nicht leicht zu reproduzieren. Mir fallen etwa simonw und gwern ein.
    • Ich frage mich, wie neutral dieser Podcast war – oder ob er einfach vertriebsgetriebene Werbung für dieses Produkt war.
  • Wenn ich einen AI-Code-Assistenten bauen würde, wäre das Letzte, was ich tun würde, ihn an einen bestimmten Anbieter von Foundation Models zu binden.
    Damit dieses Produkt erfolgreich ist, müsste man voraussetzen, dass die Modellleistung gerade ein Plateau erreicht hat, dass alle Foundation Models auf nahezu dieselbe Leistung und dieselben Fähigkeiten konvergieren und dass Integratoren ihre Wahl nur noch anhand kleiner Komfortvorteile wie vertrauter SDKs treffen.

    • Abgesehen von Befehlen und Argumenten gibt es nicht viel, woran man gebunden ist. Es sind einfach Input und Output.
      Man kann es durch etwas anderes ersetzen oder einen Wrapper darum bauen. Hier gibt es nicht viel Komplexes.
    • Zum jetzigen Zeitpunkt ist Claude Code ein softwareseitiges Differenzierungsmerkmal im Bereich agentischer Programmierung.
      Wir bauen etwas rund um AI-Code-Assistenten und waren gerade dabei, zuerst zu hacken, wie man Claude Code integriert. Es war das Erste, worauf wir aufsetzen wollten. Für Lock-in-Sorgen ist es zu früh; wir brauchen das Beste, also bauen wir nur um das Beste herum.
  • Claude Code ließ sich bereits im nicht-interaktiven Modus verwenden und konnte daher wie andere Unix-Command-Line-Utilities in andere Apps integriert werden.
    Dieses SDK scheint derzeit nur die Nutzung über die Kommandozeile zu unterstützen; ist das dann nicht dasselbe wie das, was es schon gab? Ich verstehe nicht, was daran tatsächlich neu ist. Übersehe ich etwas?

    • Ich weiß es auch nicht. Aus meiner Sicht spricht fast niemand darüber, und das finde ich seltsam.
  • Ich empfehle auch Codebuff (https://www.codebuff.com/). Das ist ein hervorragender CLI-Code-Assistent, ähnlich wie Claude Code, und kann viele Token-Kosten sparen.
    Ich habe keine Verbindung zu dem Projekt, ich bin nur Nutzer.

  • In den Nutzungsbedingungen steht, dass man den Dienst nicht verwenden darf, „um Produkte oder Dienste zu entwickeln, die mit dem Service konkurrieren, um künstliche Intelligenz oder Machine-Learning-Algorithmen oder -Modelle zu entwickeln oder zu trainieren oder um den Service weiterzuverkaufen“.
    Ich frage mich, was es überhaupt für Softwareprodukte oder -dienste gibt, die nicht mit allgemeiner Intelligenz konkurrieren. Wenn man Intelligenz verkauft und das streng auslegt, versieht man sie im Grunde mit einer Rechtsklausel, die sagt, man solle sie nirgendwo einsetzen. Ist das so vage, dass es nicht durchsetzbar ist? Wenn man sie nicht zum Wettbewerb mit allgemeiner Intelligenz verwenden darf, wie kann man dann die Outputs besitzen? Ist das nach dem Motto „Rechtsbedingungen interessieren sowieso niemanden“? Wenn es niemanden interessiert, warum dann ein pauschales Verbot für die Nutzung des Dienstes einbauen? Soll man für solche Ergebnisse auch noch die Verantwortung für eine Prozessniederlage akzeptieren? Ich habe zu viele Fragen.

    • So etwas passiert, wenn man Anwälten freie Hand lässt.
    • Du hast „artificial“ durch „general“ ersetzt, also ändert sich die Bedeutung natürlich.
  • Modell-Lock-in wäre ein großer Nachteil bei der Nutzung. Wenn jemand das neueste Modell mit der besten Performance herausbringt und man bereits in diese Infrastruktur investiert hat, sitzt man fest.
    Selbst wenn es später geöffnet wird, könnte es sein, dass dieses Modell speziell auf diese CLI trainiert wurde und deshalb nicht gut funktioniert. Man muss sich nur Codex CLI ansehen: Man kann zwar Gemini 2.5 Pro verwenden, aber im Vergleich zu OpenAI-Modellen bleibt es häufiger zufällig hängen oder schlägt fehl.

  • Die neue GitHub Action ist genau das Feature, nach dem ich gesucht habe: https://docs.anthropic.com/en/docs/claude-code/github-action...
    Allerdings scheint es keine Möglichkeit zu geben, sie mit dem Max-Plan von Claude Code zu nutzen. Aus meiner Sicht akzeptiert sie wohl nur einen API-Key.