View a markdown version of this page

Obtenir une recommandation - Base rocheuse de l'Amazonie AgentCore

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Obtenir une recommandation

Récupérez le statut et les résultats d'une recommandation. Interrogez cette opération jusqu'à ce que la recommandation atteigne l'état terminal (COMPLETEDouFAILED).

Exemples de code

Exemple
AgentCore CLI

agentcore run recommendationsoumet une offre d'emploi sans préavis. Passez --wait au bloc jusqu'à ce qu'il atteigne l'état terminal, ou vérifiez-le plus tard par identifiant :

agentcore view recommendation <recommendation-id>

Répertoriez toutes les tâches recommandées ou affichez-les au format JSON :

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

Sondage jusqu'à la fin du sondage et extraction du résultat :

import time import boto3 client = boto3.client("bedrock-agentcore", region_name="us-west-2") # Poll until terminal state while True: result = client.get_recommendation(recommendationId=recommendation_id) status = result["status"] print(f"Status: {status}") if status in ("COMPLETED", "FAILED"): break time.sleep(15) # Extract system prompt result if status == "COMPLETED": rec_result = result.get("recommendationResult", {}) if "systemPromptRecommendationResult" in rec_result: sys_result = rec_result["systemPromptRecommendationResult"] print(f"Recommended prompt:\n{sys_result['recommendedSystemPrompt']}") if "explanation" in sys_result: print(f"Explanation:\n{sys_result['explanation']}") if "configurationBundle" in sys_result: bundle = sys_result["configurationBundle"] print(f"New bundle version: {bundle['versionId']}") elif "toolDescriptionRecommendationResult" in rec_result: tool_result = rec_result["toolDescriptionRecommendationResult"] for tool in tool_result.get("tools", []): print(f"{tool['toolName']}: {tool['recommendedToolDescription']}") if "explanation" in tool: print(f" Explanation: {tool['explanation']}") elif status == "FAILED": rec_result = result.get("recommendationResult", {}) r = rec_result.get("systemPromptRecommendationResult") or rec_result.get("toolDescriptionRecommendationResult") print(f"Error: [{r['errorCode']}] {r['errorMessage']}")

Extrayez la référence du bundle de configuration à utiliser lors A/B des tests :

result = client.get_recommendation(recommendationId=recommendation_id) if result["status"] == "COMPLETED": rec_result = result["recommendationResult"] sys_result = rec_result.get("systemPromptRecommendationResult", {}) if "configurationBundle" in sys_result: bundle_arn = sys_result["configurationBundle"]["bundleArn"] version_id = sys_result["configurationBundle"]["versionId"] print(f"Use in A/B test: bundle={bundle_arn}, version={version_id}")

Paramètres de demande

Paramètre Type Obligatoire Description

recommendationId

Chaîne

Oui

L'ID de recommandation renvoyé parStartRecommendation. Transmis en tant que paramètre de chemin.

Réponse

Champ Type Description

recommendationId

Chaîne

Identifiant unique de la recommandation.

recommendationArn

Chaîne

ARN de la recommandation.

name

Chaîne

Le nom de la recommandation.

type

Chaîne

SYSTEM_PROMPT_RECOMMENDATION ou TOOL_DESCRIPTION_RECOMMENDATION.

status

Chaîne

État actuel : PENDINGIN_PROGRESS,COMPLETED,FAILED, ouDELETING.

recommendationConfig

Objet

La configuration que vous avez soumise.

recommendationResult

Objet

Présent lorsque le statut est définiCOMPLETED. Contient la configuration optimisée. La forme dépend du type de recommandation.

createdAt

Horodatage

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

updatedAt

Horodatage

Date à laquelle la recommandation a été mise à jour pour la dernière fois.

Champs de résultats rapides du système

Présent recommendationResult.systemPromptRecommendationResult lorsque le type est SYSTEM_PROMPT_RECOMMENDATION :

Champ Type Description

recommendedSystemPrompt

Chaîne

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

configurationBundle

Objet

Présent lorsque l'entrée était un ensemble de configuration. Contient bundleArn et versionId pour la nouvelle version du bundle.

explanation

Chaîne

Une explication de la raison pour laquelle la recommandation a été générée et du raisonnement qui sous-tend les modifications proposées.

errorCode

