Das Claude Agent SDK unterstützt zwei verschiedene Eingabemodi für die Interaktion mit Agenten:
Dieser Leitfaden erklärt die Unterschiede, Vorteile und Anwendungsfälle für jeden Modus, um Ihnen bei der Auswahl des richtigen Ansatzes für Ihre Anwendung zu helfen.
Der Streaming-Eingabemodus ist die bevorzugte Art, das Claude Agent SDK zu verwenden. Er bietet vollen Zugang zu den Fähigkeiten des Agenten und ermöglicht reichhaltige, interaktive Erfahrungen.
Er ermöglicht es dem Agenten, als langlebiger Prozess zu operieren, der Benutzereingaben entgegennimmt, Unterbrechungen behandelt, Berechtigungsanfragen anzeigt und Sitzungsverwaltung übernimmt.
Bilder direkt an Nachrichten anhängen für visuelle Analyse und Verständnis
Die Einzelnachrichten-Eingabe ist einfacher, aber begrenzter.
Verwenden Sie die Einzelnachrichten-Eingabe, wenn:
Der Einzelnachrichten-Eingabemodus unterstützt nicht:
Mehrere Nachrichten senden, die sequenziell verarbeitet werden, mit der Möglichkeit zu unterbrechen
Vollzugriff auf alle Tools und benutzerdefinierte MCP-Server während der Sitzung
Lebenszyklus-Hooks verwenden, um Verhalten an verschiedenen Punkten anzupassen
Antworten sehen, während sie generiert werden, nicht nur Endergebnisse
Gesprächskontext über mehrere Wendungen natürlich beibehalten
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Erste Nachricht
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analysiere diese Codebasis auf Sicherheitsprobleme"
}
};
// Auf Bedingungen oder Benutzereingabe warten
await new Promise(resolve => setTimeout(resolve, 2000));
// Nachfassen mit Bild
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Überprüfe dieses Architekturdiagramm"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Streaming-Antworten verarbeiten
for await (const message of query({
prompt: generateMessages(),
options: {
maxTurns: 10,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}import { query } from "@anthropic-ai/claude-agent-sdk";
// Einfache einmalige Abfrage
for await (const message of query({
prompt: "Erkläre den Authentifizierungsablauf",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Gespräch mit Sitzungsverwaltung fortsetzen
for await (const message of query({
prompt: "Erkläre jetzt den Autorisierungsprozess",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}