기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에이전틱 검색을 사용하여 지식 베이스 쿼리
에이전트 검색은 파운데이션 모델을 사용하여 복잡한 쿼리를 하위 쿼리로 지능적으로 분해하고, 지식 기반에서 관련 정보를 반복적으로 검색하고, 검색된 결과가 원래 쿼리에 응답하기에 충분한지 평가합니다. 이 접근 방식은 단일 검색 패스가 완전히 해결하지 못할 수 있는 복잡한 다단계 질문의 검색 정확도를 개선합니다.
예를 들어, "어떤 잡지가 처음 시작되었는지, Arthur's™ 또는 First for Women?" 쿼리가 주어지면 에이전트 검색은 이를 "Athur's™가 언제 설립되었나요?"와 같은 별도의 하위 쿼리로 나눕니다. 및 "First for 우먼이 설립된 시기"는 각각에 대한 결과를 검색하고 결합된 결과가 충분한지 평가합니다.
에이전트 검색 작동 방식
AgenticRetrieveStream API에 요청을 보내면 다음 프로세스가 수행됩니다.
-
세션 기록 로드 -
memoryConfiguration가 포함된를 제공하면sessionBindingAmazon Bedrock은 에이전트가 작업을 시작하기 전에 AgentCore 메모리 단기 메모리에서 해당 세션의 이전 기록을 복원합니다. 복원된 기록은 요청에 대한 대화 컨텍스트가 됩니다. -
계획 - 파운데이션 모델은 쿼리를 분석하고 이를 하나 이상의 하위 쿼리로 분해하는 계획을 생성합니다. 각 하위 쿼리는 지식 기반 리트리버 또는 AgentCore 메모리 장기 메모리 등 구성한 특정 소스를 대상으로 합니다. 검색 결과를 수집한 후 파운데이션 모델은 원래 쿼리에 응답하기에 충분한지 평가합니다. 그렇지 않은 경우 구성된 최대값까지 추가 검색 반복을 계획하고 실행합니다.
-
검색 - 하위 쿼리는 구성된 소스에 대해 실행됩니다. 결과는 각 검색에서 수집됩니다.
-
전체 문서 확장 - 파운데이션 모델이 문서의 전체 콘텐츠가 필요하다고 판단하면(예: 요약, 완전성 확인 또는 특정 섹션 액세스) GetDocumentContent API를 호출하여 전체 문서 콘텐츠를 검색합니다.
-
응답 생성 -
generateResponse가true(기본값)으로 설정된 경우 파운데이션 모델은 검색된 결과에서 자연어 응답을 합성합니다. Amazon Bedrock은responseEvent이벤트를 통해 답변을 다시 스트리밍합니다.sessionBinding이 설정되고이persistenceMode이면DEFAULTAmazon Bedrock은 세션에 대한 질문과 생성된 답변을 유지합니다. -
결과 이벤트 - 모든 반복에서 중복 제거된 검색 결과, 합성된 전체 자연어 답변 및 인용이 반환됩니다. 추적 이벤트는 관찰성을 위해 프로세스 전체에서 스트리밍됩니다.
사전 조건
에이전트 검색을 사용하려면 먼저 다음이 있어야 합니다.
-
완전 관리형 Amazon Bedrock 지식 기반. 에이전트 검색은 현재 관리형 지식 기반만 지원합니다.
-
Amazon Bedrock의 파운데이션 모델에 액세스하여 쿼리 계획 및 평가에 사용합니다.
-
필요한 IAM 권한입니다. 자세한 내용은 에이전트 검색에 필요한 권한 단원을 참조하십시오.
에이전트 검색으로 지식 기반 쿼리
에이전트 검색을 사용하려면 AgenticRetrieveStream 요청을 보냅니다. 응답은 검색 결과 및 추적 이벤트를 포함하는 스트림입니다.
다음 표에서는 키 요청 필드를 설명합니다.
| 필드 | 설명 |
|---|---|
| messages | 입력 쿼리 및 대화 기록입니다. 각 메시지에는 text 값과 content 필드(user 또는 )가 있는 role 필드가 포함됩니다assistant. |
| 리트리버 | 데이터를 가져올 지식 기반 리트리버입니다. 최대 5개의 리트리버를 지정할 수 있으며, 각 리트리버는 ID별로 관리형 지식 기반을 가리킵니다. 각 리트리버에는 선택적으로 메타데이터 필터와 최대 결과 수가 포함될 수 있습니다. |
| agenticRetrieveConfiguration | 쿼리 계획 및 평가에 사용할 파운데이션 모델과 선택적으로 순위 변경 모델 및 최대 에이전트 반복 수를 포함한 에이전트 검색 구성입니다. |
| 필드 | 설명 |
|---|---|
| policyConfiguration | 에이전트 검색 중에 적용되도록 Amazon Bedrock 가드레일을 구성합니다. guardrailId 및를 지정합니다guardrailVersion. |
| userContext | 액세스 제어 필터링을 위한 사용자 컨텍스트를 제공합니다. |
| memoryConfiguration | 검색에 사용할 AgentCore 메모리 리소스를 구성합니다. 를 지정한 memoryId다음 세션을 sessionBinding 복원하고 계속하려면 에이전트가 장기 메모리에서 검색retrievalConfigs하도록 하거나 둘 다 지정합니다. 자세한 내용은 에이전트 검색과 함께 AgentCore 메모리 사용 단원을 참조하십시오. |
| generateResponse | true (기본값)로 설정하면 파운데이션 모델에 검색된 결과에서 자연어 응답을 생성하도록 지시하는 부울 필드입니다. 답변은 텍스트 청크로 다시 스트리밍되어 결과 이벤트에 포함됩니다. |
전체 요청 및 응답 구문은 API 참조AgenticRetrieveStream의 섹션을 참조하세요.
에이전트 검색 응답
AgenticRetrieveStream 응답은 다음 이벤트 유형을 포함하는 스트림입니다.
-
결과 이벤트(
AgenticRetrieveResultEvent) - 처리가 완료될 때 전달되는 최종 이벤트입니다. 검색 결과를 포함하고, 응답 생성이 활성화되면 생성된 응답을 포함합니다. 결과 이벤트에는 다음이 포함됩니다.-
검색 결과(
results) - 모든 반복에서 검색된 소스 청크입니다. 각 결과에는 콘텐츠, 소스 리트리버 식별자 및 선택적 메타데이터가 포함됩니다. 여러 하위 쿼리에서 동일한 청크를 검색하면 최종 결과에 한 번만 나타납니다. -
생성된 응답(
generatedResponse) -generateResponse이true(기본값)으로 설정된 경우 결과 이벤트에는 다음이 포함된generatedResponse객체가 포함됩니다.-
answer- 합성된 전체 자연어 응답 텍스트입니다. -
citations- 답변 범위를 지원되는 검색 결과에 매핑하는 선택적 목록입니다. 각 인용에는 다음이 포함됩니다.-
startIndex-answer문자열 내에서 인용된 구절이 시작되는 문자 오프셋입니다. -
endIndex- 인용된 구절이 끝나는 문자 오프셋입니다(제외 - 인용된 텍스트는에서startIndex까지 실행되지만는 포함하지 않음endIndex). -
references- 각 참조에 동일한 결과 이벤트의results배열로 인덱싱하는resultIndex필드가 있는 목록으로, 인용된 범위를 지원하는 검색 결과를 나타냅니다.
-
-
-
-
응답 이벤트(
AgenticRetrieveResponseEvent) -generateResponse이true(기본값)로 설정되면 응답 생성 중에responseEvent이벤트가 스트리밍됩니다. 각 이벤트에는 합성된 자연어 답변의 증분 부분이 있는text필드가 포함되어 있습니다. -
추적 이벤트(
AgenticRetrieveTraceEvent) - 각 단계에 대한 가시성을 제공하는 에이전트 검색 프로세스 중에 스트리밍되는 이벤트입니다. 추적 이벤트의 유형은 다음과 같습니다.-
계획 - 파운데이션 모델이 쿼리를 분석하고 하위 쿼리를 생성하고 있음을 나타냅니다. 계획된 작업과 대상 소스를 포함합니다. 각 작업은 지식 기반을 대상으로 하는
retrieve작업이거나 구성된 쿼리 및를 포함하는 장기 메모리를 대상으로 하는memoryRetrieve작업입니다memoryId. -
검색 - 구성된 소스에 대해 검색이 실행되고 있음을 나타냅니다. 검색 입력, 출력 및 경고 또는 실패를 포함합니다.
retrievalMetadata항목은BedrockKnowledgeBase또는 소스 유형을 보고합니다BedrockAgentCoreMemory. -
추측 검색 - 지연 시간을 줄이기 위해 첫 번째 계획 단계 전에 실행되는 초기 검색입니다. 단일 지식 기반의 경우 원시 사용자 쿼리를 사용하여 결과를 검색합니다. 여러 지식 기반의 경우 프로브 검색을 수행하여 쿼리를 적절한 리트리버로 라우팅하는 데 도움이 됩니다. 를 구성할 때
retrievalConfigs이 단계는 장기 메모리에서도 검색할 수 있습니다. -
전체 문서 확장 - 에이전트가 특정 문서의 전체 콘텐츠를 검색하고 있음을 나타냅니다. 문서 ID, 소스 리트리버 및 상태(InProgress, 성공 또는 실패)를 포함합니다.
-
세션 기록 로드 - 에이전트가 작업을 시작하기 전에 Amazon Bedrock이 AgentCore 메모리 단기 메모리에서 이전 세션의 기록을 복원하고 있음을 나타냅니다.
-
에이전트 검색과 함께 AgentCore 메모리 사용
Amazon Bedrock AgentCore 메모리 리소스에 대한 에이전트 검색 액세스 권한을 부여할 수 있습니다. 메모리 액세스를 사용하면 검색을 통해 이전 세션을 계속하고 에이전트가 이전 세션에서 학습한 내용을 활용할 수 있습니다. 계정에 상태인 메모리 리소스memoryId의를 memoryConfiguration 필드에 제공합니다ACTIVE.
메모리는 선택 사항입니다. 만 memoryConfiguration 설정하는 memoryId는 유효하지 않습니다. 를 제공할 때 다음 두 가지 방법 중 하나 이상에서 메모리 리소스를 사용해야 memoryConfiguration합니다.
-
단기 메모리(
sessionBinding) - 요청이 새로 시작하는 대신 해당 세션을 계속하도록 이전 세션의 기록을 복원합니다.actorId및를 사용하여 세션을 식별합니다sessionId. 는 기록의actorId범위를 지정하므로 한 액터의 기록은 다른 액터에 대해 반환되지 않습니다.sessionBinding이 설정된 경우는의role와 함께 현재 쿼리만 전달messages해야 합니다user. 동일한 요청messages에서에서 세션을 복원하고 이전 대화 기록을 제공할 수 없습니다. 복원은USER또는 역할을 사용하여 대화형 이벤트를 로드합니다ASSISTANT. -
장기 메모리(
retrievalConfigs) - 에이전트가 사용할 수 있는 이전 세션에서 AgentCore 메모리가 추출한 메모리 레코드를 만듭니다.namespace접두사 또는를 사용하여 상위 아래의 모든 네임스페이스에서namespacePath검색할 레코드를 식별합니다. 와를 사용하여 결과의 범위를 더 좁힐 수strategyId있습니다metadataFilters. 에이전트는 자체 쿼리를 검색하고 구성할지 여부를 결정합니다.
자리 표시자가 이미 확인된 상태에서 메모리 전략에 구성된 그대로 네임스페이스를 제공합니다. 예를 들어 전략이 네임스페이스를 정의하는 경우 템플릿 대신 확인된 값을 /strategy/{memoryStrategyId}/actor/{actorId}제공합니다. 네임스페이스, 전략 및 메모리 레코드에 대한 자세한 내용은 Amazon Bedrock AgentCore 개발자 안내서의 메모리 용어를 참조하세요.
참고
올바른 memoryId, sessionBinding및 retrievalConfigs 값을 제공해야 합니다. 에이전트 검색은 제공하는 세션 또는 네임스페이스가 계속 진행하려는 대화와 일치하는지 확인하지 않습니다. 잘못된 값을 입력하면 예상치 못한 결과가 발생합니다.
sessionBinding이 설정되면 persistenceMode를 사용하여 현재 교환이 세션에 다시 기록되는지 여부를 제어합니다.
-
DEFAULT(기본값) - 세션에 대한 질문과 생성된 답변을 단일 이벤트로 지속합니다. 이 값은 여야generateResponse합니다true. -
NONE- 세션을 변경하지 않은 상태로 둡니다. 세션 기록을 추가하지 않고 읽으려면이 값을 사용합니다.
다음 예시에서는 이전 세션을 복원하고, 에이전트에게 해당 액터의 장기 메모리에 대한 액세스 권한을 부여하고, 교환을 세션으로 다시 유지합니다.
{ "messages": [ { "content": { "text": "What did we decide about the migration timeline?" }, "role": "user" } ], "retrievers": [ { "configuration": { "knowledgeBase": { "knowledgeBaseId": "KB12345678" } } } ], "agenticRetrieveConfiguration": { "foundationModelType": "MANAGED", "rerankingModelType": "MANAGED" }, "memoryConfiguration": { "memoryId": "projectAssistantMemory-1a2b3c4d5e", "sessionBinding": { "actorId": "user-123", "sessionId": "session-456" }, "retrievalConfigs": [ { "namespace": "/strategy/summarization-1a2b3c4d5e/actor/user-123" } ], "persistenceMode": "DEFAULT" } }
응답 스트림은 메모리 활동을 보고합니다. 복원은 세션 기록 로드 추적 이벤트로 표시됩니다. 장기 메모리가 반환하는 레코드는 소스 유형이 인 검색 추적 이벤트BedrockAgentCoreMemory, 검색된 단계에 표시됩니다.
검색 자체가 나타나는 방식은 언제 나타나는지에 따라 달라집니다. 파운데이션 모델이 메모리를 검색하도록 선택하면(일반적으로 지속적인 세션에서) 검색이 추적 계획 이벤트에 대한 memoryRetrieve 작업으로 나타납니다. 새 세션에서 에이전트는 투기 검색 중에 첫 번째 계획 단계 전에 장기 메모리를 대신 검색할 수 있습니다.이 경우 아무 memoryRetrieve 작업도 내보내지 않습니다. 자세한 내용은 에이전트 검색 응답 단원을 참조하십시오.
에이전트 검색에 필요한 권한
AgenticRetrieveStream API를 사용하려면 호출 IAM 자격 증명에 다음 권한이 있어야 합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "bedrock:AgenticRetrieveStream", "Resource": "*" }, { "Effect": "Allow", "Action": [ "bedrock:Retrieve", "bedrock:GetDocumentContent" ], "Resource": "arn:aws:bedrock:region:account-id:knowledge-base/*" }, { "Effect": "Allow", "Action": "bedrock:InvokeModelWithResponseStream", "Resource": "*" } ] }
에이전트 검색과 함께 가드레일을 사용하는 경우 다음 권한을 추가합니다.
{ "Effect": "Allow", "Action": [ "bedrock:GetGuardrail", "bedrock:ApplyGuardrail" ], "Resource": "*" }
에이전트 검색과 함께 AgentCore 메모리 리소스를 사용하는 경우 다음 권한을 추가합니다.
{ "Effect": "Allow", "Action": [ "bedrock-agentcore:GetMemory", "bedrock-agentcore:ListEvents", "bedrock-agentcore:RetrieveMemoryRecords", "bedrock-agentcore:CreateEvent" ], "Resource": "arn:aws:bedrock-agentcore:region:account-id:memory/memory-id" }
bedrock-agentcore:ListEvents는를 설정한 경우에만 필요합니다sessionBinding. bedrock-agentcore:RetrieveMemoryRecords는를 설정한 경우에만 필요합니다retrievalConfigs. bedrock-agentcore:CreateEvent는 persistenceMode가 인 경우에만 필요합니다DEFAULT.
메모리 리소스가 고객 관리형 키로 암호화된 경우 해당 키에 대해 다음 권한을 추가합니다.
{ "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id" }
고려 사항
에이전트 검색을 사용할 때는 다음 사항에 유의하세요.
-
에이전트 검색은 관리형 Amazon Bedrock 지식 기반만 지원합니다.
-
요청당 리트리버 할당량, 검색 호출당 결과 및 최대 에이전트 반복은 섹션을 참조하세요관리형 지식 기반에 대한 서비스 할당량.
-
최대 반복 횟수를 줄이면 에이전트가 더 일찍 중지되어 복잡한 쿼리의 정확도가 저하될 수 있습니다.
-
가드레일을 구성할 때는
BLOCK작업만 지원됩니다.MASK작업은 에이전트 검색에서 지원되지 않습니다. -
고객은 제공된 경우 에이전트 검색 중에 사용되는 파운데이션 모델, 임베딩 모델 및 순위 조정 모델을 제공하고 소유합니다. IAM 자격 증명은 이러한 모델을 호출하는 데 사용됩니다.
-
AgentCore 메모리 리소스를 사용하는 경우 리소스는 지식 기반과 동일한 계정에 있어야 하며
ACTIVE상태여야 합니다. -
sessionBinding를 설정할 때는의role와 함께 현재 쿼리만 포함해야messages합니다user. 동일한 요청messages에서에서 세션을 복원하고 이전 대화 기록을 제공할 수 없습니다. -
세션을 복원하면 역할이
USER또는 인 대화 이벤트가 로드됩니다ASSISTANT. AgentCore 메모리는 복원이 로드되지 않는TOOL및OTHER역할도 허용합니다. 자세한 내용은 Amazon Bedrock AgentCore API 참조Conversational의 섹션을 참조하세요. AgentCore -
retrievalConfigs는 현재 최대 하나의 항목을 허용하며, 각 항목은 최대 5개의metadataFilters표현식을 허용합니다. -
세션이 생성된 응답을 유지하기
true때문에persistenceMode의는DEFAULTgenerateResponse여야 합니다.