View a markdown version of this page

Inicie uma recomendação imediata do sistema - Amazon Bedrock AgentCore

Inicie uma recomendação imediata do sistema

Inicie uma recomendação para gerar um prompt de sistema otimizado para seu agente. O serviço analisa rastreamentos de agentes, identifica padrões de falha e produz uma solicitação revisada do sistema que melhora o desempenho do avaliador alvo.

nota

As recomendações são geradas pelos LLMs. Revise e teste antes de aplicá-las.

Exemplos de código

exemplo
AgentCore CLI

A CLI aceita várias fontes de rastreamento e três modos de entrada de prompt do sistema. Combine-os conforme necessário:

  • Fontes de rastreamento: CloudWatch logs (--lookback), extensões em linha (--spans-file), uma execução de insights local (--from-insights <id>— usa uma execução de insights local como fonte de rastreamento; resolve o ARN de avaliação do lote) ou um ARN de avaliação do lote diretamente (— --batch-evaluation-arn <arn> usa um ARN de avaliação do lote diretamente como fonte de rastreamento)

  • Entrada de prompt do sistema: texto embutido (--inline), arquivo de prompt (--prompt-file) ou pacote de configuração () --bundle-name

  • Filtro opcional: IDs de sessão específicos (--session-id) para restringir quais traços são analisados

  • Criptografia opcional: uma chave KMS (--kms-key <arn>— ARN da chave KMS para criptografar os resultados das recomendações)

    Solicitação do sistema em linha com CloudWatch traços:

    agentcore run recommendation \ --type system-prompt \ --run my-prompt-rec \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --inline "You are a helpful customer support assistant. Help users with their orders and returns." \ --lookback 7 \ --wait

    run recommendationinicia um trabalho assíncrono e retorna somente a recommendationId e uma inicial PENDING ou status. IN_PROGRESS Adicione --wait ao bloco até que a recomendação atinja um estado terminal. Para recuperar o resultado concluído posteriormente, consulte Recuperar o resultado.

    Solicitação embutida do sistema a partir de um arquivo com CloudWatch traços:

    agentcore run recommendation \ --type system-prompt \ --run my-prompt-rec \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --prompt-file ./system-prompt.txt \ --lookback 7

    Prompt embutido do sistema com um arquivo de extensões:

    agentcore run recommendation \ --type system-prompt \ --run my-prompt-rec \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --inline "You are a helpful customer support assistant." \ --spans-file agent-traces.json

    Prompt embutido do sistema com IDs de sessão específicos:

    A CLI coleta extensões para a sessão especificada do lado do cliente e as passa como extensões embutidas.

    agentcore run recommendation \ --type system-prompt \ --run my-prompt-rec \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --inline "You are a helpful customer support assistant." \ --session-id <session-id-1> <session-id-2>

    Pacote de configuração com CloudWatch traços:

    A CLI resolve automaticamente o caminho JSON completo do objeto pai do ARN de tempo de execução do agente. configuration Você só precisa fornecer o nome da chave que contém o prompt do sistema.

    agentcore run recommendation \ --type system-prompt \ --run my-prompt-rec \ --runtime MyAgent \ --evaluator Builtin.GoalSuccessRate \ --bundle-name <bundle-name> \ --bundle-version <bundle-version> \ --system-prompt-json-path "system_prompt" \ --lookback 7

    Recupere o resultado:

    Use view recommendation com o ID do trabalho de recomendação para obter o resultado concluído. Adicione --json para obter uma saída legível por máquina contendo e. recommendedSystemPrompt explanation

    agentcore view recommendation <recommendation-id> --json
AWS SDK (boto3)

Texto embutido com CloudWatch traços:

