O Claude Agent SDK suporta dois modos de entrada distintos para interagir com agentes:
Este guia explica as diferenças, benefícios e casos de uso para cada modo para ajudá-lo a escolher a abordagem certa para sua aplicação.
O modo de entrada de streaming é a maneira preferida de usar o Claude Agent SDK. Ele fornece acesso completo às capacidades do agente e permite experiências ricas e interativas.
Ele permite que o agente opere como um processo de longa duração que recebe entrada do usuário, lida com interrupções, apresenta solicitações de permissão e gerencia sessões.
Anexe imagens diretamente às mensagens para análise visual e compreensão
Envie múltiplas mensagens que processam sequencialmente, com capacidade de interromper
Acesso completo a todas as ferramentas e servidores MCP personalizados durante a sessão
Use hooks de ciclo de vida para personalizar comportamento em vários pontos
Veja respostas conforme são geradas, não apenas resultados finais
Mantenha contexto de conversa através de múltiplas rodadas naturalmente
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Primeira mensagem
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analise esta base de código para problemas de segurança"
}
};
// Aguardar condições ou entrada do usuário
await new Promise(resolve => setTimeout(resolve, 2000));
// Acompanhamento com imagem
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Revise este diagrama de arquitetura"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Processar respostas de streaming
for await (const message of query({
prompt: generateMessages(),
options: {
maxTurns: 10,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}A entrada de mensagem única é mais simples, mas mais limitada.
Use entrada de mensagem única quando:
O modo de entrada de mensagem única não suporta:
import { query } from "@anthropic-ai/claude-agent-sdk";
// Consulta simples de uma única vez
for await (const message of query({
prompt: "Explique o fluxo de autenticação",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Continuar conversa com gerenciamento de sessão
for await (const message of query({
prompt: "Agora explique o processo de autorização",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}