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:
Claude Code installieren
Das Agent SDK verwendet Claude Code als Runtime. Installieren Sie es für Ihre Plattform:
Nachdem Sie Claude Code auf Ihrem Computer installiert haben, führen Sie claude in Ihrem Terminal aus und folgen Sie den Aufforderungen zur Authentifizierung. Das SDK verwendet diese Authentifizierung automatisch.
Weitere Informationen zur Claude Code-Installation finden Sie unter Claude Code-Setup.
Projektordner erstellen
Erstellen Sie ein neues Verzeichnis für diesen Schnellstart:
mkdir my-agent && cd my-agentFü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.
SDK installieren
Installieren Sie das Agent SDK-Paket für Ihre Sprache:
API-Schlüssel festlegen
Wenn Sie Claude Code bereits authentifiziert haben (durch Ausführen von claude in Ihrem Terminal), verwendet das SDK diese Authentifizierung automatisch.
Andernfalls benötigen Sie einen API-Schlüssel, den Sie von der Anthropic Console erhalten können.
Erstellen Sie eine .env-Datei in Ihrem Projektverzeichnis und speichern Sie den API-Schlüssel dort:
ANTHROPIC_API_KEY=your-api-keyVerwenden Sie Amazon Bedrock, Google Vertex AI oder Microsoft Azure? Siehe die Setup-Handbücher für Bedrock, Vertex AI oder Azure AI Foundry.
Sofern nicht vorher genehmigt, erlauben wir Drittentwicklern nicht, Claude.ai-Login oder Ratenlimits für ihre Produkte anzubieten, einschließlich Agenten, die auf dem Claude Agent SDK basieren. Bitte verwenden Sie stattdessen die in diesem Dokument beschriebenen API-Schlüssel-Authentifizierungsmethoden.
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 abErstellen Sie agent.py, wenn Sie das Python SDK verwenden, oder agent.ts für TypeScript:
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"], # Tools Claude can use
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())Dieser Code hat drei Hauptteile:
query: der Haupteinstiegspunkt, der die agentic loop erstellt. Er gibt einen asynchronen Iterator zurück, daher verwenden Sie async 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 bestimmt basierend auf der Aufgabe, welche Tools zu verwenden sind.
options: Konfiguration für den Agenten. Dieses Beispiel verwendet allowedTools, um Claude auf Read, Edit und Glob zu beschränken, und permissionMode: "acceptEdits", um Dateiänderungen automatisch zu genehmigen. Andere Optionen umfassen systemPrompt, mcpServers und 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, Wiederholungen), sodass Sie nur den Stream verbrauchen. Die Schleife endet, wenn Claude die Aufgabe abschließt oder auf einen Fehler trifft.
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. Siehe Streaming vs. Single-Turn-Modus für Details.
Ihr Agent ist bereit. Führen Sie ihn mit dem folgenden Befehl aus:
python3 agent.pyNach der Ausführung überprüfen Sie utils.py. Sie sehen defensiven Code, der leere Listen und Null-Benutzer verarbeitet. Ihr Agent hat autonom:
utils.py, um den Code zu verstehenDas macht das Agent SDK anders: Claude führt Tools direkt aus, anstatt Sie zu bitten, sie zu implementieren.
Wenn Sie „Claude Code nicht gefunden" sehen, installieren Sie Claude Code und starten Sie Ihr Terminal neu. Für „API-Schlüssel nicht gefunden", legen Sie Ihren API-Schlüssel fest. Siehe das vollständige Troubleshooting-Handbuch für weitere Hilfe.
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"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"
)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."
)Führen Sie Befehle im Terminal aus:
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob", "Bash"],
permission_mode="acceptEdits"
)Mit aktiviertem Bash versuchen Sie: "Write unit tests for utils.py, run them, and fix any failures"
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 |
Berechtigungsmodi steuern, wie viel menschliche Aufsicht Sie möchten:
| Modus | Verhalten | Anwendungsfall |
|---|---|---|
acceptEdits | Genehmigt Dateibearbeitungen automatisch, fragt nach anderen Aktionen | Vertrauenswürdige Entwicklungs-Workflows |
bypassPermissions | Läuft ohne Aufforderungen | CI/CD-Pipelines, Automatisierung |
default | Erfordert einen canUseTool-Callback zur Genehmigungsbehandlung | Benutzerdefinierte Genehmigungsabläufe |
Das obige Beispiel verwendet den acceptEdits-Modus, der Dateivorgänge automatisch genehmigt, damit der Agent ohne interaktive Aufforderungen ausgeführt werden kann. Wenn Sie Benutzer zur Genehmigung auffordern möchten, verwenden Sie den default-Modus und stellen Sie einen canUseTool-Callback bereit, der Benutzereingaben sammelt. Für mehr Kontrolle siehe Berechtigungen.
Jetzt, da Sie Ihren ersten Agenten erstellt haben, erfahren Sie, wie Sie seine Fähigkeiten erweitern und ihn auf Ihren Anwendungsfall zuschneiden: