Streaming-Eingabe
Überblick
Das Claude Agent SDK unterstützt zwei verschiedene Eingabemodi für die Interaktion mit Agenten:
- Streaming-Eingabemodus (Standard & Empfohlen) - Eine persistente, interaktive Sitzung
- Einzelnachrichten-Eingabe - Einmalige Abfragen, die Sitzungsstatus und Wiederaufnahme verwenden
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.
Streaming-Eingabemodus (Empfohlen)
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.
Wie es funktioniert
%%{init: {"theme": "base", "themeVariables": {"edgeLabelBackground": "#F0F0EB", "lineColor": "#91918D", "primaryColor": "#F0F0EB", "primaryTextColor": "#191919", "primaryBorderColor": "#D9D8D5", "secondaryColor": "#F5E6D8", "tertiaryColor": "#CC785C", "noteBkgColor": "#FAF0E6", "noteBorderColor": "#91918D"}, "sequence": {"actorMargin": 50, "width": 150, "height": 65, "boxMargin": 10, "boxTextMargin": 5, "noteMargin": 10, "messageMargin": 35}}}%%
sequenceDiagram
participant App as Ihre Anwendung
participant Agent as Claude Agent
participant Tools as Tools/Hooks
participant FS as Umgebung/<br/>Dateisystem
App->>Agent: Initialisierung mit AsyncGenerator
activate Agent
App->>Agent: Nachricht 1 übermitteln
Agent->>Tools: Tools ausführen
Tools->>FS: Dateien lesen
FS-->>Tools: Dateiinhalte
Tools->>FS: Dateien schreiben/bearbeiten
FS-->>Tools: Erfolg/Fehler
Agent-->>App: Teilantwort streamen
Agent-->>App: Mehr Inhalt streamen...
Agent->>App: Nachricht 1 abschließen
App->>Agent: Nachricht 2 + Bild übermitteln
Agent->>Tools: Bild verarbeiten & ausführen
Tools->>FS: Auf Dateisystem zugreifen
FS-->>Tools: Operationsergebnisse
Agent-->>App: Antwort 2 streamen
App->>Agent: Nachricht 3 in Warteschlange
App->>Agent: Unterbrechen/Abbrechen
Agent->>App: Unterbrechung behandeln
Note over App,Agent: Sitzung bleibt aktiv
Note over Tools,FS: Persistenter Dateisystem-<br/>status wird beibehalten
deactivate AgentVorteile
Bild-Uploads
Bilder direkt an Nachrichten anhängen für visuelle Analyse und Verständnis
Nachrichten in Warteschlange
Mehrere Nachrichten senden, die sequenziell verarbeitet werden, mit der Möglichkeit zu unterbrechen
Tool-Integration
Vollzugriff auf alle Tools und benutzerdefinierte MCP-Server während der Sitzung
Hooks-Unterstützung
Lebenszyklus-Hooks verwenden, um Verhalten an verschiedenen Punkten anzupassen
Echtzeit-Feedback
Antworten sehen, während sie generiert werden, nicht nur Endergebnisse
Kontext-Persistenz
Gesprächskontext über mehrere Wendungen natürlich beibehalten
Implementierungsbeispiel
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);
}
}Einzelnachrichten-Eingabe
Die Einzelnachrichten-Eingabe ist einfacher, aber begrenzter.
Wann Einzelnachrichten-Eingabe verwenden
Verwenden Sie die Einzelnachrichten-Eingabe, wenn:
- Sie eine einmalige Antwort benötigen
- Sie keine Bildanhänge, Hooks usw. benötigen
- Sie in einer zustandslosen Umgebung operieren müssen, wie einer Lambda-Funktion
Einschränkungen
Der Einzelnachrichten-Eingabemodus unterstützt nicht:
- Direkte Bildanhänge in Nachrichten
- Dynamische Nachrichten-Warteschlangen
- Echtzeit-Unterbrechung
- Hook-Integration
- Natürliche Multi-Turn-Gespräche
Implementierungsbeispiel
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);
}
}