Schnellstart
Erste Schritte mit dem Python- oder TypeScript-Agent-SDK zum Erstellen von KI-Agenten, die autonom funktionieren
Verwenden Sie das Agent SDK, um einen KI-Agenten zu erstellen, der Ihren Code liest, Fehler findet und behebt – alles ohne manuelle Eingriffe.
Das werden Sie tun:
- Ein Projekt mit dem Agent SDK einrichten
- Eine Datei mit fehlerhaftem Code erstellen
- Einen Agenten ausführen, der Fehler automatisch findet und behebt
Voraussetzungen
- Node.js 18+ oder Python 3.10+
- Ein Anthropic-Konto. Falls Sie noch kein Konto haben, registrieren Sie sich hier.
Einrichtung
Erstellen Sie einen Projektordner
Erstellen Sie ein neues Verzeichnis für diesen Schnellstart:
mkdir my-agent
cd my-agent
Für Ihre eigenen Projekte können Sie das SDK aus jedem Ordner ausführen; es hat standardmäßig Zugriff auf Dateien in diesem Verzeichnis und seinen Unterverzeichnissen.
Installieren Sie das SDK
Installieren Sie das Agent SDK-Paket für Ihre Sprache:
npm init -y
npm pkg set type=module
npm install @anthropic-ai/claude-agent-sdk
npm install --save-dev tsx
Das Setzen von "type": "module" in package.json ermöglicht Ihrem Agent-Skript die Verwendung von Top-Level-await, und tsx führt TypeScript-Dateien direkt aus. npm gibt added N packages aus, wenn die Installation erfolgreich ist.
npm install @anthropic-ai/claude-agent-sdk
npm install --save-dev tsx
tsx führt TypeScript-Dateien direkt aus. Wenn Ihr Projekt CommonJS verwendet, benennen Sie Ihr Agent-Skript agent.mts statt agent.ts. Die .mts-Erweiterung veranlasst tsx, die Datei als ES-Modul zu behandeln, sodass Top-Level-await funktioniert, ohne Ihr gesamtes Projekt in ES-Module zu konvertieren. Verwenden Sie agent.mts anstelle von agent.ts in den Erstellungs- und Ausführungsschritten später in diesem Schnellstart.
Installieren Sie uv, einen schnellen Python-Paketmanager, der virtuelle Umgebungen automatisch verwaltet. Initialisieren Sie dann ein Projekt und fügen Sie das SDK hinzu:
uv init
uv add claude-agent-sdk
Erstellen und aktivieren Sie eine virtuelle Umgebung und installieren Sie dann das Paket.
Auf macOS oder Linux:
python3 -m venv .venv
source .venv/bin/activate
pip install claude-agent-sdk
Unter Windows:
py -m venv .venv
.venv\Scripts\Activate.ps1
pip install claude-agent-sdk
Wenn PowerShell Activate.ps1 mit einem Ausführungsrichtlinienfehler blockiert, führen Sie zuerst Set-ExecutionPolicy -Scope Process RemoteSigned aus.
Sowohl das TypeScript als auch das Python SDK bündeln eine native Claude Code-Binärdatei, daher benötigen die meisten Installationen keine separate Claude Code-Installation. Einige Installationen haben keine gebündelte Binärdatei:
- Wenn pip die Python SDK-Quelldistribution anstelle eines Plattform-Wheels installiert, beispielsweise auf ARM64 Windows, wird keine Binärdatei gebündelt. Installieren Sie Claude Code nativ. Das Python SDK findet es auf Ihrem
PATH. - Das TypeScript SDK installiert seine Binärdatei über npm optionale Abhängigkeiten, daher erhält eine Installation, die diese überspringt, beispielsweise
npm ci --omit=optional, auch auf einer unterstützten Plattform keine Binärdatei. Installieren Sie erneut, ohne optionale Abhängigkeiten zu überspringen, oder installieren Sie Claude Code nativ und setzen SiepathToClaudeCodeExecutableauf seinen Pfad.
Legen Sie Ihren API-Schlüssel fest
Rufen Sie einen API-Schlüssel von der Claude-Konsole ab und legen Sie ihn dann als Umgebungsvariable in der Shell fest, in der Sie Ihren Agenten ausführen:
export ANTHROPIC_API_KEY=your-api-key
$env:ANTHROPIC_API_KEY = "your-api-key"
Das SDK liest den Schlüssel aus der Umgebung des Prozesses, der Ihren Agenten ausführt; es lädt .env-Dateien nicht automatisch. Wenn Sie den Schlüssel in einer .env-Datei speichern, laden Sie ihn selbst, beispielsweise mit dem dotenv-Paket, bevor Sie das SDK aufrufen.
Das SDK unterstützt auch Authentifizierung über Drittanbieter-API-Anbieter:
- Amazon Bedrock: Setzen Sie die Umgebungsvariable
CLAUDE_CODE_USE_BEDROCK=1und konfigurieren Sie AWS-Anmeldedaten - Claude Platform on AWS: Setzen Sie
CLAUDE_CODE_USE_ANTHROPIC_AWS=1undANTHROPIC_AWS_WORKSPACE_IDund konfigurieren Sie AWS-Anmeldedaten - Google Cloud's Agent Platform: Setzen Sie die Umgebungsvariable
CLAUDE_CODE_USE_VERTEX=1und konfigurieren Sie Google Cloud-Anmeldedaten - Microsoft Foundry: Setzen Sie die Umgebungsvariable
CLAUDE_CODE_USE_FOUNDRY=1und konfigurieren Sie Azure-Anmeldedaten
Weitere Informationen finden Sie in den Einrichtungsleitfäden für Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform oder Microsoft Foundry.
Sofern nicht zuvor genehmigt, erlaubt Anthropic Drittentwicklern nicht, claude.ai-Anmeldungen oder Ratenlimits für ihre Produkte anzubieten, einschließlich Agenten, die auf dem Claude Agent SDK basieren. Verwenden Sie stattdessen die in diesem Dokument beschriebenen API-Schlüssel-Authentifizierungsmethoden.
Erstellen Sie eine fehlerhafte Datei
Dieser Schnellstart führt Sie durch die Erstellung eines Agenten, der Fehler im Code finden und beheben kann. Zunächst benötigen Sie eine Datei mit einigen absichtlichen Fehlern, die der Agent beheben kann. Erstellen Sie utils.py im Verzeichnis my-agent und fügen Sie den folgenden Code ein:
def calculate_average(numbers):
total = 0
for num in numbers:
total += num
return total / len(numbers)
def get_user_name(user):
return user["name"].upper()
Dieser Code hat zwei Fehler:
calculate_average([])stürzt mit Division durch Null abget_user_name(None)stürzt mit einem TypeError ab
Erstellen Sie einen Agenten, der Fehler findet und behebt
Erstellen Sie agent.py, wenn Sie das Python SDK verwenden, oder agent.ts für TypeScript. Verwenden Sie agent.mts stattdessen, wenn Ihr bestehendes Projekt CommonJS verwendet:
import asyncio
from claude_agent_sdk import query, ClaudeAgentOptions, AssistantMessage, ResultMessage
async def main():
# Agentic loop: streams messages as Claude works
async for message in query(
prompt="Review utils.py for bugs that would cause crashes. Fix any issues you find.",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"], # Auto-approve these tools
permission_mode="acceptEdits", # Auto-approve file edits
),
):
# Print human-readable output
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text) # Claude's reasoning
elif hasattr(block, "name"):
print(f"Tool: {block.name}") # Tool being called
elif isinstance(message, ResultMessage):
print(f"Done: {message.subtype}") # Final result
asyncio.run(main())
import { query } from "@anthropic-ai/claude-agent-sdk";
// Agentic loop: streams messages as Claude works
for await (const message of query({
prompt: "Review utils.py for bugs that would cause crashes. Fix any issues you find.",
options: {
allowedTools: ["Read", "Edit", "Glob"], // Auto-approve these tools
permissionMode: "acceptEdits" // Auto-approve file edits
}
})) {
// Print human-readable output
if (message.type === "assistant" && message.message?.content) {
for (const block of message.message.content) {
if ("text" in block) {
console.log(block.text); // Claude's reasoning
} else if ("name" in block) {
console.log(`Tool: ${block.name}`); // Tool being called
}
}
} else if (message.type === "result") {
console.log(`Done: ${message.subtype}`); // Final result
}
}
Dieser Code hat drei Hauptteile:
-
query: der Haupteinstiegspunkt, der die agentic loop erstellt. Er gibt einen asynchronen Iterator zurück, daher verwenden Sieasync for, um Nachrichten zu streamen, während Claude arbeitet. Siehe die vollständige API in der Python oder TypeScript SDK-Referenz. -
prompt: was Sie Claude tun möchten. Claude ermittelt basierend auf der Aufgabe, welche Tools verwendet werden sollen. -
options: Konfiguration für den Agenten. Dieses Beispiel verwendetallowedTools, umRead,EditundGlobvorab zu genehmigen, undpermissionMode: "acceptEdits", um Dateiänderungen automatisch zu genehmigen. Weitere Optionen sindsystemPrompt,mcpServersund mehr. Siehe alle Optionen für Python oder TypeScript.
Die async for-Schleife läuft weiter, während Claude denkt, Tools aufruft, Ergebnisse beobachtet und entscheidet, was als nächstes zu tun ist. Jede Iteration ergibt eine Nachricht: Claudes Überlegung, ein Tool-Aufruf, ein Tool-Ergebnis oder das endgültige Ergebnis. Das SDK verwaltet die Orchestrierung, Tool-Ausführung, Kontextverwaltung und Wiederholungen, sodass Sie einfach den Stream verbrauchen. Die Schleife endet, wenn Claude die Aufgabe abschließt oder auf einen Fehler stößt.
Die Nachrichtenbehandlung in der Schleife filtert nach benutzerfreundlicher Ausgabe. Ohne Filterung würden Sie rohe Nachrichtenobjekte sehen, einschließlich Systeminitialisierung und internem Status, was zum Debuggen nützlich ist, aber sonst störend wirkt.
Dieses Beispiel verwendet Streaming, um den Fortschritt in Echtzeit anzuzeigen. Wenn Sie keine Live-Ausgabe benötigen (z. B. für Hintergrundaufträge oder CI-Pipelines), können Sie alle Nachrichten auf einmal sammeln. Weitere Informationen finden Sie unter Streaming vs. Single-Turn-Modus.
Führen Sie Ihren Agenten aus
Ihr Agent ist bereit. Führen Sie ihn mit dem folgenden Befehl aus:
npx tsx agent.ts
Wenn Sie Ihr Skript agent.mts genannt haben, führen Sie stattdessen npx tsx agent.mts aus.
uv run agent.py
Mit Ihrer noch aktivierten virtuellen Umgebung:
python agent.py
Während es arbeitet, druckt der Agent seine Überlegungen und jeden Tool-Aufruf aus und endet mit Done: success. Nach der Ausführung überprüfen Sie utils.py. Sie sehen defensiven Code, der leere Listen und Null-Benutzer verarbeitet. Ihr Agent hat autonom:
- Gelesen
utils.py, um den Code zu verstehen - Analysiert die Logik und identifiziert Grenzfälle, die zum Absturz führen würden
- Bearbeitet die Datei, um ordnungsgemäße Fehlerbehandlung hinzuzufügen
Das macht das Agent SDK anders: Claude führt Tools direkt aus, anstatt Sie zu bitten, sie zu implementieren.
Wenn Sie einen Authentifizierungsfehler wie Not logged in oder Invalid API key sehen, stellen Sie sicher, dass Sie die Umgebungsvariable ANTHROPIC_API_KEY in der Shell gesetzt haben, in der Sie Ihren Agenten ausführen. Das SDK lädt .env-Dateien nicht automatisch. Weitere Hilfe finden Sie im vollständigen Fehlerbehebungsleitfaden.
Versuchen Sie andere Prompts
Jetzt, da Ihr Agent eingerichtet ist, versuchen Sie einige verschiedene Prompts:
"Add docstrings to all functions in utils.py""Add type hints to all functions in utils.py""Create a README.md documenting the functions in utils.py"
Passen Sie Ihren Agenten an
Sie können das Verhalten Ihres Agenten ändern, indem Sie die Optionen ändern. Hier sind einige Beispiele:
Fügen Sie Web-Suchfunktion hinzu:
options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob", "WebSearch"], permission_mode="acceptEdits"
)
const _ = {
options: {
allowedTools: ["Read", "Edit", "Glob", "WebSearch"],
permissionMode: "acceptEdits"
}
};
Geben Sie Claude einen benutzerdefinierten System-Prompt:
options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"],
permission_mode="acceptEdits",
system_prompt="You are a senior Python developer. Always follow PEP 8 style guidelines.",
)
const _ = {
options: {
allowedTools: ["Read", "Edit", "Glob"],
permissionMode: "acceptEdits",
systemPrompt: "You are a senior Python developer. Always follow PEP 8 style guidelines."
}
};
Führen Sie Befehle im Terminal aus:
options = ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob", "Bash"], permission_mode="acceptEdits"
)
const _ = {
options: {
allowedTools: ["Read", "Edit", "Glob", "Bash"],
permissionMode: "acceptEdits"
}
};
Mit aktiviertem Bash versuchen Sie: "Write unit tests for utils.py, run them, and fix any failures"
Jedes dieser Snippets setzt Felder auf demselben Optionsobjekt. Weitere Informationen finden Sie unter Konfigurieren Sie Ihren Agenten.
Wichtige Konzepte
Tools steuern, was Ihr Agent tun kann:
| Tools | Was der Agent tun kann |
|---|---|
Read, Glob, Grep |
Schreibgeschützte Analyse |
Read, Edit, Glob |
Code analysieren und ändern |
Read, Edit, Bash, Glob, Grep |
Vollständige Automatisierung |
Genehmigungsmodi steuern, wie viel menschliche Aufsicht Sie möchten. Das SDK wertet den aktiven Modus zusammen mit Ihren Allow- und Deny-Regeln in einer festen Reihenfolge aus, die unter Wie Berechtigungen ausgewertet werden beschrieben ist. Die vollständige Liste der Modi, ihr Verhalten und wann Sie jeden verwenden sollten, finden Sie unter Genehmigungsmodus in Wie die Agent-Schleife funktioniert.
Nächste Schritte
Jetzt, da Sie Ihren ersten Agenten erstellt haben, erfahren Sie, wie Sie seine Funktionen erweitern und ihn an Ihren Anwendungsfall anpassen:
- Konfigurieren Sie Ihren Agenten: Stellen Sie das Optionsobjekt zusammen und finden Sie die Seite, die jede Einstellung abdeckt
- Berechtigungen: Steuern Sie, was Ihr Agent tun kann und wann er Genehmigung benötigt
- Hooks: Führen Sie benutzerdefinierten Code vor oder nach Tool-Aufrufen aus
- Sitzungen: Erstellen Sie Multi-Turn-Agenten, die den Kontext beibehalten
- MCP-Server: Verbinden Sie sich mit Datenbanken, Browsern, APIs und anderen externen Systemen
- Hosting: Stellen Sie Agenten in Docker, Cloud und CI/CD bereit
- Beispiel-Agenten: Siehe vollständige Beispiele: E-Mail-Assistent, Forschungsagent und mehr
- Fehlerbehebung: Beheben Sie Agent SDK-Fehler anhand der genauen Meldung, die Sie sehen