Chaîne

Présent en cas d'échec. Code d’erreur.

errorMessage

Chaîne

Présent en cas d'échec. Human-readable description.

Champs de résultats de description de l'outil

Présent recommendationResult.toolDescriptionRecommendationResult lorsque le type est TOOL_DESCRIPTION_RECOMMENDATION :

Champ Type Description

tools

List

Per-tool résultats. Chaque entrée contient toolNamerecommendedToolDescription, etexplanation.

configurationBundle

Objet

Présent lorsque l'entrée était un ensemble de configuration. Contient bundleArn et versionId pour la nouvelle version du bundle.

errorCode

Chaîne

Présent en cas d'échec. Code d’erreur.

errorMessage

Chaîne

Présent en cas d'échec. Human-readable description.

Exemple de réponses

Recommandation rapide du système terminée (entrée en ligne) :

{ "recommendationId": "MyPromptRec-Ab1Cd2Ef3G", "recommendationArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:recommendation/MyPromptRec-Ab1Cd2Ef3G", "name": "my-prompt-rec", "type": "SYSTEM_PROMPT_RECOMMENDATION", "status": "COMPLETED", "recommendationConfig": { ... }, "recommendationResult": { "systemPromptRecommendationResult": { "recommendedSystemPrompt": "<optimized system prompt text>", "explanation": "<explanation of why the recommendation was generated>" } }, "createdAt": "2025-03-15T10:00:00Z", "updatedAt": "2025-03-15T10:05:30Z" }

Recommandation rapide du système terminée (entrée du bundle de configuration) :

{ "recommendationId": "MyBundleRec-Xy9Zw8Vq1R", "recommendationArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:recommendation/MyBundleRec-Xy9Zw8Vq1R", "name": "my-bundle-prompt-rec", "type": "SYSTEM_PROMPT_RECOMMENDATION", "status": "COMPLETED", "recommendationConfig": { ... }, "recommendationResult": { "systemPromptRecommendationResult": { "recommendedSystemPrompt": "<optimized system prompt text>", "configurationBundle": { "bundleArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:configuration-bundle/myBundle-Ab1Cd2Ef3G", "versionId": "12345678-1234-1234-1234-123456789012" }, "explanation": "<explanation of why the recommendation was generated>" } }, "createdAt": "2025-03-15T10:00:00Z", "updatedAt": "2025-03-15T10:06:12Z" }

Recommandation relative à la description complète de l'outil :

{ "recommendationId": "MyToolRec-Qr5St6Uv7W", "recommendationArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:recommendation/MyToolRec-Qr5St6Uv7W", "name": "my-tool-rec", "type": "TOOL_DESCRIPTION_RECOMMENDATION", "status": "COMPLETED", "recommendationConfig": { ... }, "recommendationResult": { "toolDescriptionRecommendationResult": { "tools": [ { "toolName": "<tool-name-1>", "recommendedToolDescription": "<optimized description for tool 1>", "explanation": "<explanation of why this tool description was changed>" }, { "toolName": "<tool-name-2>", "recommendedToolDescription": "<optimized description for tool 2>", "explanation": "<explanation of why this tool description was changed>" } ] } }, "createdAt": "2025-03-15T11:00:00Z", "updatedAt": "2025-03-15T11:04:45Z" }

Recommandation échouée :

{ "recommendationId": "MyFailedRec-Mn3Op4Qr5S", "recommendationArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:recommendation/MyFailedRec-Mn3Op4Qr5S", "name": "my-failed-rec", "type": "SYSTEM_PROMPT_RECOMMENDATION", "status": "FAILED", "recommendationConfig": { ... }, "recommendationResult": { "systemPromptRecommendationResult": { "errorCode": "<error-code>", "errorMessage": "<human-readable error description>" } }, "createdAt": "2025-03-15T12:00:00Z", "updatedAt": "2025-03-15T12:01:10Z" }

Erreurs

Erreur Statut HTTP Description

ResourceNotFoundException

404

Aucune recommandation n'a été trouvée avec l'ID spécifié.

ValidationException

400

Format d'ID de recommandation non valide.

AccessDeniedException

403

Autorisations insuffisantes.

ThrottlingException

429

Taux de demandes dépassé.

InternalServerException

500

Service-side erreur.