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á.
Suporte de estrutura genérica
O Amazon Bedrock AgentCore Evaluations lê a telemetria por meio de dois padrões abertos: as convenções semânticas OpenTelemetry generativas da IA e as convenções semânticas. OpenInference Além das estruturas que têm sua própria página nesta seção, o serviço oferece suporte a qualquer agente que emita telemetria em uma dessas duas convenções. Este é um suporte genérico à estrutura.
Use o suporte genérico à estrutura ao criar com uma estrutura que não tenha nenhuma página nesta seção ou ao escrever sua própria instrumentação para um agente personalizado. Configure sua instrumentação para emitir o nome do escopo, os atributos de abrangência e os atributos de identificação descritos nesta página, e o serviço identificará suas extensões e extrairá os valores de que os avaliadores precisam, usando a mesma classificação de extensão e extração de campo das estruturas nomeadas.
Como as estruturas de dados da sua estrutura não são conhecidas de antemão, o serviço extrai cada valor como uma string em vez de analisá-lo em uma estrutura específica da estrutura. Mantenha solicitações, respostas e argumentos da ferramenta nos atributos listados em Como os campos de avaliação são extraídos, em vez de agrupados em sua própria estrutura, como um objeto de solicitação aninhado ou um envelope de mensagem personalizado, para que os avaliadores recebam valores claros.
Tópicos
Convenções suportadas
O serviço seleciona como ler cada intervalo do scope.name intervalo. Defina o nome do escopo da sua instrumentação com um dos seguintes prefixos e o serviço lerá a extensão com a convenção correspondente:
| Convenção | Prefixo do nome do escopo |
|---|---|
|
OpenTelemetry |
|
|
OpenInference |
|
Se um escopo tiver uma página própria nesta seção, o serviço usará o tratamento descrito nessa página. O suporte genérico à estrutura se aplica a todos os outros escopos que correspondam a um desses prefixos.
Alguns escopos correspondem aos OpenTelemetry prefixos, mas não são estruturas de agentes GenAI. São instrumentação de transporte e infraestrutura, como clientes HTTP (,,) httpxurllib3, estruturas da web (urllibstarlette,aiohttp_client), instrumentação do Model Context Protocol (MCP) e instrumentação AWS SDK (botocore), incluindo seus escopos e. fastapi bedrock-agentcore bedrock-runtime O serviço exclui esses escopos do suporte de estrutura genérica para que suas extensões não produzam extensões espúrias de agentes, ferramentas ou inferências.
Como os intervalos são identificados
O serviço classifica cada intervalo em um dos três tipos usando o atributo de identificação padrão para sua convenção. Defina esse atributo em cada intervalo que você deseja avaliar. Seu valor informa ao serviço o que o intervalo representa, e o serviço o lê a partir do próprio intervalo, independentemente de onde o conteúdo da conversa esteja armazenado.
exemplo
Como os campos de avaliação são extraídos
Para cada período classificado, o serviço lê os valores necessários, como a solicitação do usuário, a resposta do agente e as entradas e saídas da ferramenta. Assim como nas estruturas nomeadas, a localização do conteúdo da conversa depende do modo de entrega da telemetria. Com a telemetria dividida, o conteúdo fica no registro do evento correlacionado. Com a telemetria unificada, ela permanece no espaço como atributos. Para obter mais informações, consulte Configuração e entrega de telemetria.
O serviço tenta vários locais para cada campo e usa o primeiro que contém um valor, para que você possa emitir qualquer atributo que sua instrumentação já defina. Cada valor extraído é stringificado em vez de analisado em uma estrutura específica da estrutura.
OpenTelemetry convenção
Para estruturas que usam a OpenTelemetry convenção, o serviço lê cada campo dos seguintes locais, na ordem:
-
Solicitação do usuário (invocar o intervalo do agente): do registro do evento
body.input; depois, do atributogen_ai.task.inputspan. -
Resposta do agente (invocar o intervalo do agente): do registro do evento
body.output; depois, do atributogen_ai.task.outputspan. Se nenhuma delas estiver presente, o serviço retornará à primeira mensagem do usuário e à última mensagem do assistente coletada dos períodos de inferência do rastreamento. -
Mensagens de inferência (intervalo de inferência): do registro do evento
body.input.messagesebody.output.messages; depois dos atributosgen_ai.input.messagesegen_ai.output.messagesspan. -
Nome da ferramenta (execute tool span): do atributo
gen_ai.tool.namespan; depois do atributotraceloop.entity.namespan. -
Argumentos da ferramenta (execute tool span): do atributo
gen_ai.tool.call.argumentsspan; depois do registro do eventobody.input; depois do atributotraceloop.entity.inputspan. -
Resultado da ferramenta (executar extensão da ferramenta): do atributo
gen_ai.tool.call.resultspan; depois do registro do eventobody.output; depois do atributotraceloop.entity.outputspan. -
Solicitação do sistema (intervalo de inferência): do atributo
gen_ai.system_instructionsspan.
OpenInference convenção
Para estruturas que usam a OpenInference convenção, o serviço lê cada campo dos seguintes locais, na ordem:
-
Solicitação do usuário (invocar span do agente): a partir do atributo
input.valuespan; depois, da entrada do corpo do registro do evento. -
Resposta do agente (invocar o intervalo do agente): do atributo
output.valuespan; depois, da saída do corpo do registro do evento. -
Mensagens de inferência (intervalo de inferência): dos atributos da OpenInference mensagem do intervalo (por exemplo,
llm.input_messages.*ellm.output_messages.*); depois deinput.valueeoutput.value; depois do corpo do registro do evento. -
Argumentos da ferramenta (execute tool span): do atributo
input.valuespan; depois da entrada do corpo do registro do evento. -
Resultado da ferramenta (executar extensão da ferramenta): do atributo
output.valuespan; depois da saída do corpo do registro do evento. -
Solicitação do sistema (intervalo de inferência): a partir dos atributos do intervalo de inferência; depois, do corpo do registro do evento.
-
Ferramentas disponíveis: a partir dos atributos de definição de ferramenta do intervalo de inferência (
llm.tools.*); em seguida, analisadas a partir da solicitação serializada no corpo do registro do evento ou.input.value
Requisitos de configuração
Para ser avaliado com suporte de estrutura genérica, configure sua instrumentação da seguinte forma:
-
Use um nome de escopo reconhecido. Emita extensões com um nome de escopo que começa com
opentelemetry.instrumentation.*ou.openinference.instrumentation.*O serviço lê somente esses prefixos com suporte genérico à estrutura. -
Defina um atributo de identificação em cada intervalo.
gen_ai.operation.nameDefinido outraceloop.span.kindpara a OpenTelemetry convenção, ouopeninference.span.kindpara a OpenInference convenção. O serviço ignora um intervalo que não contém nenhum atributo de identificação reconhecido. -
Coloque o conteúdo nos atributos documentados. Defina os atributos de solicitação, resposta e ferramenta listados em Como os campos de avaliação são extraídos. Se você agrupar esses valores em sua própria estrutura, o valor extraído incluirá essa estrutura circundante, porque o serviço sequenciará o conteúdo em vez de analisar o modelo de dados da sua estrutura.
Se você não conseguir definir os atributos da convenção, ainda poderá avaliar a vez do agente de nível superior. Defina os atributos agentcore.invocation.user_prompt e agentcore.invocation.agent_response span, que o AgentCore SDK também emite. O serviço lê esses atributos de qualquer escopo e eles abrangem apenas a solicitação e a resposta do agente, não a inferência ou a abrangência de ferramentas.