import boto3 import json import uuid from datetime import datetime, timedelta, timezone client = boto3.client("bedrock-agentcore", region_name="us-west-2") now = datetime.now(timezone.utc) response = client.start_recommendation( name="my-prompt-rec", type="SYSTEM_PROMPT_RECOMMENDATION", recommendationConfig={ "systemPromptRecommendationConfig": { "systemPrompt": { "text": "You are a helpful customer support assistant. Help users with their orders and returns." }, "agentTraces": { "cloudwatchLogs": { "logGroupArns": [ "<log-group-arn>" ], "serviceNames": ["<service-name>"], "startTime": now - timedelta(days=7), "endTime": now, } }, "evaluationConfig": { "evaluators": [ {"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.GoalSuccessRate"} ] }, } }, clientToken=str(uuid.uuid4()), ) recommendation_id = response["recommendationId"] print(f"Started recommendation: {recommendation_id}") print(f"Status: {response['status']}")

Texto embutido com extensões embutidas:

with open("agent-traces.json") as f: spans = json.load(f) response = client.start_recommendation( name="my-prompt-rec-spans", type="SYSTEM_PROMPT_RECOMMENDATION", recommendationConfig={ "systemPromptRecommendationConfig": { "systemPrompt": { "text": "You are a helpful customer support assistant." }, "agentTraces": { "sessionSpans": spans }, "evaluationConfig": { "evaluators": [ {"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.GoalSuccessRate"} ] }, } }, clientToken=str(uuid.uuid4()), )

Pacote de configuração com CloudWatch traços:

response = client.start_recommendation( name="my-bundle-prompt-rec", type="SYSTEM_PROMPT_RECOMMENDATION", recommendationConfig={ "systemPromptRecommendationConfig": { "systemPrompt": { "configurationBundle": { "bundleArn": "<bundle-arn>", "versionId": "<bundle-version>", "systemPromptJsonPath": "$.configuration.system_prompt", } }, "agentTraces": { "cloudwatchLogs": { "logGroupArns": [ "<log-group-arn>" ], "serviceNames": ["<service-name>"], "startTime": now - timedelta(days=7), "endTime": now, } }, "evaluationConfig": { "evaluators": [ {"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.GoalSuccessRate"} ] }, } }, clientToken=str(uuid.uuid4()), )

Pacote de configuração com extensões em linha:

response = client.start_recommendation( name="my-bundle-prompt-rec-spans", type="SYSTEM_PROMPT_RECOMMENDATION", recommendationConfig={ "systemPromptRecommendationConfig": { "systemPrompt": { "configurationBundle": { "bundleArn": "<bundle-arn>", "versionId": "<bundle-version>", "systemPromptJsonPath": "$.configuration.system_prompt", } }, "agentTraces": { "sessionSpans": spans }, "evaluationConfig": { "evaluators": [ {"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.GoalSuccessRate"} ] }, } }, clientToken=str(uuid.uuid4()), )

Parâmetros de solicitação

Parâmetro Tipo Obrigatório Descrição

name

String

Sim

Um nome para a recomendação. Máximo de 48 caracteres. Padrão:[a-zA-Z][a-zA-Z0-9_-]{0,47}.

type

String

Sim

Deve ser SYSTEM_PROMPT_RECOMMENDATION.

recommendationConfig

Objeto

Sim

Contém systemPromptRecommendationConfig a configuração da recomendação.

description

String

Não

Descrição opcional. Máximo de 4096 caracteres.

clientToken

String

Não

Símbolo de idempotência. Se você repetir uma solicitação com o mesmo token de cliente, o serviço retornará a recomendação existente em vez de criar uma nova.

PromptRecommendationConfig campos do sistema

Campo Tipo Obrigatório Description

systemPrompt

Union

Sim

O sistema atual solicita a otimização. Forneça text (sequência de caracteres embutida, máximo de 20.000 caracteres) ou configurationBundle (referência do pacote).

agentTraces

Union

Sim

Fonte de rastreamento para análise. Consulte as fontes do Trace para obter recomendações.

evaluationConfig

Objeto

Sim

Configuração de avaliação especificando o avaliador alvo. Contém uma evaluators lista com exatamente uma referência de avaliador.

Escolhendo um avaliador

