Instrumenter les appels d'outils et de modèles
Utilisez cette compétence quand une application dispose déjà de fonctions d'outils ou d'appels de modèle/fournisseur et qu'elle doit les exécuter correctement via NeMo Relay. Conservez le comportement callable d'origine stable tout en ajoutant la capture du cycle de vie Relay.
Orientation par défaut
- Définissez une portée autour de la limite naturelle de l'agent, de la requête, du flux de travail ou du graphe.
- Utilisez d'abord les API d'exécution gérées :
- Rust :
tool_call_execute(ToolCallExecuteParams::builder()...),llm_call_execute(LlmCallExecuteParams::builder()...) - Python :
tools.execute(...),llm.execute(...) - Node.js :
toolCallExecute(...),llmCallExecute(...) - Go :
tools.Execute(...),llm.Execute(...)ou les wrappers de niveau supérieur
- Rust :
- Utilisez les API du cycle de vie manuel uniquement quand le framework hôte ne peut pas être enveloppé par les assistants d'exécution gérés.
Sémantique du runtime intégré
- L'exécution d'outils et de modèles gérée exécute d'abord les garde-fous d'exécution conditionnelle sur l'entrée brute. En cas de rejet, le runtime émet un événement mark autonome et n'exécute ni les interceptions de requête ni le callable.
- Les interceptions de requête s'exécutent après les garde-fous conditionnels et réécrivent l'entrée réelle qui atteint les interceptions d'exécution et le callback.
- Les garde-fous de sanitisation de requête affectent uniquement les charges utiles d'événement de démarrage émises. Ils ne réécrivent ni la requête visible par l'appelant ni les arguments.
- Les interceptions d'exécution enveloppent le callback avec le modèle de middleware
nextet peuvent court-circuiter en renvoyant leur propre résultat. - Les garde-fous de sanitisation de réponse affectent uniquement les charges utiles d'événement de fin émises. La valeur renvoyée au code applicatif reste le résultat brut du callback ou de l'interception d'exécution.
- Si l'exécution échoue après que l'événement de démarrage a été émis, le runtime émet toujours un événement de fin sans charge utile de sortie sémantique.
- Les appels d'outils sont des opérations nommées avec des arguments et des résultats compatibles JSON. Conservez le callable d'outil d'origine responsable de la logique métier ; laissez NeMo Relay posséder les événements du cycle de vie, le middleware et les métadonnées.
- Les appels de modèle utilisent une
LLMRequestcomposée de métadonnées et de contenu. Passez les noms de modèles et les identifiants d'appel stables quand ils importent pour l'export de trace ou les diagnostiques. - Les API du cycle de vie manuel sont pour les adaptateurs de framework qui possèdent déjà l'exécution. Si vous les utilisez, chaque appel de démarrage a besoin d'un chemin de fin ou d'erreur correspondant avec les charges utiles sémantiques fournies explicitement.
- Les API de middleware partielles telles que
request_intercepts(...)etconditional_execution(...)sont pour les adaptateurs avancés qui ont besoin d'une famille de middleware avant d'appeler manuellement un fournisseur. - Les wrappers LLM en streaming collectent des chunks et finalisent une réponse à la fin du stream ; interrompre prématurément le stream peut empêcher les finaliseurs et les abonnés de voir une sortie complète.
Liste de vérification
- [ ] Limite de portée choisie avant le premier appel d'outil ou de modèle
- [ ] Fonction d'outil existante enveloppée sans perdre ses arguments/résultat d'origine
- [ ] Appel de modèle/fournisseur existant enveloppé au bon niveau d'abstraction
- [ ] Métadonnées optionnelles, attributs ou nom de modèle attachés si utile
- [ ] Propagation de contexte gérée si l'appel passe entre threads ou tâches async
Utiliser une autre compétence quand
Choisissez une autre compétence quand la tâche demande un flux de travail adjacent :
- Utilisez
nemo-relay-plugin-observabilitypour les traces, ATIF ou la configuration d'export. - Utilisez
nemo-relay-debug-runtime-integrationpour déboguer les événements manquants ou les défaillances de chargement. - Utilisez
nemo-relay-instrument-context-isolationpour l'isolation par requête ou les conseils de pool de workers. - Utilisez
nemo-relay-plugin-buildpour le comportement du runtime réutilisable et activé par configuration.
Compétences associées
Utilisez ces compétences pour les flux de travail adjacents :
- Commencez l'intégration avec
nemo-relay-get-started. - Ajoutez des wrappers typés avec
nemo-relay-instrument-typed-wrappers. - Configurez l'export avec
nemo-relay-plugin-observability. - Packagisez le comportement réutilisable avec
nemo-relay-plugin-build.