View a markdown version of this page

Modelos e instrucciones - 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.

Modelos e instrucciones

Defina un arnés una vez con los valores predeterminados para el modelo, la línea de comandos del sistema, las herramientas, la memoria y los límites de ejecución. Anula cualquiera de estos valores en una sola invocación cuando quieras experimentar. El recurso de arnés permanece inalterado; solo esa llamada usa las anulaciones.

Este es el núcleo del modelo basado en la configuración: los valores predeterminados en el momento de la creación y las anulaciones en el momento de la invocación. Puede probar las combinaciones de N model/prompt y herramientas en el tiempo que tardaría en volver a implementarse una vez.

ejemplo
AWS CLI/boto3

El valor predeterminado es: create-harness

aws bedrock-agentcore-control create-harness \ --harness-name "research-agent" \ --execution-role-arn "arn:aws:iam::123456789012:role/MyHarnessRole" \ --system-prompt '[{"text": "You are a research assistant."}]' \ --tools '[{"type": "agentcore_browser", "name": "browser"}]'

Anulaciones por invocación:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, # These apply only to this call; the harness defaults stay intact model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-opus-4-5-20251101-v1:0"}}, systemPrompt=[{"text": "You are a terse research assistant. One paragraph answers only."}], tools=[ {"type": "agentcore_browser", "name": "browser"}, {"type": "agentcore_code_interpreter", "name": "code_interpreter"}, ], messages=[{"role": "user", "content": [{"text": "Summarize this paper as a bullet list."}]}], )

Para cambiar los valores predeterminados de forma permanente, utilice. update-harness

AgentCore CLI

Establezca los valores predeterminados al crear o actualizar el arnés:

# Create an empty project if one does not already exist agentcore create --project-name ResearchAgentProject --no-agent cd ResearchAgentProject # Add a harness to the project agentcore add harness \ --name research-agent \ --model-id us.anthropic.claude-sonnet-4-6 \ --system-prompt "You are a research assistant." \ --tools agentcore_browser agentcore deploy

Anular una invocación:

# Switch the model for one call agentcore invoke --harness research-agent \ --model-id us.anthropic.claude-opus-4-5-20251101-v1:0 \ "Summarize this research paper" # Swap tools for one call agentcore invoke --harness research-agent \ --tools agentcore_browser,agentcore_code_interpreter \ "Plot the citation counts as a bar chart"

Se puede anular en el momento de la invocación:--model-id,,,,--tools,--system-prompt,--max-iterations,--max-tokens. --harness-timeout --skills --allowed-tools --actor-id Añada --verbose a imprimir eventos JSON de streaming sin procesar para su depuración.

Para cambiar los valores predeterminados de forma permanente, edítelos app/<name>/harness.json y ejecútelos. agentcore deploy

Interactive

Ejecute agentcore en el directorio de un proyecto para abrir la TUI, seleccione agregar y, a continuación, elija Harness. El asistente le guiará paso a paso por la configuración del modelo y la instrucción.

  1. Elija su proveedor de modelos. Se admiten Amazon Bedrock, OpenAI, Google Gemini y cualquier otro LiteLLM-compatible proveedor, cada uno con un modelo predeterminado.

    Asistente para agregar arneses: selecciona el proveedor del modelo
  2. Elija el formato de la API. Para Amazon Bedrock y OpenAI, seleccione Converse Stream (predeterminado), Responses o Chat Finations. Bedrock Mantle publica las respuestas y los chats finalizados.

    Agregue el asistente Harness: seleccione el formato de API
  3. Si seleccionas LitellM, el asistente te pedirá los LiteLLM-specific campos: un ARN de clave de API opcional, una URL base de API opcional para OpenAI-compatible las pasarelas y parámetros adicionales opcionales que se transfieren al proveedor.

    Agregue el asistente Harness: la clave de API de LitELLM, el ARN, la base de API y los pasos de parámetros adicionales

Continúe con los pasos restantes (entorno, memoria, configuración avanzada) y confirme. A continuación, ejecuta agentcore deploy para aplicar.

Usa cualquier modelo, cámbialo a mitad de sesión

Utilice modelos de Amazon Bedrock, OpenAI, Google Gemini u otros proveedores a través de LitellM, incluidos los terminales. OpenAI-compatible Cambie de proveedor entre los turnos de la misma sesión y la conversación continuará. El contexto se traslada.

Si no especificas ningún modelo, el arnés usará por defecto el Claude Sonnet 4.6 de Anthropic en Amazon Bedrock (global.anthropic.claude-sonnet-4-6) para que puedas empezar de inmediato. Puede cambiar el valor predeterminado o anularlo por invocación en cualquier momento.

Almacena las claves de API de terceros en la bóveda de tokens de AgentCore Identity como proveedor de credenciales de claves de API. El arnés extrae la clave en el momento de la invocación. El código de agente nunca ve las credenciales sin procesar.

ejemplo
AWS CLI/boto3

Registra una clave de API con AgentCore Identity:

aws bedrock-agentcore-control create-api-key-credential-provider \ --name my-openai-key \ --api-key "$OPENAI_API_KEY"

