Claude Agent SDK mendukung dua mode input yang berbeda untuk berinteraksi dengan agen:
Panduan ini menjelaskan perbedaan, manfaat, dan kasus penggunaan untuk setiap mode untuk membantu Anda memilih pendekatan yang tepat untuk aplikasi Anda.
Mode input streaming adalah cara pilihan untuk menggunakan Claude Agent SDK. Ini memberikan akses penuh ke kemampuan agen dan memungkinkan pengalaman interaktif yang kaya.
Ini memungkinkan agen beroperasi sebagai proses yang berumur panjang yang menerima input pengguna, menangani gangguan, menampilkan permintaan izin, dan menangani manajemen sesi.
Lampirkan gambar langsung ke pesan untuk analisis visual dan pemahaman
Kirim beberapa pesan yang diproses secara berurutan, dengan kemampuan untuk mengganggu
Akses penuh ke semua alat dan server MCP kustom selama sesi
Gunakan lifecycle hooks untuk menyesuaikan perilaku di berbagai titik
Lihat respons saat dihasilkan, bukan hanya hasil akhir
Pertahankan konteks percakapan di beberapa giliran secara alami
Input pesan tunggal lebih sederhana tetapi lebih terbatas.
Gunakan input pesan tunggal ketika:
Mode input pesan tunggal tidak mendukung:
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);
}
}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);
}
}