View a markdown version of this page

구성 번들 업데이트 - Amazon Bedrock AgentCore

구성 번들 업데이트

구성 번들을 업데이트하여 구성이 변경된 변경 불가능한 새 버전을 생성합니다. 각 업데이트는 새 버전 ID를 생성하며 기존 버전은 수정되지 않습니다. 버전은 git 커밋과 parentVersionIds마찬가지로를 통해 체인을 형성합니다.

코드 샘플

AgentCore CLI

에서 구성을 편집agentcore.json하고 재배포합니다. CLI는 기존 번들을 감지하고 올바른를 사용하여 새 버전을 parentVersionIds 자동으로 생성합니다.

# Edit the bundle configuration in agentcore.json (change model_id, system prompt, etc.) # Then redeploy to create a new version: agentcore deploy # After deploying, confirm a new immutable version was created: agentcore cb versions --name MyBundle # Inspect what changed between two versions (get IDs from `cb versions`): agentcore cb diff --name MyBundle --from <v1> --to <v2>
AWS SDK (boto3)

모델 ID 변경 업데이트:

import boto3 import uuid client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") RUNTIME_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123" response = client.update_configuration_bundle( bundleId="myAgentConfig-a1b2c3d4e5", components={ RUNTIME_ARN: { "configuration": { "system_prompt": "You are a helpful customer support assistant.", "model_id": "us.anthropic.claude-sonnet-4-20250514-v1:0", "temperature": 0.7, } } }, parentVersionIds=["12345678-1234-1234-1234-123456789012"], commitMessage="Switch to Claude Sonnet 4", clientToken=str(uuid.uuid4()), ) print(f"New version ID: {response['versionId']}")

권장 사항 결과에서 권장 시스템 프롬프트로 업데이트합니다.

import boto3 import uuid cp_client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") dp_client = boto3.client("bedrock-agentcore", region_name="us-west-2") RUNTIME_ARN = "arn:aws:bedrock-agentcore:us-west-2:123456789012:runtime/MyAgent-abc123" # Get the recommendation result recommendation = dp_client.get_recommendation(recommendationId="myRec-a1b2c3d4e5") recommended_prompt = recommendation["result"]["systemPromptRecommendationResult"]["recommendedSystemPrompt"] # Update the bundle with the recommended prompt response = cp_client.update_configuration_bundle( bundleId="myAgentConfig-a1b2c3d4e5", components={ RUNTIME_ARN: { "configuration": { "system_prompt": recommended_prompt, "model_id": "global.anthropic.claude-sonnet-4-5-20250929-v1:0", "temperature": 0.7, } } }, parentVersionIds=["12345678-1234-1234-1234-123456789012"], commitMessage="Apply recommended system prompt", createdBy={"name": "optimization-job", "arn": recommendation["recommendationArn"]}, clientToken=str(uuid.uuid4()), ) print(f"New version ID: {response['versionId']}")

요청 파라미터

파라미터 유형 필수 설명

bundleId

문자열

업데이트할 구성 번들의 ID입니다. 경로 파라미터로 전달됩니다.

bundleName

문자열

No

번들의 이름을 업데이트했습니다.

description

문자열

No

설명을 업데이트했습니다. 최대 500자.

components

아니요

구성 요소 구성을 업데이트했습니다. 이러한 구성 요소를 사용하여 새 버전을 생성합니다.

parentVersionIds

문자열 목록

아니요

계보 추적을 위한 상위 버전 IDs입니다. 를 업데이트할 때 필요합니다components. 일반 커밋: 단일 상위. 병합 커밋: 상위 두 개(대상 브랜치 최신, 소스 브랜치 최신). 브랜치가 이미 있는 경우 첫 번째 상위 브랜치가 해당 브랜치의 최신 버전이어야 합니다.

branchName

문자열

No

이 버전의 브랜치 이름입니다. 지정하지 않으면가 상위 브랜치를 상속하거나 기본값은 입니다mainline.

commitMessage

문자열

No

변경 사항을 설명하는 메시지를 커밋합니다. 최대 500자.

createdBy

객체

아니요

이 버전을 생성한 소스입니다. name (필수) 및 arn (선택 사항)를 포함합니다. 이를 사용하여 버전이 사용자, 권장 작업 또는 기타 자동화에 의해 생성되었는지 여부를 추적할 수 있습니다.

clientToken

문자열

No

Idempotency 토큰입니다.

응답

Field 유형 설명

bundleArn

문자열

구성 번들의 ARN입니다.

bundleId

문자열

구성 번들의 ID입니다.

versionId

문자열

이 업데이트로 생성된 새 버전의 UUID입니다.

updatedAt

타임스탬프

업데이트가 적용된 시간입니다.

분기 및 병합

구성 번들은 git 유사 분기를 지원합니다.

  • 선형 커밋. 단일 상위 항목을 생략parentVersionIds하거나 전달합니다. 새 버전은 브랜치 계보를 확장합니다.

  • 새 브랜치. 아직 존재하지 branchName 않는와 분기하려는 버전을 parentVersionIds 가리키는를 지정합니다.

  • 커밋을 병합합니다. 2개 전달parentVersionIds: 첫 번째는 대상 브랜치의 최신 버전이고, 두 번째는 소스 브랜치의 최신 버전입니다. 그러면 대상 브랜치에 병합 커밋이 생성됩니다.

오류

오류 HTTP 상태 설명

ValidationException

400

잘못된 요청 파라미터입니다. 필드 제약 조건을 확인합니다.

ResourceNotFoundException

404

지정된 bundleId이 존재하지 않습니다.

ConflictException

409

버전 충돌. 지정된 상위 버전은 브랜치의 최신 버전이 아닙니다. 최신 버전을 가져와 다시 시도합니다.

AccessDeniedException

403

권한이 부족합니다. IAM 정책에가 포함되어 있는지 확인합니다bedrock-agentcore:UpdateConfigurationBundle.

ThrottlingException

429

요청 속도가 초과되었습니다. 지수 백오프를 사용하여 재시도하세요.

InternalServerException

500

서비스 측 오류입니다. 요청을 다시 시도하세요.