Skip to main content
Utilisez cette recette lorsqu’un tour d’agent peut appeler sans risque plusieurs outils locaux indépendants et que vous souhaitez les exécuter en parallèle tout en préservant l’ordre déterministe des résultats.

Quand l’utiliser

Utilisez toolExecution.toolConcurrency lorsque :
  • le modèle peut appeler plusieurs outils locaux pendant un même tour
  • ces outils ne dépendent pas des résultats des autres
  • l’exécution séquentielle ferait perdre du temps aux workers
  • vous souhaitez conserver l’ordre d’origine des appels dans les messages de résultat enregistrés
Évitez une forte concurrence si un outil modifie un état partagé ou si les outils suivants dépendent des résultats précédents.

Exemple

Consultez la version fournie dans packages/sdk/agent-sdk-ts/examples/parallel-tool-agent.ts.

Garanties du runtime

  • les outils locaux peuvent s’exécuter en parallèle jusqu’à la limite toolConcurrency configurée
  • les événements tool.started et tool.completed continuent d’être émis pour chaque outil
  • les messages de résultat enregistrés conservent l’ordre d’origine des appels
  • un point de contrôle est toujours enregistré à la fin de la phase d’outils
  • le délai timeoutMs continue de s’appliquer à chaque outil

Conseils opérationnels

  • commencez par une faible valeur de concurrence, comme 2 ou 3
  • privilégiez des outils locaux idempotents et avec peu d’effets secondaires
  • utilisez timeoutMs pour qu’une dépendance bloquée ne monopolise pas tous les workers
  • n’ajoutez store que si votre application a réellement besoin de reprise ou de coordination distante

Validation

Après avoir activé ce modèle :
  • exécutez les tests de boucle d’agent qui couvrent les tours faisant appel à plusieurs outils
  • vérifiez que le workflow produit toujours les messages de résultat dans l’ordre
  • vérifiez que les journaux d’exploitation indiquent toujours les événements tool.started et tool.completed attendus
Dernière modification le 2 octobre 2026