Agents à mèches
Cette page explique comment instrumenter un agent Strands Agents
Rubriques
Instrumez votre agent
Le SDK Strands Agents inclut la télémétrie intégrée et ne nécessite aucune bibliothèque d'instrumentation supplémentaire. Il produit des intervalles 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 intervalles 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 intervalle. Le service d'évaluation utilise cet attribut pour classer les intervalles :
| Type de travée | Attribut d'identification | Exemple de nom d'intervalle |
|---|---|---|
|
Invoquer l'agent |
|
|
|
Exécuter l'outil |
|
|
|
Inférence |
|
|
Comment les champs d'évaluation sont extraits
L'emplacement du contenu de la conversation dépend de la manière dont la télémétrie a été collectée. Lorsque ADOT divise la télémétrie, le contenu se trouve dans un enregistrement d'événement distinct. Lorsque la télémétrie n'est pas divisée, le contenu reste sur la plage sous forme d'événements intégrés. Pour plus d'informations, voir Spans, enregistrements d'événements et signaux de télémétrie. L'attribut d'identification (gen_ai.operation.name) se trouve sur le span dans les deux cas.
À partir des enregistrements d'événements
Lorsque la télémétrie est divisée, le service lit le contenu de l'enregistrement d'événements corrélé à chaque intervalle :
-
Demande utilisateur : à partir des messages saisis par l'agent (
input.messages), le contenu du message avec un rôle d'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 à l'outil : nom de l'outil indiqué dans l'
gen_ai.tool.nameattribut figurant sur la plage d'outils d'exécution. Les arguments et le résultat de l'outil proviennent de l'enregistrement des événements de cette plage (inputetoutput).
Pour des exemples, voir Exemples de périodes avec enregistrements d'événements.
À partir d'événements inline span
Lorsque la télémétrie n'est pas divisée, le même contenu est diffusé dans des événements d'envergure intégrés au lieu d'un enregistrement d'événement distinct :
-
Demande utilisateur : depuis l'
gen_ai.user.messageévénement, l'contentattribut. -
Réponse de l'agent : à partir de l'
gen_ai.choiceévénement, de l'messageattribut. -
Appel à l'outil : nom de l'outil indiqué dans l'
gen_ai.tool.nameattribut figurant sur le span. 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 des exemples, voir Exemples de périodes sans enregistrement d'événements.
Exemples de périodes avec des enregistrements d'événements
Lorsque la télémétrie est divisé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 Strands déployé sur Amazon AgentCore Bedrock Runtime.
Note
Ces exemples ne sont pas des étendues complètes. Ils présentent des données représentatives d'une interaction réelle avec un agent, certains champs étant omis et les valeurs longues tronquées pour des raisons de lisibilité.
Exemple
Exemples de périodes sans enregistrement d'événements
Lorsque la télémétrie n'est pas divisée, le même contenu est diffusé dans les événements d'intervalle intégrés sur le span, sans enregistrement d'événement distinct. Les exemples suivants proviennent d'un agent de planification de voyages Strands.
Note
Ces exemples ne sont pas des étendues complètes. Ils présentent des données représentatives d'une interaction réelle avec un agent, certains champs étant omis et les valeurs longues tronquées pour des raisons de lisibilité.