View a markdown version of this page

Modelos e instrucciones - Amazon Bedrock AgentCore

Modelos e instrucciones

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

Este es el núcleo del modelo basado en la configuración: se establece de forma predeterminada en el momento de la creación y se anula en el momento de la invocación. Puedes probar las combinaciones de N y model/prompt herramientas en el tiempo que tardarías en volver a desplegarlas 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

Defina los valores por defecto al crear o actualizar el arnés:

# Create a project if one does not already exist. agentcore create # Add a harness to the project agentcore add harness \ --name research-agent \ --model-id us.anthropic.claude-sonnet-4-6-20250514-v1:0 \ --system-prompt "You are a research assistant." \ --tools agentcore-browser agentcore deploy

Anular en 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,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 la impresión eventos JSON en 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 un directorio de proyectos para abrir la TUI, seleccione añadir 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. Amazon Bedrock, OpenAI, Google Gemini y LiteLLM-compatible cualquier proveedor son compatibles, cada uno con un modelo predeterminado.

    Asistente para añadir arneses: selecciona el proveedor del modelo
  2. Elija el formato de la API. Para Amazon Bedrock y OpenAI, selecciona Converse Stream (predeterminado), Respuestas o Finalizaciones de chat. Bedrock Mantle se encarga de responder y completar el chat.

    Asistente para agregar arneses: seleccione el formato de API
  3. Si selecciona LitellM, el asistente solicita los LiteLLM-specific campos: una clave de API ARN opcional, una URL base de API opcional para las OpenAI-compatible puertas de enlace y parámetros adicionales opcionales que se transmiten al proveedor.

    Asistente para agregar arneses: clave de API de LitellM, ARN, base de API y pasos de parámetros adicionales

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

Usa cualquier modelo, cambia a mitad de sesión

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

Si no especificas un modelo, el arnés tiene 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 anular cada invocación en cualquier momento.

Guarda las claves de API de terceros en la bóveda de fichas de AgentCore Identity como proveedor de credenciales de claves de API. El arnés extrae la clave en el momento de la invocación. Su 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"

Cambia de proveedor en los 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

Úselo openAiModelConfig con "endpoint": {"bedrockMantle": {}} para llamar a modelos de OpenAI a través de Amazon Bedrock Mantle; no se requiere una clave de API, sino que utiliza las credenciales de su función de ejecución. Úselo openAiModelConfig con apiKeyArn cuando llame directamente al punto final de OpenAI.

AgentCore CLI

Añada una clave de API a AgentCore Identity:

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

Invoca con Bedrock Mantle (formato de respuestas, no se necesita una clave de API):

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 \ --api-format responses \ --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: proveedores de credenciales de AgentCore identidad y clave de API.

Seleccione el formato de la API modelo

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

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

  • converse_stream- la API Converse de Amazon Bedrock, servida por el bedrock-runtime punto final. Es la opción predeterminada.

  • 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 Puntos de enlace compatibles con Amazon Bedrock.

ParaopenAiModelConfig, apiFormat puede ser uno de los siguientes:

  • responses- la API de respuestas de OpenAI. Este es el valor por defecto.

  • chat_completions- la API OpenAI Chat Completions.

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

importante

Los parámetros incluidos additionalParams pueden alterar el comportamiento del proveedor, como 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

Establezca el formato de la API al crear o actualizar el arnés con la siguiente 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, responses o chat_completions para--model-provider open_ai. No se aplica a gemini olite_llm.

Aplique Amazon Bedrock Guardrails

Utilice Amazon Bedrock Guardrails para filtrar el contenido dañino o bloquear los temas rechazados en las entradas y salidas de los modelos. Para aplicar una barandilla 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, configúrelo bedrockModelConfig con el converse_stream formato API. Si lo omiteapiFormat, se utilizará el arnés de forma predeterminada. converse_stream Establezca esta configuración en CreateHarness o UpdateHarness sobrescriba esta 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 del arnés y por un identificador SESSION_ID de sesión de tiempo 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 conocer los permisos del modelo de referencia, consulte la política de funciones de ejecución. Añada la siguiente declaración de JSON a la política de roles de ejecución de arneses:

{ "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 del modelo. Cuando interviene una barrera, el flujo de respuesta indica guardrail_intervened que es el motivo de la parada.

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

Utilice un modelo a través de LitellM

Úselo liteLlmModelConfig para comunicarse con cualquier proveedor compatible con LitellM, incluidos los puntos finales. 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 del rol de ejecución de arneses 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 API del proveedor, almacenado en AgentCore Identity como proveedor de credenciales de clave 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 final autohospedado.

  • additionalParams- los parámetros específicos del proveedor se transfirieron a LitellM sin cambios. Esto incluye 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 maxTokens y temperature opcionales. 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

Acceda a una OpenAI-compatible puerta de enlace y pase 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 se --additional-params aplican únicamente 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