View a markdown version of this page

Obtenga una recomendación - Base amazónica AgentCore

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Obtenga una recomendación

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

Ejemplos de código

ejemplo
AgentCore CLI

agentcore run recommendationenvía un trabajo de «dispara y olvídate». Pase --wait a bloquear hasta que alcance un estado terminal, o compruébelo más tarde por ID:

agentcore view recommendation <recommendation-id>

Enumera todos los trabajos recomendados o visualízalos como JSON:

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

Realice una encuesta hasta completarla 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 usarla 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

Sí

El ID de recomendación devuelto porStartRecommendation. Se pasó 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

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 mensajes del sistema

Presente recommendationResult.systemPromptRecommendationResult cuando el tipo esSYSTEM_PROMPT_RECOMMENDATION:

Campo Tipo Description (Descripción)

recommendedSystemPrompt

Cadena

El texto de aviso del sistema optimizado.

configurationBundle

Objeto

Está 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 la razón por la que se generó la recomendación y el razonamiento detrás de 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

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

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

errorCode

Cadena

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 identificador especificado.

ValidationException

400

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

AccessDeniedException

403

Permisos insuficientes.

ThrottlingException

429

Se superó la tasa de solicitudes.

InternalServerException

500

Service-side error.