Aller au contenu principal

agent/runner.ts

Source : sdks/typescript/packages/sdk/src/agent/runner.ts. Retour à l'index de la référence du SDK TypeScript.

remarque

Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.

Interface ToolCall​

Appel d'outil demandé par un modèle : identifiant, type function, nom et arguments.

Champs :

NomTypeRequisDescription
idstringouiIdentifiant de l'appel.
type"function"ouiType de l'appel, toujours function.
function{ name: string; arguments: string }ouiFonction appelée : nom et arguments sous forme de chaîne JSON.
inputunknownnonValeur refusée.

Interface AgentMessage​

Message de conversation d'un tour au format OpenAI : rôle, contenu, appels d'outils et identifiant d'appel d'outil.

Champs :

NomTypeRequisDescription
role"system" | "user" | "assistant" | "tool"ouisystem, user, assistant ou tool.
contentstring | nullouiTexte du message ; null pour un message assistant qui ne fait qu'appeler des outils.
tool_callsToolCall[]nonAppels d'outils demandés par un message assistant.
tool_call_idstringnonIdentifiant de l'appel d'outil auquel répond ce message tool.
namestringnonNom de l'outil, sur un message tool.

Interface ModelResponse​

Réponse d'un appel au modèle : le message assistant, le motif de fin, les jetons, le coût et la réponse brute.

Champs :

NomTypeRequisDescription
messageAgentMessageouiMessage d'état (2000 caractères au plus).
finishReasonstring | nullouiMotif de fin du modèle, par exemple stop, length ou tool_calls.
tokensnumbernonJetons consommés par l'appel, ajoutés au budget du tour.
costnumbernonCoût de l'appel, ajouté au budget du tour.
rawunknownnonRéponse brute de la passerelle.

Interface ModelRequest​

Ce que le runner transmet à un appel au modèle : messages, déclarations d'outils et numéro d'étape.

Champs :

NomTypeRequisDescription
messagesAgentMessage[]ouiMessages du tour jusqu'ici.
toolsArray<{ type: "function"; function: { name: string; description: string; parameters: Record<string, unknown> } }>ouiOutils que ses agents externes peuvent invoquer (noms ou motifs comme crm.*).
stepnumberouiÉtape courante, texte libre (500 caractères au plus).

Alias de type ModelCaller​

Remplace l'appel à la passerelle (tests, routage personnalisé).

Définition : (req: ModelRequest) => Promise<ModelResponse> \| ModelResponse.

Interface RunnerLimits​

Limites d'un tour d'AgentRunner : appels au modèle, appels d'outils, coût, jetons et durée.

Champs :

NomTypeRequisDescription
maxStepsnumbernonAppels au modèle par tour (50 par défaut).
maxToolCallsnumbernonNombre maximal d'appels d'outils par tour ; l'atteindre arrête avec max_tool_calls.
maxCostnumbernonLimite de coût, dans l'unité monétaire indiquée par la passerelle.
maxTokensnumbernonNombre maximal de jetons de sortie ; s'il est fourni, c'est la sortie retenue pour le pire cas.
maxDurationMsnumbernonDurée maximale du tour en millisecondes ; la dépasser arrête avec timeout.

Alias de type StopReason​

Raison de la fin d'un tour : completed, stopped, aborted, waiting_approval, max_steps, max_tool_calls, budget, timeout ou no_progress.

Définition : \| "completed" \| "stopped" \| "aborted" \| "waiting_approval" \| "max_steps" \| "max_tool_calls" \| "budget" \| "timeout" \| "no_progress".

Interface RunnerStep​

Une étape de modèle ou d'outil d'un tour, telle que transmise à onStep et rapportée au run.

Champs :

NomTypeRequisDescription
indexnumberouiPosition de l'étape dans le tour, à partir de 1.
type"model" | "tool"ouimodel ou tool.
namestringouiNom de l'outil, ou nom du modèle pour une étape de modèle.
inputunknownnonValeur refusée.
outputunknownnonSortie de l'opération (transcription, références d'images...).
errorstringnonMessage d'erreur d'une étape d'outil en échec.
status"succeeded" | "failed" | "waiting_approval"ouisucceeded, failed ou waiting_approval.
kindToolKindnonCe que fait l'outil, lu par les règles de continuation (exploration, verify_before_done).
tokensnumbernonJetons consommés par une étape de modèle.
costnumbernonCoût d'une étape de modèle.
durationMsnumberouiDurée de l'étape en millisecondes.
toolCallsnumbernonÉtape de modèle : nombre d'appels d'outils demandés.
finishReasonstring | nullnonMotif de fin d'une étape de modèle.

Interface TurnResult​

Résultat d'AgentRunner.runTurn.

Champs :

