View a markdown version of this page

Inicie uma recomendação imediata do sistema - Base da Amazônia AgentCore

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á.

Inicie uma recomendação imediata do sistema

Comece uma recomendação para gerar uma solicitação de sistema otimizada para seu agente. O serviço analisa os rastros do agente, 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á-los.

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 de lote diretamente (--batch-evaluation-arn <arn>— usa um ARN de avaliação de lote diretamente como fonte de rastreamento)

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

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

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

    Prompt de 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 uma 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 completo 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 de sistema em linha 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 de sistema em linha com IDs de sessão específicos:

    A CLI coleta extensões para a sessão especificada do lado do cliente e as transmite 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 do 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 recomendado para obter o resultado completo. 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 com 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ê tentar novamente 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 aviso atual do sistema para otimizar. Forneça text (string embutida, máximo de 20.000 caracteres) ou configurationBundle (referência do pacote).

agentTraces

Union

Sim

Fonte de rastreamento para análise. Consulte Trace sources 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 do avaliador.

Escolhendo um avaliador

Selecione um avaliador alinhado com a direção que você deseja melhorar. O avaliador que você seleciona determina para que a recomendação é otimizada; qualquer que seja a pontuação alta do avaliador é o que o otimizador busca na 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 a ser concluída (reserva, recuperação, fluxo de trabalho com 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 incorporado, 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. 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 --evaluator sinalizador:

--evaluator Builtin.GoalSuccessRate

Modos de entrada de aviso 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 (recuperada por meio de Obter uma recomendação), o resultado contém:

Campo Tipo Description

recommendedSystemPrompt

String

O texto de aviso otimizado 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

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

errorMessage

String

Presente 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 .