Cambie de proveedor en turnos de la misma sesión:

# Turn 1: Bedrock (native Converse API) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={"bedrockModelConfig": {"modelId": "us.anthropic.claude-sonnet-4-5-20250514-v1:0"}}, messages=[{"role": "user", "content": [{"text": "Analyze this codebase."}]}], ) # Turn 2: Bedrock Mantle (OpenAI Responses format, no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "openai.gpt-4o", "apiFormat": "responses", "additionalParams": {"reasoning": {"effort": "high"}}, } }, messages=[{"role": "user", "content": [{"text": "Now suggest fixes for the top three issues."}]}], ) # Turn 3: OpenAI model via Bedrock Mantle (no API key needed) response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "openAiModelConfig": { "modelId": "gpt-5.4", "apiFormat": "responses", "endpoint": {"bedrockMantle": {}}, } }, messages=[{"role": "user", "content": [{"text": "Summarize the fixes as a bullet list."}]}], )
sugerencia

openAiModelConfigUtilícelo "endpoint": {"bedrockMantle": {}} para invocar modelos de OpenAI a través de Amazon Bedrock Mantle. No se necesita una clave de API y utiliza las credenciales de su rol de ejecución. openAiModelConfigUtilícelo con apiKeyArn cuando llame directamente al punto final de OpenAI.

AgentCore CLI

Agregue una clave de API a AgentCore Identity:

agentcore add credential --type api-key --name my-openai-key --api-key $OPENAI_API_KEY agentcore deploy

Desde el directorio del AgentCore proyecto que creaste anteriormente, agrega un segundo arnés que utilice el formato Responses. A continuación, implemente el proyecto:

agentcore add harness \ --name my-agent \ --model-provider bedrock \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses agentcore deploy

Invoca con Bedrock Mantle:

SESSION_ID="$(uuidgen)" # Turn 1: Bedrock Mantle (Responses format) agentcore invoke --harness my-agent \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --session-id "$SESSION_ID" \ "Analyze this codebase and identify performance bottlenecks."

Cambie a OpenAI directamente en la misma sesión:

# Turn 2: OpenAI direct on the same session agentcore invoke --harness my-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --session-id "$SESSION_ID" \ "Now suggest fixes for the top three issues."

Más información: AgentCore Identidad, proveedores de credenciales de claves de API.

Seleccione el formato de API modelo

Cada una de las configuraciones de los modelos Amazon Bedrock y OpenAI acepta un apiFormat campo opcional que selecciona el protocolo de API que utiliza el arnés para llamar al modelo.

ForbedrockModelConfig, apiFormat selecciona tanto el protocolo de API como el punto final de Amazon Bedrock al que llama el arnés:

  • converse_stream- la API Converse de Amazon Bedrock, servida por el punto final. bedrock-runtime Este es el valor predeterminado.

  • responses- la API de OpenAI-compatible respuestas, servida por el bedrock-mantle punto final.

  • chat_completions- la API OpenAI-compatible Chat Completions, servida por el bedrock-mantle punto final.

El bedrock-mantle punto final admite un conjunto de modelos y capacidades diferente al del bedrock-runtime punto final predeterminado. Para obtener más información, consulte los puntos de conexión compatibles con Amazon Bedrock.

ParaopenAiModelConfig, apiFormat puede ser una de las siguientes opciones:

  • responses- la API de respuestas de OpenAI. Esta es la opción predeterminada.

  • chat_completions- la API de finalización del chat de OpenAI.

Ambas configuraciones también aceptan un campo opcionaladditionalParams. Provider-specific los parámetros additionalParams introducidos se transfieren al proveedor del modelo sin cambios.

importante

Los parámetros incluidos additionalParams pueden alterar el comportamiento del proveedor, incluido el enrutamiento de los puntos finales, la gestión de credenciales y la selección de regiones. Si su aplicación reenvía la configuración del modelo proporcionada por la persona que llama aInvokeHarness, valide estos campos antes de la invocación. Consulte Modelo de responsabilidad compartida.

ejemplo
AgentCore CLI

Establece el formato de la API al crear o actualizar el arnés con la marca: --api-format

# Bedrock model through the OpenAI-compatible Responses API (bedrock-mantle endpoint) agentcore add harness --name research-agent \ --model-provider bedrock \ --model-id us.anthropic.claude-sonnet-4-5-20250514-v1:0 \ --api-format responses agentcore deploy
# OpenAI model using the Chat Completions API agentcore add harness --name openai-agent \ --model-provider open_ai \ --model-id gpt-5.4 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-openai-key \ --api-format chat_completions agentcore deploy
nota

--api-formatacepta converse_streamresponses, o chat_completions para--model-provider bedrock, y responses o chat_completions para--model-provider open_ai. No se aplica a gemini olite_llm.

Aplica Amazon Bedrock Guardrails

