Skip to main content

Outils locaux

Utilisez Tool::new(...) lorsque le processus Rust peut effectuer l’opération :
La valeur de parameters est envoyée au modèle au format JSON Schema. Les entrées et sorties d’outil sont des serde_json::Value ; validez les arguments non fiables dans l’exécuteur si vous avez besoin de garanties d’exécution plus strictes.

Outils soumis à approbation

Ajoutez require_approval() pour suspendre l’exécution avant d’effectuer l’opération :
Lorsque le modèle appelle cet outil, l’exécution renvoie run.status == "waiting_for_human" et run.pause.kind == "tool_approval". Reprenez avec l’identifiant exact de l’appel :
L’API Rust 0.1 ne fournit pas de type de refus distinct. Laissez les appels non approuvés en pause ou appliquez la politique de refus de votre application avant de reprendre.

Outils externes

Utilisez Tool::external(...) lorsqu’un autre processus effectue l’opération :
Le type de pause est external_output lorsque chaque appel en attente nécessite un résultat externe. Fournissez chaque résultat avec l’identifiant de l’appel :
Si un tour du modèle combine des outils automatiques et des appels en attente, l’environnement d’exécution exécute les outils automatiques avant de renvoyer la pause.

Erreurs d’outil

Un AgentError renvoyé par un exécuteur local devient un message d’erreur d’outil structuré, puis est transmis au modèle. Un nom d’outil inconnu ou l’absence d’approbation ou de sortie fait échouer la reprise avec AgentError.

Pour aller plus loin

Dernière modification le 2 octobre 2026