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 yang disukai untuk menggunakan Claude Agent SDK. Ini menyediakan akses penuh ke kemampuan agen dan memungkinkan pengalaman interaktif yang kaya.
Ini memungkinkan agen untuk beroperasi sebagai proses yang hidup lama yang menerima input pengguna, menangani interupsi, 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 menginterupsi
Akses penuh ke semua tool dan server MCP kustom selama sesi
Gunakan lifecycle hooks untuk menyesuaikan perilaku di berbagai titik
Lihat respons saat dibuat, bukan hanya hasil akhir
Pertahankan konteks percakapan di beberapa giliran secara alami
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Pesan pertama
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analisis codebase ini untuk masalah keamanan"
}
};
// Tunggu kondisi atau input pengguna
await new Promise(resolve => setTimeout(resolve, 2000));
// Tindak lanjut dengan gambar
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Tinjau diagram arsitektur ini"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Proses respons streaming
for await (const message of query({
prompt: generateMessages(),
options: {
maxTurns: 10,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}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";
// Query sekali jalan sederhana
for await (const message of query({
prompt: "Jelaskan alur autentikasi",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Lanjutkan percakapan dengan manajemen sesi
for await (const message of query({
prompt: "Sekarang jelaskan proses otorisasi",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}