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'usage pour chaque mode afin de vous aider à choisir la bonne approche pour votre application.
Le mode d'entrée en streaming 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 reçoit les entrées utilisateur, gère les interruptions, fait remonter les demandes de permission et gère la gestion de session.
Joindre des images directement aux messages pour l'analyse visuelle et la compréhension
Envoyer plusieurs messages qui se traitent séquentiellement, avec possibilité d'interruption
Accès complet à tous les outils et serveurs MCP personnalisés pendant la session
Utiliser les hooks de cycle de vie pour personnaliser le comportement à différents points
Voir les réponses au fur et à mesure qu'elles sont générées, pas seulement les résultats finaux
Maintenir le contexte de conversation à travers plusieurs tours naturellement
import { query } from "@anthropic-ai/claude-agent-sdk";
import { readFileSync } from "fs";
async function* generateMessages() {
// Premier message
yield {
type: "user" as const,
message: {
role: "user" as const,
content: "Analyser cette base de code pour les problèmes de sécurité"
}
};
// Attendre les conditions ou l'entrée utilisateur
await new Promise(resolve => setTimeout(resolve, 2000));
// Suivi avec image
yield {
type: "user" as const,
message: {
role: "user" as const,
content: [
{
type: "text",
text: "Examiner ce diagramme d'architecture"
},
{
type: "image",
source: {
type: "base64",
media_type: "image/png",
data: readFileSync("diagram.png", "base64")
}
}
]
}
};
}
// Traiter les réponses en streaming
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";
// Requête ponctuelle simple
for await (const message of query({
prompt: "Expliquer le flux d'authentification",
options: {
maxTurns: 1,
allowedTools: ["Read", "Grep"]
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}
// Continuer la conversation avec gestion de session
for await (const message of query({
prompt: "Maintenant expliquer le processus d'autorisation",
options: {
continue: true,
maxTurns: 1
}
})) {
if (message.type === "result") {
console.log(message.result);
}
}