View a markdown version of this page

모델 및 지침 - Amazon Bedrock AgentCore

모델 및 지침

모델, 시스템 프롬프트, 도구, 메모리 및 실행 제한에 대한 기본값으로 하네스를 한 번 정의합니다. 실험하려는 경우 단일 간접 호출에서 해당 항목을 재정의합니다. 하네스 리소스는 변경되지 않습니다. 해당 호출만 재정의를 사용합니다.

이는 구성 기반 모델의 핵심입니다. 기본값은 생성 시, 재정의는 호출 시입니다. 한 번 재배포하는 데 걸리는 시간에 N model/prompt/tool 조합을 테스트할 수 있습니다.

AWS CLI/boto3

의 기본값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"}]'

호출당 재정의:

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

기본값을 영구적으로 변경하려면를 사용합니다update-harness.

AgentCore CLI

하네스를 생성하거나 업데이트할 때 기본값을 설정합니다.

# 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

호출에 대한 재정의:

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

호출 시 재정의 가능: --model-id, , --tools, --system-prompt, --max-iterations, --max-tokens, --harness-timeout, --allowed-tools, --skills. --actor-id --verbose를 추가하여 디버깅을 위한 원시 스트리밍 JSON 이벤트를 인쇄합니다.

기본값을 영구적으로 변경하려면를 편집app/<name>/harness.json하고 실행합니다agentcore deploy.

Interactive

프로젝트 디렉터리agentcore에서를 실행하여 TUI를 열고 추가를 선택한 다음 하네스를 선택합니다. 마법사는 모델 및 지침 구성을 단계별로 안내합니다.

  1. 모델 공급자를 선택합니다. Amazon Bedrock, OpenAI, Google Gemini 및 모든 LiteLLM 호환 공급자가 각각 기본 모델로 지원됩니다.

    하네스 추가 마법사: 모델 공급자 선택
  2. API 형식을 선택합니다. Amazon Bedrock 및 OpenAI에서 Converse Stream(기본값), 응답 또는 채팅 완료를 선택합니다. 응답 및 채팅 완료는 Bedrock Mantle에서 제공합니다.

    하네스 추가 마법사: API 형식 선택
  3. LiteLLM을 선택하면 마법사는 LiteLLM 관련 필드, 즉 선택적 API 키 ARN, OpenAI 호환 게이트웨이에 대한 선택적 API 기본 URL, 공급자에게 전달되는 선택적 추가 파라미터를 묻는 메시지를 표시합니다.

    하네스 추가 마법사: LiteLLM API 키 ARN, API 기본 및 추가 파라미터 단계

나머지 단계(환경, 메모리, 고급 설정)를 계속 진행하고 확인합니다. 그런 다음를 실행agentcore deploy하여 적용합니다.

모든 모델 사용, 세션 중간 전환

OpenAI 호환 엔드포인트를 포함하여 LiteLLM을 통해 Amazon Bedrock, OpenAI, Google Gemini 또는 기타 공급자의 모델을 사용합니다. 동일한 세션의 턴 간에 공급자를 전환하고 대화를 계속합니다. 컨텍스트가 이월됩니다.

모델을 지정하지 않으면 즉시 시작할 수 있도록 하네스는 기본적으로 Amazon Bedrock(global.anthropic.claude-sonnet-4-6)의 Anthropic의 Claude Sonnet 4.6으로 설정됩니다. 호출당 기본값 또는 재정의는 언제든지 변경할 수 있습니다.

타사 API 키를 AgentCore Identity의 토큰 볼트에 API 키 자격 증명 공급자로 저장합니다. 하네스는 호출 시 키를 가져옵니다. 에이전트 코드에는 원시 자격 증명이 표시되지 않습니다.

AWS CLI/boto3

AgentCore 자격 증명에 API 키 등록:

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

동일한 세션의 턴 간에 공급자를 전환합니다.

# 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."}]}], )
작은 정보

openAiModelConfig와 함께 "endpoint": {"bedrockMantle": {}}를 사용하여 Amazon Bedrock Mantle을 통해 OpenAI 모델을 호출합니다. API 키가 필요하지 않으며 실행 역할 자격 증명을 사용합니다. OpenAI 엔드포인트를 직접 호출할 apiKeyArn 때와 openAiModelConfig 함께를 사용합니다.

AgentCore CLI

AgentCore 자격 증명에 API 키 추가:

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

