Claude Agent SDK поддерживает два различных режима ввода для взаимодействия с агентами:
Это руководство объясняет различия, преимущества и случаи использования для каждого режима, чтобы помочь вам выбрать правильный подход для вашего приложения.
Режим потокового ввода является предпочтительным способом использования Claude Agent SDK. Он предоставляет полный доступ к возможностям агента и обеспечивает богатый интерактивный опыт.
Он позволяет агенту работать как долгоживущий процесс, который принимает пользовательский ввод, обрабатывает прерывания, отображает запросы разрешений и управляет сессиями.
Прикрепляйте изображения напрямую к сообщениям для визуального анализа и понимания
Отправляйте несколько сообщений, которые обрабатываются последовательно, с возможностью прерывания
Полный доступ ко всем инструментам и пользовательским MCP серверам во время сессии
Используйте хуки жизненного цикла для настройки поведения в различных точках
Видите ответы по мере их генерации, а не только финальные результаты
Поддерживайте контекст разговора через несколько оборотов естественным образом
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Первое сообщение
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Проанализируй эту кодовую базу на предмет проблем безопасности"
}
};
// Ждем условий или пользовательского ввода
await new Promise(resolve => setTimeout(resolve, 2000));
// Продолжение с изображением
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Просмотри эту диаграмму архитектуры"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Обработка потоковых ответов
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";
// Простой одноразовый запрос
for await (const message of query({
prompt: "Объясни поток аутентификации",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Продолжение разговора с управлением сессией
for await (const message of query({
prompt: "Теперь объясни процесс авторизации",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}