El Claude Agent SDK admite dos modos de entrada distintos para interactuar con agentes:
Esta guía explica las diferencias, beneficios y casos de uso para cada modo para ayudarte a elegir el enfoque correcto para tu aplicación.
El modo de entrada de streaming es la forma preferida de usar el Claude Agent SDK. Proporciona acceso completo a las capacidades del agente y permite experiencias ricas e interactivas.
Permite que el agente funcione como un proceso de larga duración que recibe entrada del usuario, maneja interrupciones, expone solicitudes de permisos y gestiona la sesión.
Adjunta imágenes directamente a los mensajes para análisis y comprensión visual
Envía múltiples mensajes que se procesan secuencialmente, con la capacidad de interrumpir
Acceso completo a todas las herramientas y servidores MCP personalizados durante la sesión
Utiliza hooks de ciclo de vida para personalizar el comportamiento en varios puntos
Ve las respuestas mientras se generan, no solo los resultados finales
Mantén el contexto de la conversación en múltiples turnos de forma natural
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// First message
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analyze this codebase for security issues"
}
};
// Wait for conditions or user input
await new Promise(resolve => setTimeout(resolve, 2000));
// Follow-up with image
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Review this architecture diagram"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Process streaming responses
for await (const message of query({
prompt: generateMessages(),
options: {
maxTurns: 10,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}La entrada de mensaje único es más simple pero más limitada.
Usa entrada de mensaje único cuando:
El modo de entrada de mensaje único no admite:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Simple one-shot query
for await (const message of query({
prompt: "Explain the authentication flow",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Continue conversation with session management
for await (const message of query({
prompt: "Now explain the authorization process",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}