Claude Code SDK: Ein Entwickler-Leitfaden zum Aufbau von Agenten

So nutzt du das Claude Code SDK für nicht-interaktive Automatisierung, CI/CD-Integration, Multi-Agenten-Pipelines und individuelle UI-Entwicklung.

by AnyCap

Claude Code SDK Entwickler-Leitfaden Hero-Bild

Das Claude Code SDK verwandelt Claude Code von einem interaktiven Coding-Assistenten in eine vollständig programmierbare Agenten-Laufzeitumgebung. Wer Claude Code bisher interaktiv genutzt hat, erschließt sich mit dem SDK grundlegend neue Möglichkeiten – automatisierte Pipelines, individuelle UIs, Multi-Agenten-Orchestrierung und CI/CD-Integration.


Was ist das Claude Code SDK?

Das Claude Code SDK ist eine programmatische Schnittstelle, die es ermöglicht:

  • Claude Code nicht-interaktiv aus Skripten und Pipelines heraus auszuführen
  • Zu steuern, welche Dateien, Verzeichnisse und Werkzeuge im Kontext sind
  • Strukturierte Ausgaben für die Weiterverarbeitung zu parsen
  • Claude Code mit anderen Tools in automatisierten Workflows zu verketten
  • Individuelle UIs auf Basis von Claude Codes Reasoning zu erstellen

Verfügbar als Node.js-Paket:

npm install @anthropic-ai/claude-code

Oder per CLI im nicht-interaktiven Modus aufrufen:

claude -p "Dein Prompt hier" --output-format json

Grundlegende SDK-Konzepte

Nicht-interaktiver Modus

Der einfachste SDK-Anwendungsfall: Claude Code mit einem Prompt ausführen, Ausgabe erhalten, fertig.

# CLI nicht-interaktiv
claude -p "Untersuche src/auth.ts auf Sicherheitslücken" \
  --output-format json \
  --max-turns 5
// SDK
const { query } = require('@anthropic-ai/claude-code');

const result = await query({
  prompt: "Untersuche src/auth.ts auf Sicherheitslücken",
  options: {
    maxTurns: 5,
    outputFormat: 'json'
  }
});

Tool-Konfiguration

Steuere, auf welche Tools Claude Code in deinem SDK-Aufruf Zugriff hat:

const result = await query({
  prompt: "Erstelle eine Test-Suite für src/utils.ts",
  options: {
    allowedTools: ['Read', 'Write', 'Bash'],
    // Nicht benötigte Tools deaktivieren:
    // disallowedTools: ['WebSearch', 'mcp__custom_tool']
  }
});

Eigene System-Prompts

Überschreibe den Standard-System-Prompt von Claude Code für spezialisiertes Verhalten:

const result = await query({
  prompt: "Refaktoriere dieses Modul",
  options: {
    systemPrompt: `Du bist ein TypeScript-Experte, spezialisiert auf funktionale Programmiermuster.
    Verwende stets unveränderliche Datenstrukturen. Nutze Result-Typen für die Fehlerbehandlung.
    Verwende niemals any- oder unknown-Typen.`,
  }
});

Praktische SDK-Muster

1. Automatisiertes Code-Review in CI

// .github/workflows/code-review.js
const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');

const diff = execSync('git diff main...HEAD').toString();

const review = await query({
  prompt: `Überprüfe diesen PR-Diff auf: Sicherheitsprobleme, Performance-Schwächen und fehlende Tests.
  Ausgabe als JSON mit den Schlüsseln: security[], performance[], testing[].
  
  Diff:
  ${diff}`,
  options: {
    outputFormat: 'json',
    allowedTools: ['Read'],  // Nur lesend in CI
    maxTurns: 3
  }
});

console.log(JSON.parse(review.result));

2. Automatisierte Dokumentationsgenerierung

const fs = require('fs');
const { query } = require('@anthropic-ai/claude-code');