Selecione um avaliador alinhado com a direção que você deseja melhorar. O avaliador que você seleciona determina para o que a recomendação é otimizada; qualquer que seja a pontuação alta do avaliador, é o que o otimizador direciona para a solicitação.

Você pode usar um avaliador incorporado ou fornecer um ARN de avaliador personalizado. Use as diretrizes a seguir para escolher:

  • Se seu agente tem uma tarefa clara para concluir (reserva, recuperação, um fluxo de trabalho de várias etapas), esse Builtin.GoalSuccessRate é o sinal certo.

  • Se seu agente é mais aberto e você se preocupa com a qualidade da interação em si, Builtin.Helpfulness é a melhor opção.

  • Se a qualidade que lhe interessa for específica do domínio ou não for capturada por um avaliador integrado, use um avaliador personalizado para melhor representar a medição.

nota

As recomendações oferecem suporte a avaliadores integrados LLM-as-judge, personalizados e baseados em código, mas exigem que o avaliador retorne um valor numérico como sinal de otimização. Para LLM-as-judge avaliadores personalizados, configure o ratingScale com uma numerical escala (nãocategorical). Para avaliadores baseados em código, inclua o value campo no esquema de resposta.

Na API, especifique o avaliador na evaluationConfig.evaluators lista com exatamente uma referência de avaliador:

"evaluationConfig": { "evaluators": [ {"evaluatorArn": "arn:aws:bedrock-agentcore:::evaluator/Builtin.GoalSuccessRate"} ] }

Na CLI, use o sinalizador: --evaluator

--evaluator Builtin.GoalSuccessRate

Modos de entrada rápida do sistema

Modo Sinalizadores CLI Campo da API

Texto embutido

--inline "prompt text" ou --prompt-file ./path.txt

systemPrompt.text

Pacote de configuração

--bundle-name <bundle-name> + --bundle-version <bundle-version> + --system-prompt-json-path <path>

systemPrompt.configurationBundlecombundleArn,versionId, systemPromptJsonPath

Ao usar um pacote de configuração, o resultado inclui uma nova versão do pacote com o prompt otimizado do sistema aplicado.

Resposta

Campo Tipo Description

recommendationId

String

Identificador exclusivo da recomendação.

recommendationArn

String

ARN da recomendação.

name

String

O nome que você especificou.

type

String

SYSTEM_PROMPT_RECOMMENDATION.

status

String

Status inicial: PENDING ouIN_PROGRESS.

createdAt

Timestamp

Quando a recomendação foi criada.

updatedAt

Timestamp

Quando a recomendação foi atualizada pela última vez.

Resultado da recomendação

Quando a recomendação atinge o COMPLETED status (recuperado por meio de Obter uma recomendação), o resultado contém:

Campo Tipo Description

recommendedSystemPrompt

String

O texto otimizado do prompt do sistema.

configurationBundle

Objeto

Presente quando a entrada era um pacote de configuração. Contém bundleArn e versionId aponta para uma nova versão do pacote com o prompt otimizado aplicado.

explanation

String

Uma explicação do motivo pelo qual a recomendação foi gerada e o raciocínio por trás das mudanças sugeridas.

errorCode

String

Apresente se a recomendação falhar. Código de erro descrevendo a falha.

errorMessage

String

Apresente se a recomendação falhar. Human-readable descrição do erro.

Erros

Erro Status HTTP Description

ValidationException

400

Parâmetros de solicitação inválidos. Verifique as restrições de campo e os campos obrigatórios.

AccessDeniedException

403

Permissões insuficientes. Verifique as políticas do IAM.

ConflictException

409

Já existe uma recomendação com o mesmo token de cliente com parâmetros diferentes.

ServiceQuotaExceededException

402

Você excedeu o número máximo de recomendações simultâneas.

ThrottlingException

429

Taxa de solicitações excedida. Novas tentativas com recuo exponencial.

InternalServerException

500

Service-side erro. Repetir a solicitação .