Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer la télémétrie des agents Strands pour les évaluations AgentCore
Cette page explique comment instrumenter un agent
Rubriques
AgentCore Evaluations prend en charge les agents Strands créés avec le SDK Python et le TypeScript SDK. Les deux produisent les mêmes types d'étendue, les mêmes attributs d'identification et la même mise en page du contenu, sous des noms de portée différents, de sorte que le service d'évaluation les lit de la même manière. Cette page couvre chaque langage séparément : pour Python, voir le support des agents Python ; pour cela TypeScript, voir le support des TypeScript agents.
Support pour les agents Python
Un agent Python Strands produit des spans sous le nom strands.telemetry.tracer de scope.
Instrumentez votre agent
Le SDK Strands Agents inclut une télémétrie intégrée et ne nécessite aucune bibliothèque d'instrumentation supplémentaire. Il produit des spans et des enregistrements d'événements sous le nom strands.telemetry.tracer de scope. Lorsqu'il est déployé sur Amazon Bedrock AgentCore Runtime avec le AWS Distro for OpenTelemetry (ADOT), le Runtime injecte l'session.idattribut et exporte automatiquement les spans et les enregistrements d'événements.
Note
L'instrumentation est l'une des étapes de la mise en place de l'observabilité. Pour exporter la télémétrie à des fins d'évaluation, effectuez la configuration complète dans Configurer l'observabilité.
Comment les travées sont identifiées
Strands définit l'gen_ai.operation.nameattribut sur chaque travée. Le service d'évaluation utilise cet attribut pour classer les spans :
| Type d'envergure | Attribut d'identification | Exemple de nom de span |
|---|---|---|
|
Invoquer un agent |
|
|
|
Outil d'exécution |
|
|
|
Inférence |
|
|
Comment sont extraits les champs d'évaluation
L'emplacement du contenu de la conversation dépend du mode de diffusion de la télémétrie. Avec la télémétrie fractionnée, le contenu se trouve dans un enregistrement d'événement distinct. Grâce à la télémétrie unifiée, le contenu reste sur la plage, au fur et à mesure que les événements y sont associés. Pour plus d'informations, consultez la section Configuration et diffusion de la télémétrie. L'attribut d'identification (gen_ai.operation.name) se trouve sur la plage dans les deux modes.
À partir des enregistrements d'événements
Grâce à la télémétrie fractionnée, le service lit le contenu de l'enregistrement de l'événement en corrélation avec chaque intervalle :
-
Invite utilisateur : à partir des messages d'entrée de l'agent (
input.messages), le contenu du message avec un rôle utilisateur. -
Réponse de l'agent : à partir des messages de sortie de l'agent (
output.messages), le contenu du message avec un rôle d'assistant. -
Appel d'outil : nom de l'outil figurant dans l'
gen_ai.tool.nameattribut de l'étendue de l'outil d'exécution. Les arguments et le résultat de l'outil proviennent de l'enregistrement d'événements de cette plage (inputetoutput).
Pour plus d'informations, voir Exemples de plages dans la télémétrie fractionnée.
À partir d'événements de span en ligne
Grâce à la télémétrie unifiée, le même contenu est diffusé dans des événements de span en ligne au lieu d'un enregistrement d'événement distinct :
-
Invite utilisateur : depuis l'
gen_ai.user.messageévénement, l'contentattribut. -
Réponse de l'agent : depuis l'
gen_ai.choiceévénement, l'messageattribut. -
Appel d'outil : nom de l'outil indiqué dans l'
gen_ai.tool.nameattribut de la travée. Les arguments de l'outil proviennent de l'gen_ai.tool.messageévénement et le résultat provient de l'gen_ai.choiceévénement.
Pour plus d'informations, consultez la section Exemples de plages de télémétrie unifiée.
Exemples de plages dans la télémétrie fractionnée
Avec la télémétrie fractionnée, la plage contient les attributs d'identification et le contenu est enregistré dans un enregistrement d'événements corrélé. Les exemples suivants proviennent d'un agent de planification de voyages Python Strands déployé sur Amazon AgentCore Bedrock Runtime.
Note
Ces exemples ne constituent pas des séries complètes. Ils présentent des données représentatives provenant d'une interaction réelle entre agents, certains champs étant omis et les valeurs longues tronquées pour des raisons de lisibilité.
Exemple
Exemples de plages en télémétrie unifiée
Grâce à la télémétrie unifiée, le même contenu est diffusé dans des événements de plage en ligne sur la plage, sans enregistrement d'événement distinct. Les exemples suivants proviennent d'un agent de planification de voyages Python Strands.
Note
Ces exemples ne constituent pas des séries complètes. Ils présentent des données représentatives provenant d'une interaction réelle entre agents, certains champs étant omis et les valeurs longues tronquées pour des raisons de lisibilité.
Exemple
TypeScript assistance aux agents
Un agent TypeScript Strands produit des spans sous le nom strands-agents de scope. Il émet les mêmes types de span et la même disposition de contenu qu'un agent Python, de sorte que le service d'évaluation le lit de la même manière.
Instrumentez votre agent
Le SDK TypeScript Strands Agents (@strands-agents/sdk>= 1.5.0) inclut une télémétrie intégrée et ne nécessite aucune bibliothèque d'instrumentation supplémentaire. Lorsqu'il est déployé sur Amazon Bedrock AgentCore Runtime avec le AWS Distro for OpenTelemetry (ADOT), le Runtime injecte l'session.idattribut et exporte automatiquement les spans et les enregistrements d'événements. Le TypeScript SDK produit des spans sous le nom de scope. strands-agents
Note
L'instrumentation est l'une des étapes de la mise en place de l'observabilité. Pour exporter la télémétrie à des fins d'évaluation, effectuez la configuration complète dans Configurer l'observabilité.
Comment les travées sont identifiées
L'identification du span est la même que pour un agent Python. L'gen_ai.operation.nameattribut classe chaque étendue. Pour les valeurs et des exemples de noms de spans, voir Comment les spans sont identifiées dans le cadre du support Support pour les agents Python Python.
Comment sont extraits les champs d'évaluation
L'extraction de champs est la même que pour un agent Python. Le contenu de la conversation est diffusé dans des événements de span en ligne (gen_ai.user.messagegen_ai.choice, etgen_ai.tool.message). Pour savoir d'où chaque champ est lu, voir From inline span events sous support Support pour les agents Python Python.
Exemples de spans provenant d'un agent TypeScript
Les exemples suivants proviennent d'un agent de planification de voyages TypeScript Strands déployé sur Amazon AgentCore Bedrock Runtime.
Note
Ces exemples ne constituent pas des séries complètes. Ils présentent des données représentatives provenant d'une interaction réelle entre agents, certains champs étant omis et les valeurs longues tronquées pour des raisons de lisibilité.