Le SDK Claude Agent prend en charge deux modes d'entrée distincts pour interagir avec les agents :
Ce guide explique les différences, les avantages et les cas d'utilisation de chaque mode pour vous aider à choisir la bonne approche pour votre application.
Le mode d'entrée en continu est la façon préférée d'utiliser le SDK Claude Agent. Il fournit un accès complet aux capacités de l'agent et permet des expériences riches et interactives.
Il permet à l'agent de fonctionner comme un processus de longue durée qui accepte l'entrée de l'utilisateur, gère les interruptions, affiche les demandes de permission et gère la gestion de session.
Joignez des images directement aux messages pour l'analyse et la compréhension visuelles
Envoyez plusieurs messages qui se traitent séquentiellement, avec la possibilité d'interrompre
Accès complet à tous les outils et serveurs MCP personnalisés pendant la session
Utilisez les hooks de cycle de vie pour personnaliser le comportement à différents points
Voyez les réponses au fur et à mesure qu'elles sont générées, pas seulement les résultats finaux
Maintenez le contexte de la conversation sur plusieurs tours naturellement
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);
}
}L'entrée de message unique est plus simple mais plus limitée.
Utilisez l'entrée de message unique quand :
Le mode d'entrée de message unique ne prend pas en charge :
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);
}
}