Kit de développement logiciel Claude Agent
Cette page explique comment instrumenter un agent du SDK Claude Agent
Rubriques
Instrumez votre agent
Vous pouvez instrumenter un agent du SDK Claude Agent à l'aide de la bibliothèque OpenInferenced'instrumentation (openinference-instrumentation-claude-agent-sdk). Cette bibliothèque émet des données télémétriques sous le nom de scope, qu'Amazon openinference.instrumentation.claude_agent_sdk AgentCore Bedrock Evaluations lit.
Lorsque votre agent s'exécute avec le AWS Distro for OpenTelemetry (ADOT), par exemple sur Amazon Bedrock AgentCore Runtime, vous n'avez pas besoin d'ajouter de code d'instrumentation explicite. Il suffit d'ajouter la bibliothèque d'instrumentation aux dépendances de votre projet. ADOT le découvre au démarrage et l'active automatiquement.
Ajoutez la bibliothèque d'instrumentation à vos dépendances.
Note
Utilisez la version 0.1.3 ou une version ultérieure. Il s'agit de la première version testée avec le service d'évaluation.
requirements.txt:
openinference-instrumentation-claude-agent-sdk>=0.1.3
pyproject.toml:
[project] dependencies = [ "openinference-instrumentation-claude-agent-sdk>=0.1.3", ]
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
Le SDK Claude Agent est doté de cette OpenInference convention. AgentCore Evaluations classe donc les intervalles à l'aide de cet attribut. openinference.span.kind
| Type de travée | Attribut d'identification |
|---|---|
|
Invoquer l'agent |
|
|
Exécuter l'outil |
|
Le SDK Claude Agent émet uniquement AGENT et s'TOOLétend ; il n'émet pas de plages d'inférence () distinctes. LLM Les métadonnées du modèle (nom du modèle, utilisation du jeton) et la réponse de l'agent sont répercutées sur le AGENT span lui-même.
Comment les champs d'évaluation sont extraits
Le SDK Claude Agent produit des entrées et des sorties d'agent en texte clair et épuré, de sorte que l'invite de l'utilisateur et la réponse de l'agent ne nécessitent aucune analyse spéciale. Les résultats de l'outil arrivent toutefois sous forme de blocs de contenu anthropique dans le formulaire[{"type": "text", "text": "…"}]. AgentCore Evaluations déballe ces blocs et concatène leur texte.
L'emplacement de ce contenu dépend de la manière dont la télémétrie a été collectée. L'attribut d'identification (openinference.span.kind) se trouve sur le span dans les deux cas. Pour plus d'informations, voir Spans, enregistrements d'événements et signaux de télémétrie.
À partir des enregistrements d'événements
Lorsque la télémétrie est divisée, AgentCore Evaluations lit le contenu de l'enregistrement d'événements corrélé à chaque période :
-
Demande de l'utilisateur et réponse de l'agent : à partir de l'enregistrement des événements de l'intervalle d'appel de l'agent, dans
body.inputetbody.output. -
Appel à l'outil : le nom de l'outil indiqué dans l'
tool.nameattribut et l'ID de l'appel à l'outil à partir detool.idl'intervalle d'exécution de l'outil. Les arguments et le résultat de l'outil proviennent de l'enregistrement des événements de cette plage, dansbody.inputetbody.output. AgentCore Les évaluations dévoilent les blocs de contenu Anthropic dans le résultat de l'outil.
Pour des exemples, voir Exemples de périodes avec enregistrements d'événements.
À partir des attributs span
Lorsque la télémétrie n'est pas divisée, le même contenu reste sur la plage que les attributs :
-
Demande de l'utilisateur et réponse de l'agent : depuis
input.valueetoutput.valuependant la durée d'appel de l'agent. -
Appel d'outil : le nom de l'outil depuis
tool.name, l'ID de l'appel d'outil depuistool.id, les arguments depuisinput.valueet le résultat deoutput.value, sur la durée d'exécution de l'outil. AgentCore Les évaluations dévoilent les blocs de contenu Anthropic dans le résultat de l'outil.
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 voyage du SDK Claude Agent déployé sur Amazon Bedrock Runtime. AgentCore
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 reste dans les attributs span et aucun enregistrement d'événement distinct n'est produit. Les exemples suivants proviennent d'un agent de planification de voyages du SDK Claude Agent.
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é.