View a markdown version of this page

Lancer une recommandation rapide sur le système - Amazon Bedrock AgentCore

Lancer une recommandation rapide sur le système

Lancez une recommandation afin de générer une invite système optimisée pour votre agent. Le service analyse les traces des agents, identifie les modèles de défaillance et produit une invite système révisée qui améliore les performances de l'évaluateur cible.

Note

Les recommandations sont générées par les LLM. Révisez-les et testez-les avant de les appliquer.

Exemples de code

Exemple
AgentCore CLI

La CLI accepte plusieurs sources de suivi et trois modes de saisie rapide du système. Combinez-les selon vos besoins :

  • Sources de suivi : CloudWatch logs (--lookback), spans intégrés (--spans-file), exécution d'analyses locales (--from-insights <id>— utilise une analyse d'informations locale comme source de trace ; résout l'ARN d'évaluation par lots) ou ARN d'évaluation par lots directement (--batch-evaluation-arn <arn>— utilise un ARN d'évaluation par lots directement comme source de trace)

  • Entrée d'invite du système : texte en ligne (--inline), fichier d'invite (--prompt-file) ou bundle de configuration (--bundle-name)

  • Filtre optionnel : identifiants de session spécifiques (--session-id) pour affiner les traces analysées

  • Chiffrement facultatif : clé KMS (--kms-key <arn>— ARN de la clé KMS pour chiffrer les résultats des recommandations)

    Invite du système en ligne avec CloudWatch traces :

    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 recommendationdémarre une tâche asynchrone et renvoie uniquement un recommendationId et une initiale PENDING ou IN_PROGRESS un statut. Ajouter --wait au bloc jusqu'à ce que la recommandation atteigne un état terminal. Pour récupérer le résultat complet ultérieurement, voir Extraire le résultat.

    Invite système intégrée à partir d'un fichier contenant des CloudWatch traces :

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

    Invite système intégrée avec un fichier Spans :

    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

    Invite système intégrée avec des identifiants de session spécifiques :

    La CLI collecte les intervalles pour la session spécifiée côté client et les transmet sous forme d'intervalles intégrés.

    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>

    Ensemble de configuration avec CloudWatch traces :

    La CLI résout automatiquement le chemin JSON complet à partir de l'objet configuration parent de l'ARN d'exécution de l'agent. Il vous suffit de fournir le nom de clé qui contient l'invite du système.

    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

    Récupérez le résultat :

    view recommendationÀ utiliser avec l'ID de tâche de recommandation pour récupérer le résultat final. Ajoutez --json pour une sortie lisible par machine contenant recommendedSystemPrompt et. explanation

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

Texte en ligne avec CloudWatch traces :

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']}")

Texte intégré avec des intervalles en ligne :

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()), )

Ensemble de configuration avec CloudWatch traces :

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()), )

Ensemble de configuration avec plages intégrées :

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()), )

Paramètres de demande

Paramètre Type Obligatoire Description

name

String

Oui

Nom de la recommandation. 48 caractères maximum. Motif :[a-zA-Z][a-zA-Z0-9_-]{0,47}.

type

String

Oui

Doit indiquer SYSTEM_PROMPT_RECOMMENDATION.

recommendationConfig

Objet

Oui

Contient systemPromptRecommendationConfig la configuration de la recommandation.

description

String

Non

Description facultative. 4096 caractères maximum.

clientToken

String

Non

Jeton d'impuissance. Si vous réessayez une demande avec le même jeton client, le service renvoie la recommandation existante au lieu d'en créer une nouvelle.

PromptRecommendationConfig champs du système

Champ Type Obligatoire Description

systemPrompt

Union

Oui

Le système actuel vous invite à optimiser. Indiquez soit text (chaîne en ligne, maximum 20 000 caractères), soit configurationBundle (référence du bundle).

agentTraces

Union

Oui

Source de trace à des fins d'analyse. Consultez la section Sources de suivi pour obtenir des recommandations.

evaluationConfig

Objet

Oui