NomTypeRequisDescription
finalTextstringouiDernière réponse textuelle du modèle.
messagesAgentMessage[]ouiTous les messages du tour, y compris l'entrée, les relances et les résultats d'outils.
stepsRunnerStep[]ouiÉtapes de modèle et d'outil du tour, dans l'ordre.
stopReasonStopReasonouiRaison de la fin du tour.
stopDetailstringnonCause lisible d'un tour non terminé (limite, motif du heartbeat).
nudgesRecord<stringouiRelances envoyées dans le tour, par code de règle.
usage{ tokens: number; cost: number; durationMs: number; modelCalls: number; toolCalls: number }ouiCompteurs d'usage ajoutés à la consommation de budget, par exemple input_tokens, output_tokens.
approvalDocnonRenseigné quand stopReason vaut waiting_approval.

Interface AgentRunnerOptions​

Options d'AgentRunner : modèle ou callModel, outils, identifiants du run, limites, règles, heartbeat, arrêt d'urgence et compte rendu.

Champs :

NomTypeRequisDescription
clientEnterpriseAInonClient EnterpriseAI utilisé pour la passerelle, les outils, MCP et les comptes rendus du run.
modelstringnonAlias de modèle ou de route de la passerelle.
effortstringnonEffort de raisonnement envoyé en reasoning_effort.
callModelModelCallernonRemplace l'appel à la passerelle (tests, routage personnalisé).
toolsTool<anynonOutils que ses agents externes peuvent invoquer (noms ou motifs comme crm.*).
remoteToolsRemoteToolSpec[]nonOutils exécutés côté serveur par la Tool Gateway (POST /v1/tools/{name}/invoke).
mcpToolsMcpToolSpec[]nonOutils de serveurs MCP enregistrés, appelés via la passerelle MCP (tools/call).
agentIdstringnonIdentifiant de l'agent envoyé en agent_id à la passerelle et à la Tool Gateway.
sessionIdstringnonIdentifiant de session envoyé en session_id à la passerelle.
runIdstringnonIdentifiant du run : envoyé en run_id et, avec un client, active les comptes rendus d'étapes et de points de reprise.
taskIdstringnonIdentifiant de tâche envoyé en task_id à la passerelle.
dataClassificationstringnonClassification des données envoyée en data_classification avec les appels au modèle et aux outils distants.
limitsRunnerLimitsnonLimites d'étapes, d'appels d'outils, de coût, de jetons et de durée d'un tour.
rulesContinuationRule[]nonRègles d'une politique builtin.
deliveryRequiredbooleannonLe flux exige l'exécution d'un outil avant la réponse (règle delivery).
auditModebooleannonMode audit : plafond d'exploration de 8 au lieu de 4.
heartbeatHeartbeatHandlenonHandle de heartbeat ; un battement est envoyé avant chaque appel au modèle et stopRequested est vérifié avant chaque appel.
shouldStop() => Promise<boolean> | booleannonArrêt d'urgence supplémentaire, vérifié avant chaque appel au modèle et à un outil.
signalAbortSignalnonAbortSignal transmis à chaque appel ; une annulation termine le tour avec aborted.
localeLocalenonLangue des messages produits par le runner, en (par défaut) ou fr.
reportStepsbooleannonPOST /v1/runs/{id}/steps pour chaque appel (vrai par défaut quand client et runId sont fournis).
checkpointsbooleannonPOST /v1/runs/{id}/checkpoints après les étapes d'outils et à l'arrêt (vrai par défaut quand client et runId sont fournis).
onStep(s: RunnerStep) => Promise<void> | voidnonAppelée avec chaque étape de modèle et d'outil.
onError(err: unknown) => voidnonLes erreurs de compte rendu (étapes, points de reprise) ne font jamais échouer le tour ; elles arrivent ici.

Classe AgentRunner​

Le modèle puis les outils, répétés jusqu'à la réponse finale, puis les règles de continuation Navin.

Attributs :

NomTypeRequisDescription
optionsAgentRunnerOptionsouiOptions transmises au constructeur.

Constructeur AgentRunner​

new AgentRunner(options: AgentRunnerOptions)

Indexe les outils locaux, distants et MCP et prend defaultRules() quand aucune règle n'est fournie ; lève invalid_request sans client ni callModel.

NomTypeDéfautRequisDescription
optionsAgentRunnerOptionsouiOptions de l'appel (clé d'idempotence, traceparent, en-têtes, signal d'annulation).

AgentRunner.runTurn​

async runTurn(input: AgentMessage[]): Promise<TurnResult>

Exécute un tour utilisateur jusqu'à la réponse finale ou un arrêt.

NomTypeDéfautRequisDescription
inputAgentMessage[]ouiMessages de la conversation jusqu'ici ; le dernier message user est lu par la règle de feu vert.

Retour : Promise<TurnResult>. Texte final, messages, étapes, motif d'arrêt, relances envoyées et consommation du tour.