Bedrock Mantle을 사용하여 호출(응답 형식, 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."

동일한 세션에서 OpenAI 다이렉트로 전환합니다.

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

자세히 알아보기: AgentCore Identity, API 키 자격 증명 공급자.

모델 API 형식 선택

Amazon Bedrock 및 OpenAI 모델 구성은 각각 하네스가 모델을 호출하는 데 사용하는 API 프로토콜을 선택하는 선택적 apiFormat 필드를 수락합니다.

의 경우는 하네스가 호출하는 API 프로토콜과 Amazon Bedrock 엔드포인트를 모두 bedrockModelConfig apiFormat 선택합니다.

  • converse_stream - bedrock-runtime 엔드포인트에서 제공하는 Amazon Bedrock Converse API입니다. 기본값입니다.

  • responses - bedrock-mantle 엔드포인트에서 제공하는 OpenAI 호환 응답 API입니다.

  • chat_completions - bedrock-mantle 엔드포인트에서 제공하는 OpenAI 호환 채팅 완료 API입니다.

bedrock-mantle 엔드포인트는 기본 bedrock-runtime 엔드포인트와 다른 모델 및 기능 세트를 지원합니다. 자세한 내용은 Amazon Bedrock에서 지원하는 엔드포인트를 참조하세요.

의 경우 openAiModelConfig는 다음 중 하나일 apiFormat 수 있습니다.

  • responses - OpenAI 응답 API. 기본값입니다.

  • chat_completions - OpenAI Chat Completions API.

두 구성 모두 선택적 additionalParams 필드를 허용합니다. 의 공급자별 파라미터additionalParams는 변경되지 않고 모델 공급자에게 전달됩니다.

중요

의 파라미터는 엔드포인트 라우팅, 자격 증명 처리, 리전 선택 등 공급자 동작을 변경할 additionalParams 수 있습니다. 애플리케이션이 호출자 제공 모델 구성을 로 전달하는 경우 호출 전에 이러한 필드를 InvokeHarness검증합니다. 공동 책임 모델을(를) 참조하세요.

AgentCore CLI

--api-format 플래그를 사용하여 하네스를 생성하거나 업데이트할 때 API 형식을 설정합니다.

# 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
참고

--api-formatconverse_streamchat_completions 경우 responses, 또는 ,의 chat_completions 경우 --model-provider bedrock, responses 또는를 허용합니다--model-provider open_ai. gemini 또는 에는 적용되지 않습니다lite_llm.

Amazon Bedrock 가드레일 적용

Amazon Bedrock 가드레일을 사용하여 모델 입력 및 출력에서 유해한 콘텐츠를 필터링하거나 거부된 주제를 차단할 수 있습니다. 각 모델 요청에 가드레일을 적용하려면에 guardrailConfig 객체를 추가합니다bedrockModelConfig.additionalParams. 하네스는 각 모델 요청과 함께이 객체를 Amazon Bedrock에 전달합니다.

Amazon Bedrock Guardrails를 하네스bedrockModelConfig와 함께 사용하려면 converse_stream API 형식으로를 구성합니다. apiFormat를 생략하면 기본적으로 하네스가를 사용합니다converse_stream. CreateHarness 또는에서이 구성을 설정UpdateHarness하거나에서 한 번의 호출에 대해 재정의합니다InvokeHarness.

다음 Python 예제에서는 가드레일 구성을 InvokeHarness 사용하여를 호출합니다. HARNESS_ARN을 하네스 ARN으로 바꾸고 SESSION_ID를 고유한 런타임 세션 ID로 바꿉니다.

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

기준 모델 권한은 실행 역할 정책을 참조하세요. 하네스 실행 역할 정책에 다음 JSON 문을 추가합니다.

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

모델 요청과 동일한 AWS 리전의 가드레일을 사용합니다. 가드레일이 개입하면 응답 스트림은 guardrail_intervened 중지 이유로 보고합니다.

가드레일 구성 필드에 대한 자세한 내용은 Converse API에서 가드레일 사용을 참조하세요. IAM 권한에 대한 자세한 내용은 Amazon Bedrock Guardrails를 사용하도록 권한 설정을 참조하세요.

LiteLLM을 통해 모델 사용

OpenAI 호환 엔드포인트를 포함하여 LiteLLM이 지원하는 모든 공급자에게 연락liteLlmModelConfig하려면를 사용합니다. gemini/gemini-2.5-pro 또는 modelId와 같은 LiteLLM 공급자 접두사 모델 ID로 설정합니다anthropic/claude-sonnet-4-6.

API 키(예: Google 또는 Anthropic)로 인증하는 공급자는가 필요합니다apiKeyArn. bedrock/ 접두사로 액세스한 Amazon Bedrock 모델은 하네스 실행 역할의 권한을 사용하며 API 키가 필요하지 않습니다.

  • modelId (필수) - LiteLLM 공급자 접두사 모델 ID입니다.

  • apiKeyArn - AgentCore Identity에 API 키 자격 증명 공급자로 저장된 공급자 API 키의 ARN입니다. 엔드포인트는이 API 키를 수락해야 합니다.

  • apiBase - 프록시 또는 자체 호스팅 엔드포인트와 같은 OpenAI 호환 게이트웨이에 대한 사용자 지정 엔드포인트 URL입니다.

  • additionalParams - LiteLLM으로 전달되는 공급자별 파라미터는 변경되지 않습니다. 여기에는 엔드포인트를 재정의하거나(aws_bedrock_runtime_endpoint), IAM 역할을 수임하거나(aws_role_name) 요청 라우팅을 변경할 수 있는 파라미터가 포함됩니다. 공동 책임 모델을(를) 참조하세요.

liteLlmModelConfig는 선택 사항인 maxTokens, temperaturetopP 필드도 허용합니다.

boto3

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

를 사용하여 LiteLLM 모델 구성--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

를 사용하여 OpenAI 호환 게이트웨이에 도달--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
참고

--api-base 및는 에만 --additional-params 적용됩니다--model-provider lite_llm. bedrock/ 접두사로 도달한 Amazon Bedrock 모델은 실행 역할의 권한을 사용하며가 필요하지 않습니다--api-key-arn.

하네스가 API 키 자격 증명 공급자를 사용하는 경우 실행 역할에 키를 읽을 수 있는 권한을 부여합니다. 보안 및 액세스 제어을(를) 참조하세요.

하네스 구성에 대한 자세한 내용은 섹션을 참조하세요. API 설명서