Passer au contenu principal
Cherchez une fonction ou un type du SDK Agent selon ce qu’il fait, puis trouvez son nom dans votre langage. Utilisation montre comment les éléments s’assemblent. TypeScript sert de conception de référence ; quand un langage n’a pas une fonctionnalité, sa cellule l’indique.

Créer un agent

Crée un agent à partir d’une définition. La limite d’étapes de la définition s’applique à chaque appel run ou continue.

Champs de la définition

Rust construit la définition avec des méthodes plutôt qu’avec des champs : AgentDefinition::new(id, model), puis .instructions(text), .tool(tool) (une fois par outil), .max_steps(limit), .model_retries(count, backoff) et .human_review(callback). L’AgentDefinition de Java est un record avec des constructeurs à 10, 13 et 19 arguments. En TypeScript, model, instructions et les valeurs d’échantillonnage peuvent être fixes ou dynamiques.

Définir un outil

Outils liste tous les champs d’un outil.

Se connecter à Phaseo Gateway

Sorties et nouvelles tentatives liste les options du client dans chaque langage.

Capturer les exécutions en local

Voir DevTools.

Conditions d’arrêt

Go et Java renvoient une StopCondition ; C# renvoie une Func<StopState, (bool Stop, string Reason)> ; PHP renvoie un callable ; Ruby renvoie une lambda. Rust n’a pas de conditions d’arrêt, seulement la limite d’étapes. Voir Conditions d’arrêt.

Exécuter et reprendre

Run et continue renvoient un résultat d’exécution : une Promise<AgentRunResult> en TypeScript, (RunResult, error) en Go, Task<RunResult> en C#, Result<RunResult, AgentError> en Rust, et directement le résultat d’exécution ailleurs. Les méthodes de streaming renvoient immédiatement un résultat de flux.

Options d’exécution

PHP et Ruby les prennent en arguments nommés ; le RunOptions de Java est un record positionnel dans l’ordre input, client, context, model, preset, maxSteps, modelRetry, toolExecution, onEvent, devtools, puis un state facultatif. Le run() de Python accepte aussi stop_when mais l’ignore ; définissez les conditions d’arrêt sur la définition. Le stream() de PHP et le stream de Ruby ne prennent que input, client, context et state. Rust crée les valeurs par défaut avec RunOptions::new(input).

Options de reprise

Les options de reprise acceptent les surcharges d’exécution ci-dessus, plus : L’ordre du ContinueOptions de Java est run, client, context, model, preset, maxSteps, humanInput, modelRetry, toolExecution, onEvent, devtools, puis approvals, rejections, toolOutputs, puis runId, state. En plus de cette forme à 16 arguments, il existe des constructeurs qui ne prennent que les 11 ou les 14 premiers arguments ; les autres valent par défaut des listes vides ou null. Rust crée les valeurs par défaut avec ContinueOptions::new(result).

Résultat de flux

Les consommateurs rejouent depuis le début ; plusieurs peuvent donc lire la même exécution. Leur comportement diffère :

Résultat d’exécution

Le type est AgentRunResult en TypeScript et Python et RunResult ailleurs. TypeScript ajoute stepResults (résultats d’étapes normalisés) et items (messages, raisonnement, activité des outils, erreurs et sortie finale, dans l’ordre ; voir Éléments). En Rust, output est une serde_json::Value, et RunResult, RunRecord, RunStep, Message, ToolCall, HumanPause, PendingToolCall, ToolDecision, ToolOutput et UsageSummary se sérialisent avec Serde.

Enregistrement de l’exécution

Le RunRecord de Rust stocke aussi le modèle effectif et la limite d’étapes. TypeScript ajoute errorDetails avec les détails des erreurs du gateway. Les statuts d’exécution sont queued, running, waiting_for_tools, waiting_for_human, completed, stopped et failed. TypeScript ajoute cancelled.

Enregistrement d’étape

Le type est RunStep partout sauf en TypeScript et Python (AgentStepRecord).

Récapitulatif de l’utilisation

inputTokens, outputTokens, cachedTokens, totalTokens, cost (TypeScript, Java) ; input_tokens, output_tokens, cached_tokens, total_tokens, cost (clés Python, PHP et Ruby, Rust) ; InputTokens, OutputTokens, CachedTokens, TotalTokens, Cost (Go, C#). Le type est AgentUsageSummary en TypeScript et Python et UsageSummary en Go, C#, Java et Rust. PHP et Ruby utilisent un tableau ou un Hash. Voir Observabilité pour les mises en garde sur cost.

Pauses et décisions

Les noms de champs suivent le style de chaque langage : toolCallId (TypeScript, PHP, Java), tool_call_id (Python, Ruby, Rust), ToolCallID (Go) et ToolCallId (C#). Le ToolDecision de Rust ne sert qu’à l’approbation. Voir État et approbation.

Contexte d’exécution passé aux outils

Accesseur d’état

Clients de modèle

Implémentez un client de modèle pour envoyer les tours du modèle par un autre transport, ou pour encapsuler le client gateway. En Rust, ModelRequest contient l’ID de l’agent, le modèle effectif, les instructions, les messages courants, les spécifications des outils (ToolSpec : id, description, parameters en JSON Schema) et le contexte applicatif. ModelResponse contient message, usage, request_id, provider, model et finish_reason. Message a role, content, tool_calls, tool_call_id, name et is_error, avec les constructeurs Message::user(content) et Message::assistant(content) ; ToolCall a id, name et input en JSON.

Événements et erreurs

TypeScript exporte aussi agentErrorIsRetryable(), agentRetryAfterMs() et agentErrorIsContextOverflow() pour classer les erreurs, repairToolHistory(messages) pour répondre aux appels d’outils restés sans résultat et supprimer les résultats qui ne répondent à aucun appel, et truncateToolOutput(text, limit) pour garder le début et la fin d’un texte long avec un avis indiquant ce qui a été coupé. Voir Hooks de cycle de vie et Événements et erreurs.
Dernière modification le 5 novembre 2026