Configuration d'évaluation spécifiant l'évaluateur cible. Contient une evaluators liste contenant exactement une référence d'évaluateur.

Choisir un évaluateur

Sélectionnez un évaluateur aligné sur la direction que vous souhaitez améliorer. L'évaluateur que vous sélectionnez détermine ce vers quoi la recommandation est optimisée ; c'est vers quoi l'optimiseur pousse l'invite.

Vous pouvez utiliser un évaluateur intégré ou fournir un ARN d'évaluateur personnalisé. Suivez les instructions suivantes pour faire votre choix :

  • Si votre agent a une tâche claire à accomplir (réservation, récupération, flux de travail en plusieurs étapes), Builtin.GoalSuccessRate c'est le bon signal.

  • Si votre agent est plus ouvert et que vous vous souciez de la qualité de l'interaction elle-même, Builtin.Helpfulness c'est une meilleure solution.

  • Si la qualité qui vous intéresse est spécifique à un domaine ou n'est pas capturée par un évaluateur intégré, utilisez un évaluateur personnalisé pour représenter au mieux la mesure.

Note

Les recommandations prennent en charge les évaluateurs intégrés LLM-as-judge, personnalisés et basés sur le code, mais nécessitent que l'évaluateur renvoie une valeur numérique comme signal d'optimisation. Pour les LLM-as-judge évaluateurs personnalisés, configurez le ratingScale avec une numerical échelle (noncategorical). Pour les évaluateurs basés sur le code, incluez le value champ dans le schéma de réponse.

Dans l'API, spécifiez l'évaluateur dans la evaluationConfig.evaluators liste avec exactement une référence d'évaluateur :

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

Dans la CLI, utilisez le --evaluator drapeau :

--evaluator Builtin.GoalSuccessRate

Modes de saisie rapide du système

Mode Drapeaux CLI Champ API

Texte en ligne

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

systemPrompt.text

Ensemble de configuration

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

systemPrompt.configurationBundleavec bundleArnversionId, systemPromptJsonPath

Lorsque vous utilisez un bundle de configuration, le résultat inclut une nouvelle version du bundle avec l'invite système optimisée appliquée.

Réponse

Champ Type Description

recommendationId

String

Identifiant unique de la recommandation.

recommendationArn

String

ARN de la recommandation.

name

String

Le nom que vous avez spécifié.

type

String

SYSTEM_PROMPT_RECOMMENDATION.

status

String

Statut initial : PENDING ouIN_PROGRESS.

createdAt

Horodatage

Date à laquelle la recommandation a été créée.

updatedAt

Horodatage

Date de dernière mise à jour de la recommandation.

Résultat de la recommandation

Lorsque la recommandation atteint le COMPLETED statut (récupéré via Get a recommendation), le résultat contient :

Champ Type Description

recommendedSystemPrompt

String

Le texte d'invite du système optimisé.

configurationBundle

Objet

Présent lorsque l'entrée était un bundle de configuration. Contient bundleArn et versionId pointe vers une nouvelle version du bundle à laquelle l'invite optimisée est appliquée.

explanation

String

Une explication de la raison pour laquelle la recommandation a été émise et le raisonnement qui sous-tend les modifications proposées.

errorCode

String

Présent en cas d'échec de la recommandation. Code d'erreur décrivant l'échec.

errorMessage

String

Présent en cas d'échec de la recommandation. Human-readable description de l'erreur.

Erreurs

Erreur Statut HTTP Description

ValidationException

400

Paramètres de demande non valides. Vérifiez les contraintes de champs et les champs obligatoires.

AccessDeniedException

403

Autorisations insuffisantes. Vérifiez les politiques IAM.

ConflictException

409

Une recommandation avec le même jeton client existe déjà avec des paramètres différents.

ServiceQuotaExceededException

402

Vous avez dépassé le nombre maximum de recommandations simultanées.

ThrottlingException

429

Le taux de demandes a été dépassé. Réessayez avec un recul exponentiel.

InternalServerException

500

Service-side erreur. Réitérez la demande.