View a markdown version of this page

Obtenga una recomendación - Amazon Bedrock AgentCore

Obtenga una recomendación

Recupera el estado y los resultados de una recomendación. Sondee esta operación hasta que la recomendación alcance un estado terminal (COMPLETEDoFAILED).

Ejemplos de código

ejemplo
AgentCore CLI

agentcore run recommendationpresenta un trabajo de «dispara y olvida». Pase --wait al bloque hasta que llegue a un estado terminal, o compruébelo más tarde con su identificación:

agentcore view recommendation <recommendation-id>

Enumere todos los trabajos recomendados o véalos como JSON:

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

Realice un sondeo hasta completarlo y extraiga el resultado:

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

Extraiga la referencia del paquete de configuración para utilizarla en A/B las pruebas:

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

Parámetros de solicitud

Parámetro Tipo Obligatorio Descripción

recommendationId

Cadena

El ID de recomendación devuelto porStartRecommendation. Se pasa como parámetro de ruta.

Respuesta

Campo Tipo Description (Descripción)

recommendationId

Cadena

Identificador único de la recomendación.

recommendationArn

Cadena

ARN de la recomendación.

name

Cadena

El nombre de la recomendación.

type

Cadena

SYSTEM_PROMPT_RECOMMENDATION o bien TOOL_DESCRIPTION_RECOMMENDATION.

status

Cadena

Estado actual: PENDINGIN_PROGRESS,COMPLETED,FAILED, oDELETING.

recommendationConfig

Objeto

La configuración que ha enviado.

recommendationResult

Objeto

Está presente cuando el estado esCOMPLETED. Contiene la configuración optimizada. La forma depende del tipo de recomendación.

createdAt

Timestamp

Cuándo se creó la recomendación.

updatedAt

Timestamp

Cuándo se actualizó la recomendación por última vez.

Campos de resultados de las solicitudes del sistema

Está presente recommendationResult.systemPromptRecommendationResult cuando el tipo esSYSTEM_PROMPT_RECOMMENDATION:

Campo Tipo Description (Descripción)

recommendedSystemPrompt

Cadena

El texto del mensaje del sistema optimizado.

configurationBundle

Objeto

Estaba presente cuando la entrada era un paquete de configuración. Contiene bundleArn y versionId para la nueva versión del paquete.

explanation

Cadena

Una explicación de por qué se generó la recomendación y el razonamiento en el que se basan los cambios sugeridos.

errorCode

Cadena

Presente en caso de fallo. Código de error.

errorMessage

Cadena

Presente en caso de fallo. Human-readable descripción.

Campos de resultados de la descripción de la herramienta

Está presente recommendationResult.toolDescriptionRecommendationResult cuando el tipo esTOOL_DESCRIPTION_RECOMMENDATION:

Campo Tipo Description (Descripción)

tools

Enumeración

Per-tool resultados. Cada entrada contiene toolNamerecommendedToolDescription, yexplanation.

configurationBundle

Objeto

Presente cuando la entrada era un paquete de configuración. Contiene bundleArn y versionId para la nueva versión del paquete.

errorCode

Cadena

Está presente en caso de fallo. Código de error.

errorMessage

Cadena

Presente en caso de fallo. Human-readable descripción.

Respuestas de ejemplo

Recomendación rápida del sistema completada (entrada en línea):

{ "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" }

Recomendación rápida del sistema completada (entrada del paquete de configuración):

{ "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" }

Recomendación de descripción de la herramienta completada:

{ "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" }

Recomendación fallida:

{ "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" }

Errores

Error Estado HTTP Description (Descripción)

ResourceNotFoundException

404

No se encontró ninguna recomendación con el ID especificado.

ValidationException

400

Formato de ID de recomendación no válido.

AccessDeniedException

403

Permisos insuficientes.

ThrottlingException

429

Se superó la tasa de solicitudes.

InternalServerException

500

Service-side error.