View a markdown version of this page

Modelli e istruzioni - Amazon Bedrock AgentCore

Modelli e istruzioni

Definite un cablaggio una sola volta con valori predefiniti per modello, prompt di sistema, strumenti, memoria e limiti di esecuzione. Sovrascrivi uno di questi valori in una singola invocazione quando vuoi sperimentare. La risorsa harness rimane invariata; solo quella chiamata utilizza le sostituzioni.

Questo è il fulcro del modello basato sulla configurazione: impostazioni predefinite al momento della creazione, sostituzioni al momento della chiamata. È possibile testare le combinazioni N model/prompt /tool nel tempo necessario per ridistribuirle una sola volta.

Esempio
AWS CLI/boto3

L'impostazione predefinita è: 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"}]'

Sostituzioni per chiamata:

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

Per modificare i valori predefiniti in modo permanente, usa. update-harness

AgentCore CLI

Imposta i valori predefiniti quando crei o aggiorni il cablaggio:

# 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

Sostituisci una chiamata:

# 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"

Ignorabile al momento della chiamata:--model-id,,,,,--tools,--system-prompt,--max-iterations. --max-tokens --harness-timeout --skills --allowed-tools --actor-id Aggiungi --verbose alla stampa eventi JSON in streaming non elaborati per il debug.

Per modificare i valori predefiniti in modo permanente, modifica ed esegui. app/<name>/harness.json agentcore deploy

Interactive

Esegui agentcore in una directory di progetto per aprire il TUI, seleziona aggiungi, quindi scegli Harness. La procedura guidata ti guida passo dopo passo nella configurazione del modello e delle istruzioni.

  1. Scegliete il fornitore del modello. Sono supportati Amazon Bedrock, OpenAI, Google Gemini e LiteLLM-compatible qualsiasi provider, ciascuno con un modello predefinito.

    Add Harness wizard: seleziona il fornitore del modello
  2. Scegli il formato API. Per Amazon Bedrock e OpenAI, seleziona Converse Stream (impostazione predefinita), Risposte o Completamenti chat. Le risposte e i completamenti delle chat sono forniti da Bedrock Mantle.

    Aggiungi procedura guidata Harness: seleziona il formato API
  3. Se si seleziona LiteLLM, la procedura guidata richiede l'inserimento dei LiteLLM-specific campi: una chiave API opzionale ARN, un URL di base API opzionale per i OpenAI-compatible gateway e parametri aggiuntivi opzionali passati al provider.

    Procedura guidata per l'aggiunta di Harness: chiave API LiteLLM, ARN, base API e passaggi aggiuntivi per i parametri

Continua con i passaggi rimanenti (ambiente, memoria, impostazioni avanzate) e conferma. Quindi agentcore deploy esegui per applicare.

Usa qualsiasi modello, passa a metà sessione

Utilizza modelli di Amazon Bedrock, OpenAI, Google Gemini o altri provider tramite LiteLLM, inclusi gli endpoint. OpenAI-compatible Cambia fornitore tra i turni della stessa sessione e la conversazione continua. Il contesto viene ripreso.

Se non specifichi un modello, il cablaggio predefinito è Claude Sonnet 4.6 di Anthropic su Amazon Bedrock ()global.anthropic.claude-sonnet-4-6, così puoi iniziare immediatamente. Puoi modificare l'impostazione predefinita o sovrascrivere ogni chiamata in qualsiasi momento.

Archivia le chiavi API di terze parti nel token vault di AgentCore Identity come fornitore di credenziali di chiavi API. L'imbracatura estrae la chiave al momento della chiamata. Il codice del tuo agente non vede mai le credenziali non elaborate.

Esempio
AWS CLI/boto3

Registra una chiave API con AgentCore Identity:

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

Cambia fornitore tra i turni della stessa sessione:

# 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."}]}], )
Suggerimento

Usalo openAiModelConfig with "endpoint": {"bedrockMantle": {}} per chiamare i modelli OpenAI tramite Amazon Bedrock Mantle: non è richiesta alcuna chiave API, utilizza le credenziali del ruolo di esecuzione. Utilizzare openAiModelConfig with apiKeyArn quando si chiama direttamente l'endpoint OpenAI.

AgentCore CLI

Aggiungi una chiave API a AgentCore Identity:

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

