Il Claude Agent SDK supporta due modalità di input distinte per interagire con gli agenti:
Questa guida spiega le differenze, i vantaggi e i casi d'uso per ciascuna modalità per aiutarti a scegliere l'approccio giusto per la tua applicazione.
La modalità input in streaming è il modo preferito per utilizzare il Claude Agent SDK. Fornisce accesso completo alle capacità dell'agente e abilita esperienze ricche e interattive.
Consente all'agente di operare come un processo di lunga durata che riceve input dell'utente, gestisce interruzioni, presenta richieste di permesso e gestisce la gestione delle sessioni.
Allega immagini direttamente ai messaggi per analisi visiva e comprensione
Invia più messaggi che si elaborano sequenzialmente, con possibilità di interrompere
Accesso completo a tutti gli strumenti e server MCP personalizzati durante la sessione
Utilizza hook del ciclo di vita per personalizzare il comportamento in vari punti
Vedi le risposte mentre vengono generate, non solo i risultati finali
Mantieni il contesto della conversazione attraverso più turni naturalmente
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Primo messaggio
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analizza questo codebase per problemi di sicurezza"
}
};
// Aspetta condizioni o input dell'utente
await new Promise(resolve => setTimeout(resolve, 2000));
// Seguito con immagine
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Rivedi questo diagramma dell'architettura"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Elabora risposte in streaming
for await (const message of query({
prompt: generateMessages(),
options: {
maxTurns: 10,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}L'input messaggio singolo è più semplice ma più limitato.
Utilizza l'input messaggio singolo quando:
La modalità input messaggio singolo non supporta:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Query one-shot semplice
for await (const message of query({
prompt: "Spiega il flusso di autenticazione",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Continua conversazione con gestione sessione
for await (const message of query({
prompt: "Ora spiega il processo di autorizzazione",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}