| Outils exécutables et simultanés | Intégrés, avec ordre déterministe des résultats et délai d’attente par outil |
| Validation à l’exécution | Schémas d’entrée, de sortie, d’événement et de résultat final via parse, safeParse ou des fonctions de validation |
| Approbation humaine | Par outil ou appel, avec validation par ID d’appel exact et rejet lors de la reprise |
| Outils avec intervention humaine | Mise en pause avec onToolCalled et transformation avec onResponseReceived |
| Outils manuels | execute: false avec toolOutputs fourni de l’extérieur |
| Outils produisant une progression | Outils générateurs asynchrones et événements tool.preliminary_result |
| Récupération après une erreur d’outil | Échec de l’exécution ou renvoi d’une erreur d’outil structurée au modèle |
| Streaming | Différentiels du modèle et consommateurs rejouables pour le texte, le raisonnement, les éléments, les outils et tous les événements |
| Contrôles d’arrêt | Étapes, durée, jetons, coût, appels d’outils, motif de fin et prédicats personnalisés |
| Tours dynamiques | Modèle, instructions, valeurs d’échantillonnage, ensembles d’outils, modification du contexte et nextTurnParams dynamiques |
| Reprise durable | Résultats d’exécution sérialisables ou accesseur state dont le chargement et l’enregistrement sont gérés par l’application |
| Observabilité | Données normalisées sur l’utilisation et le coût, avertissements, motifs de fin, résultats d’étapes, événements de cycle de vie et outils de développement locaux |