Richiama con Bedrock Mantle (formato Responses, non è necessaria alcuna chiave 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."

Passa a OpenAI direttamente nella stessa sessione:

# 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."

Ulteriori informazioni: AgentCore Identità, fornitori di credenziali per chiavi API.

Seleziona il formato API del modello

Le configurazioni dei modelli Amazon Bedrock e OpenAI accettano ciascuna un campo apiFormat opzionale che seleziona il protocollo API utilizzato dall'harness per chiamare il modello.

PerbedrockModelConfig, apiFormat seleziona sia il protocollo API che l'endpoint Amazon Bedrock per sfruttare le chiamate:

  • converse_stream- l'API Amazon Bedrock Converse, servita dall'bedrock-runtimeendpoint. Questa è l’impostazione predefinita.

  • responses- l'API OpenAI-compatible Responses, servita dall'endpoint. bedrock-mantle

  • chat_completions- l'API OpenAI-compatible Chat Completions, servita dall'endpoint. bedrock-mantle

L'bedrock-mantleendpoint supporta un set diverso di modelli e funzionalità rispetto all'endpoint predefinito. bedrock-runtime Per i dettagli, consulta Endpoint supportati da Amazon Bedrock.

PerchéopenAiModelConfig, apiFormat può essere uno dei seguenti:

  • responses- l'API OpenAI Responses. Questa è l’impostazione predefinita.

  • chat_completions- l'API OpenAI Chat Completions.

Entrambe le configurazioni accettano anche un campo opzionale. additionalParams Provider-specific i parametri in additionalParams ingresso vengono passati al fornitore del modello senza modifiche.

Importante

I parametri inseriti additionalParams possono alterare il comportamento del provider, tra cui il routing degli endpoint, la gestione delle credenziali e la selezione della regione. Se l'applicazione inoltra la configurazione del modello fornita dal chiamante aInvokeHarness, convalida questi campi prima della chiamata. Per informazioni, consulta Modello di responsabilità condivisa.

Esempio
AgentCore CLI

Imposta il formato API quando crei o aggiorni il cablaggio con il flag: --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-formataccetta converse_streamresponses, o chat_completions per --model-provider bedrock e responses o chat_completions per--model-provider open_ai. Non si applica a gemini olite_llm.

Applica Amazon Bedrock Guardrails

Usa Amazon Bedrock Guardrails per filtrare i contenuti dannosi o bloccare gli argomenti negati negli input e negli output del modello. Per applicare un guardrail a ogni richiesta di modello, aggiungi un oggetto a. guardrailConfig bedrockModelConfig.additionalParams Il cablaggio passa questo oggetto ad Amazon Bedrock con ogni richiesta di modello.

Per utilizzare Amazon Bedrock Guardrails con l'harness, configura bedrockModelConfig con il formato API. converse_stream Se ometti, l'harness utilizza per apiFormat impostazione predefinita. converse_stream Imposta questa configurazione in CreateHarness o o UpdateHarness sostituiscila per una chiamata in entrata. InvokeHarness

Il seguente esempio di Python chiama InvokeHarness con una configurazione guardrail. HARNESS_ARNSostituiscilo con il tuo cablaggio ARN SESSION_ID e con un ID di sessione di runtime univoco.

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

Per le autorizzazioni del modello di base, consulta la politica del ruolo di esecuzione. Aggiungi la seguente istruzione JSON alla politica del ruolo di esecuzione di Harness:

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

Usa un guardrail nella stessa AWS regione della richiesta del modello. Quando interviene un guardrail, il flusso di risposta riporta guardrail_intervened come motivo dell'arresto.

Per ulteriori informazioni sui campi di configurazione del guardrail, consulta Usare un guardrail con l'API Converse. Per ulteriori informazioni sulle autorizzazioni IAM, consulta Configurare le autorizzazioni per utilizzare Amazon Bedrock Guardrails.

Usa un modello tramite LiteLLM

Utilizzalo liteLlmModelConfig per contattare qualsiasi provider supportato da LiteLLM, inclusi gli endpoint. OpenAI-compatible Imposta su un modelId ID modello con prefisso del provider LiteLLM, ad esempio o. gemini/gemini-2.5-pro anthropic/claude-sonnet-4-6

I provider che si autenticano con una chiave API (come Google o Anthropic) richiedono. apiKeyArn I modelli Amazon Bedrock a cui si accede con il bedrock/ prefisso utilizzano le autorizzazioni del ruolo di esecuzione di cablaggio e non richiedono una chiave API.

  • modelId(obbligatorio): l'ID del modello con prefisso del provider LiteLLM.

  • apiKeyArn- l'ARN della chiave API del provider, memorizzata in AgentCore Identity come fornitore di credenziali di chiave API. L'endpoint deve accettare questa chiave API.

  • apiBase- un URL endpoint personalizzato per un OpenAI-compatible gateway, ad esempio un proxy o un endpoint ospitato autonomamente.

  • additionalParams- parametri specifici del provider passati a LiteLLM invariati. Ciò include parametri che possono sovrascrivere endpoint (aws_bedrock_runtime_endpoint), assumere ruoli IAM () o modificare il routing delle richieste. aws_role_name Per informazioni, consulta Modello di responsabilità condivisa.

liteLlmModelConfigaccetta anche i campi opzionali maxTokens etemperature. topP

Esempio
boto3

Configura un modello 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

Configura un modello 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

Raggiungi un OpenAI-compatible gateway con e passa --api-base i parametri specifici del provider con: --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-basee si --additional-params applicano solo a. --model-provider lite_llm I modelli Amazon Bedrock raggiunti con il bedrock/ prefisso utilizzano le autorizzazioni del ruolo di esecuzione e non ne hanno bisogno. --api-key-arn

Quando il tuo harness utilizza un provider di credenziali di chiave API, concedi al ruolo di esecuzione l'autorizzazione a leggere la chiave. Per informazioni, consulta Sicurezza e controlli degli accessi.

Per ulteriori informazioni sulla configurazione del cablaggio, vedere Documentazione API