Utilice Amazon Bedrock Guardrails para filtrar el contenido dañino o bloquear los temas rechazados en las entradas y salidas del modelo. Para aplicar una barrera a cada solicitud de modelo, añada un objeto a. guardrailConfig bedrockModelConfig.additionalParams El arnés pasa este objeto a Amazon Bedrock con cada solicitud de modelo.

Para usar Amazon Bedrock Guardrails con el arnés, bedrockModelConfig configúralo con el formato API. converse_stream Si lo omite, el arnés se apiFormat usa de forma predeterminada. converse_stream Defina esta configuración en CreateHarness o o UpdateHarness anule la configuración para una sola llamada. InvokeHarness

El siguiente ejemplo de Python llama InvokeHarness con una configuración de barandilla. HARNESS_ARNSustitúyalo por el ARN de su arnés y por un SESSION_ID identificador de sesión de ejecución único.

import boto3 client = boto3.client("bedrock-agentcore") response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "bedrockModelConfig": { "modelId": "us.amazon.nova-micro-v1:0", "apiFormat": "converse_stream", "additionalParams": { "guardrailConfig": { "guardrailIdentifier": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456", "guardrailVersion": "1", "trace": "enabled_full", } }, } }, messages=[{"role": "user", "content": [{"text": "Help me plan a trip."}]}], )

Para ver los permisos del modelo de referencia, consulte la política de funciones de Política de roles de ejecución ejecución. Agregue la siguiente sentencia JSON a la política de funciones de ejecución del arnés:

{ "Effect": "Allow", "Action": "bedrock:ApplyGuardrail", "Resource": "arn:aws:bedrock:us-west-2:111122223333:guardrail/abc123def456" }

Utilice una barandilla en la misma AWS región que la solicitud modelo. Cuando interviene una barandilla, el flujo de respuesta indica el motivo de la detención. guardrail_intervened

Para obtener más información sobre los campos de configuración de la barandilla, consulte Usar una barandilla con la API de Converse. Para obtener más información sobre los permisos de IAM, consulte Configurar los permisos para usar Amazon Bedrock Guardrails.

Utilice un modelo a través de LitellM

liteLlmModelConfigUtilícelo para comunicarse con cualquier proveedor compatible con LitELLM, incluidos los terminales. OpenAI-compatible modelIdConfigúrelo en un ID de modelo con el prefijo del proveedor de LitELLM, como o. gemini/gemini-2.5-pro anthropic/claude-sonnet-4-6

Los proveedores que se autentican con una clave de API (como Google o Anthropic) requieren. apiKeyArn Los modelos de Amazon Bedrock a los que se accede con el bedrock/ prefijo utilizan los permisos de la función de ejecución del arnés y no necesitan una clave de API.

  • modelId(obligatorio): el ID del modelo con el prefijo del proveedor de Litellm.

  • apiKeyArn- el ARN de la clave de API del proveedor, almacenado en AgentCore Identity como proveedor de credenciales de clave de API. El punto final debe aceptar esta clave de API.

  • apiBase- una URL de punto final personalizada para una OpenAI-compatible puerta de enlace, como un proxy o un punto de enlace autohospedado.

  • additionalParams- los parámetros específicos del proveedor se transfirieron a LitellM sin cambios. Esto incluye los parámetros que pueden anular los puntos finales (aws_bedrock_runtime_endpoint), asumir funciones de IAM () o alterar el enrutamiento de las solicitudes. aws_role_name Consulte Modelo de responsabilidad compartida.

liteLlmModelConfigtambién acepta los campos opcionales maxTokens ytemperature. topP

ejemplo
boto3

Configure un modelo LitellM:

response = client.invoke_harness( harnessArn=HARNESS_ARN, runtimeSessionId=SESSION_ID, model={ "liteLlmModelConfig": { "modelId": "gemini/gemini-2.5-pro", "apiKeyArn": "arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key", } }, messages=[{"role": "user", "content": [{"text": "Summarize this paper."}]}], )
AgentCore CLI

Configure un modelo LitELLM con: --model-provider lite_llm

agentcore add harness --name research-agent \ --model-provider lite_llm \ --model-id gemini/gemini-2.5-pro \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gemini-key agentcore deploy

Llegue a una OpenAI-compatible puerta de enlace y supere los parámetros específicos del proveedor con--api-base: --additional-params

agentcore add harness --name proxy-agent \ --model-provider lite_llm \ --model-id openai/gpt-5.4 \ --api-base https://my-llm-gateway.example.com/v1 \ --api-key-arn arn:aws:bedrock-agentcore:us-west-2:123456789012:token-vault/default/apikeycredentialprovider/my-gateway-key \ --additional-params '{"timeout": 30}' agentcore deploy
nota

--api-basey solo --additional-params se aplican a. --model-provider lite_llm Los modelos de Amazon Bedrock a los que se accede con el bedrock/ prefijo utilizan los permisos del rol de ejecución y no los necesitan. --api-key-arn

Cuando su arnés utilice un proveedor de credenciales de clave de API, conceda permiso al rol de ejecución para leer la clave. Consulte Seguridad y controles de acceso.

Para obtener información adicional sobre la configuración del arnés, consulte la Documentación de la API