As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Configurar a telemetria do Strands Agents para avaliações AgentCore
Esta página explica como instrumentar um agente
Tópicos
AgentCore As avaliações oferecem suporte aos agentes Strands criados com o SDK e o SDK do Python. TypeScript Os dois produzem os mesmos tipos de extensão, atributos de identificação e layout de conteúdo, sob nomes de escopo diferentes, de modo que o serviço de avaliação os lê da mesma forma. Esta página aborda cada linguagem separadamente: para Python, consulte o suporte do agente Python; para TypeScript, consulte o suporte do TypeScript agente.
Suporte a agentes Python
Um agente Python Strands produz extensões sob o nome do escopo. strands.telemetry.tracer
Instrumente seu agente
O SDK do Strands Agents inclui telemetria integrada e não requer nenhuma biblioteca de instrumentação adicional. Ele produz períodos e registros de eventos sob o nome strands.telemetry.tracer do escopo. Quando implantado no Amazon Bedrock AgentCore Runtime com o AWS Distro for OpenTelemetry (ADOT), o Runtime injeta o session.id atributo e exporta períodos e registros de eventos automaticamente.
nota
A instrumentação é uma etapa na configuração da observabilidade. Para exportar a telemetria para avaliação, conclua a configuração completa em Configurar observabilidade.
Como os intervalos são identificados
Strands define o gen_ai.operation.name atributo em cada extensão. O serviço de avaliação usa esse atributo para classificar extensões:
| Tipo de extensão | Atributo de identificação | Exemplo de nome de extensão |
|---|---|---|
|
Invoque o agente |
|
|
|
Ferramenta de execução |
|
|
|
Inferência |
|
|
Como os campos de avaliação são extraídos
A localização do conteúdo da conversa depende do modo de entrega da telemetria. Com a telemetria dividida, o conteúdo está em um registro de evento separado. Com a telemetria unificada, o conteúdo permanece no espaço, como eventos anexados a ele. Para obter mais informações, consulte Configuração e entrega de telemetria. O atributo de identificação (gen_ai.operation.name) está na extensão em ambos os modos.
De registros de eventos
Com a telemetria dividida, o serviço lê o conteúdo do registro do evento correlacionado a cada período:
-
Solicitação do usuário: a partir das mensagens de entrada do agente (
input.messages), o conteúdo da mensagem com uma função de usuário. -
Resposta do agente: das mensagens de saída do agente (
output.messages), o conteúdo da mensagem com uma função de assistente. -
Chamada de ferramenta: o nome da ferramenta a partir do
gen_ai.tool.nameatributo na extensão da ferramenta de execução. Os argumentos e resultados da ferramenta vêm do registro de eventos desse intervalo (inputeoutput).
Para obter mais informações, consulte Exemplos de extensões em telemetria dividida.
De eventos de expansão em linha
Com a telemetria unificada, o mesmo conteúdo é transportado em eventos de abrangência em linha, em vez de um registro de evento separado:
-
Solicitação do usuário: do
gen_ai.user.messageevento, ocontentatributo. -
Resposta do agente: do
gen_ai.choiceevento, omessageatributo. -
Chamada de ferramenta: o nome da ferramenta do
gen_ai.tool.nameatributo no vão. Os argumentos da ferramenta vêm dogen_ai.tool.messageevento e o resultado vem dogen_ai.choiceevento.
Para obter mais informações, consulte Exemplos de extensões em telemetria unificada.
Exemplos de extensões em telemetria dividida
Com a telemetria dividida, o intervalo carrega os atributos de identificação e o conteúdo fica em um registro de evento correlacionado. Os exemplos a seguir são de um agente de planejamento de viagens da Python Strands implantado no Amazon Bedrock Runtime. AgentCore
nota
Esses exemplos não são extensões completas. Eles mostram dados representativos de uma interação real do agente, com alguns campos omitidos e valores longos truncados para facilitar a leitura.
exemplo
Expansões de exemplo em telemetria unificada
Com a telemetria unificada, o mesmo conteúdo é transportado em eventos de abrangência em linha na extensão, sem registro de eventos separado. Os exemplos a seguir são de um agente de planejamento de viagens da Python Strands.
nota
Esses exemplos não são extensões completas. Eles mostram dados representativos de uma interação real do agente, com alguns campos omitidos e valores longos truncados para facilitar a leitura.
exemplo
TypeScript suporte de agentes
Um agente TypeScript Strands produz extensões sob o nome strands-agents do escopo. Ele emite os mesmos tipos de extensão e layout de conteúdo de um agente Python, então o serviço de avaliação o lê da mesma forma.
Instrumente seu agente
O TypeScript Strands Agents SDK (@strands-agents/sdk>= 1.5.0) inclui telemetria integrada e não requer nenhuma biblioteca de instrumentação adicional. Quando implantado no Amazon Bedrock AgentCore Runtime com o AWS Distro for OpenTelemetry (ADOT), o Runtime injeta o session.id atributo e exporta períodos e registros de eventos automaticamente. O TypeScript SDK produz extensões sob o nome do escopo. strands-agents
nota
A instrumentação é uma etapa na configuração da observabilidade. Para exportar a telemetria para avaliação, conclua a configuração completa em Configurar observabilidade.
Como os intervalos são identificados
A identificação do Span é a mesma de um agente Python. O gen_ai.operation.name atributo classifica cada intervalo. Para ver os valores e exemplos de nomes de extensões, consulte Como as extensões são identificadas sob o suporte do Python.
Como os campos de avaliação são extraídos
A extração de campo é igual à de um agente Python. O conteúdo da conversa é veiculado em eventos de abrangência em linha (gen_ai.user.messagegen_ai.choice, egen_ai.tool.message). Para saber de onde cada campo é lido, consulte From inline span events sob suporte a Python.
Exemplos de períodos de um agente TypeScript
Os exemplos a seguir são de um agente de planejamento de viagens da TypeScript Strands implantado no Amazon Bedrock Runtime. AgentCore
nota
Esses exemplos não são extensões completas. Eles mostram dados representativos de uma interação real do agente, com alguns campos omitidos e valores longos truncados para facilitar a leitura.