nameRequis
string
Nom d’outil unique de 1 à 64 lettres, chiffres, tirets bas ou tirets, présenté au modèle.
descriptionRequis
string
Explication non vide que le modèle lit pour décider quand et comment appeler l’outil.
inputRequis
Readonly<Record<string, unknown>> | StandardJsonSchema<Input>
Schéma d’entrée : un objet JSON Schema contrôlé par le sous-ensemble intégré (type, properties, required, additionalProperties, items, enum, const et bornes de longueur, de valeur et de nombre d’éléments), ou un Standard Schema qui exporte du JSON Schema, comme Zod 4. Les autres mots-clés sont refusés à la définition.
readOnlyOptionnel
boolean | undefined
Marque un outil sans effet de bord, false par défaut. Les appels en lecture seule peuvent s’exécuter en parallèle, et les tours de réparation d’une réponse ne gardent que les outils en lecture seule.
resourcesOptionnel
((input: Input) => ToolResources) | undefined
Décrit les chemins et la commande d’une entrée validée pour que les règles de permission puissent les comparer. Un outil sans cette fonction n’est comparé que par son nom.
executeRequis
(input: Input, context: HarnessToolContext) => ToolOutput | Promise<ToolOutput>
Exécute l’appel avec l’entrée validée et son contexte, et renvoie du texte ou { content, isError }. Une exception est traitée selon toolExecution.onError ; les résultats de plus de 100000 caractères sont coupés avant d’atteindre le modèle.