async function generateDocs(srcPath) {
  const result = await query({
    prompt: `Erstelle umfassende JSDoc-Dokumentation für alle exportierten Funktionen in ${srcPath}.
    Füge Parameter-Beschreibungen, Rückgabetypen und Verwendungsbeispiele hinzu.
    Schreibe die aktualisierte Datei mit der hinzugefügten Dokumentation.`,
    options: {
      allowedTools: ['Read', 'Write'],
      cwd: process.cwd()
    }
  });
  return result;
}

3. Multi-Agenten-Pipeline mit externen Fähigkeiten

Hier entfaltet die AnyCap-Integration ihre volle Stärke. Eine Pipeline, in der Claude Code das Code-Reasoning übernimmt und AnyCap für Medien und Publishing zuständig ist:

const { query } = require('@anthropic-ai/claude-code');
const { execSync } = require('child_process');

async function buildAndPublishDocs(repoPath) {
  // Schritt 1: Claude Code generiert Dokumentation
  const docsResult = await query({
    prompt: "Erstelle eine umfassende README für dieses Projekt mit Setup-Anleitung, API-Referenz und Beispielen",
    options: {
      cwd: repoPath,
      allowedTools: ['Read', 'Write', 'Bash']
    }
  });

  // Schritt 2: AnyCap generiert ein Hero-Diagramm
  execSync(`anycap image generate \
    --prompt "Technisches Architekturdiagramm für ein Entwickler-Tool, klarer minimalistischer Stil" \
    --model nano-banana-2 \
    -o ${repoPath}/docs/architecture.png`);

  // Schritt 3: AnyCap veröffentlicht als Webseite
  const pageResult = execSync(`anycap page deploy ${repoPath}/docs/`).toString();
  
  return { docs: docsResult, page: JSON.parse(pageResult) };
}

SDK-Authentifizierung

Das SDK verwendet dieselbe Authentifizierung wie Claude Code. API-Key setzen:

export ANTHROPIC_API_KEY=dein_key_hier

Oder für Team-Umgebungen eine umgebungsspezifische Konfiguration verwenden:

const { query } = require('@anthropic-ai/claude-code');

// SDK liest ANTHROPIC_API_KEY automatisch
// Oder explizit übergeben:
process.env.ANTHROPIC_API_KEY = await getSecretFromVault('anthropic-api-key');

Ausgabeformate

Das SDK unterstützt drei Ausgabeformate:

Format Anwendungsfall
text Standard, menschenlesbare Ausgabe
json Programmatische Verarbeitung – enthält Ergebnis, Kosten, Session-Info
stream-json Echtzeit-Ausgabe für UIs und Dashboards
// JSON-Ausgabe enthält Metadaten
{
  "result": "Die Funktion hat eine potenzielle SQL-Injection-Schwachstelle...",
  "is_error": false,
  "session_id": "sess_xxxx",
  "cost_usd": 0.0043,
  "num_turns": 2
}

Rate-Limits und Kostenmanagement in SDK-Workflows

SDK-basierte Automatisierung kann Tokens schneller verbrauchen als die interaktive Nutzung. Eingebaute Schutzmaßnahmen:

const result = await query({
  prompt: "...",
  options: {
    maxTurns: 5,        // Reasoning-Iterationen begrenzen
    timeoutMs: 30000,   // Timeout für lang laufende Aufgaben
  }
});

// Kosten in der Produktion immer prüfen
if (result.cost_usd > 0.10) {
  logger.warn(`Sitzung mit hohen Kosten: $${result.cost_usd}`);
}

Für ressourcenintensive Aufgaben (Bildgenerierung, Videoerstellung, Websuche) empfiehlt es sich, diese an AnyCap auszulagern, anstatt sie von Claude Code im Kontext verarbeiten zu lassen. Das hält die SDK-Kosten planbar und verhindert, dass Claude Ratenlimits bei Nicht-Reasoning-Aufgaben erreicht.


Erste Schritte

# SDK installieren
npm install @anthropic-ai/claude-code

# AnyCap für Fähigkeitserweiterung installieren
curl -fsSL https://anycap.ai/install.sh | sh

# AnyCap-Skill zu Claude Code hinzufügen
npx -y skills add anycap-ai/anycap -y

AnyCap für Claude CodeTools zu Claude Code hinzufügen – Leitfaden