Amazon Bedrock용 에이전트의 작동 방식 - Amazon Bedrock

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon Bedrock용 에이전트의 작동 방식

Amazon Bedrock용 에이전트는 에이전트를 설정하고 실행하는 데 도움이 되는 다음과 같은 두 가지 주요 API 작업 세트로 구성됩니다.

  • 에이전트와 관련 리소스를 생성, 구성 및 관리하기 위한 빌드 타임 API 작업

  • 런타임 API 작업을 통해 사용자 입력으로 에이전트를 호출하고 작업을 수행하기 위한 오케스트레이션을 시작합니다.

빌드 타임 구성

에이전트는 다음 구성 요소로 이뤄져 있습니다.

  • 기초 모델 — 에이전트가 오케스트레이션 프로세스에서 사용자 입력 및 후속 프롬프트를 해석하기 위해 호출하는 기초 모델 (FM) 을 선택합니다. 또한 에이전트는 FM을 호출하여 응답을 생성하고 프로세스의 후속 단계를 진행합니다.

  • 지침 — 상담원의 용도를 설명하는 지침을 작성합니다. 고급 프롬프트를 사용하면 오케스트레이션의 모든 단계에서 에이전트에 대한 지침을 추가로 사용자 지정하고 Lambda 함수를 포함하여 각 단계의 출력을 파싱할 수 있습니다.

  • 다음 중 하나 이상:

    • 작업 그룹 - 상담원이 사용자를 위해 수행해야 하는 작업을 정의합니다 (다음 리소스 제공).

      • 에이전트가 사용자로부터 이끌어내야 하는 매개 변수를 정의하기 위한 다음 스키마 중 하나 (각 작업 그룹은 다른 스키마를 사용할 수 있음).

        • 에이전트가 작업을 수행하기 위해 호출할 수 있는 API 작업을 정의하는 OpenAPI 스키마입니다. OpenAPI스키마에는 사용자로부터 가져와야 하는 매개 변수가 포함됩니다.

        • 에이전트가 사용자로부터 가져올 수 있는 매개 변수를 정의하는 함수 세부 정보 스키마입니다. 그런 다음 에이전트의 추가 오케스트레이션을 위해 이러한 매개 변수를 사용하거나 자체 애플리케이션에서 매개 변수를 사용하는 방법을 설정할 수 있습니다.

      • (선택 사항) 다음과 같은 입력 및 출력을 갖는 Lambda 함수:

        • 입력 — 오케스트레이션 중에 식별된 API 작업 및/또는 파라미터.

        • 출력 — API 호출의 응답 .

    • 지식 기반 — 지식 베이스를 에이전트와 연결합니다. 에이전트는 응답 생성 및 입력을 오케스트레이션 프로세스 단계로 보강하기 위해 지식베이스를 쿼리하여 추가 컨텍스트를 찾습니다.

  • 프롬프트 템플릿 — 프롬프트 템플릿은 FM에 제공할 프롬프트를 만들기 위한 기초입니다. Amazon Bedrock용 에이전트는 사전 처리, 오케스트레이션, 지식 기반 응답 생성 및 사후 처리 중에 사용되는 기본 4개의 기본 프롬프트 템플릿을 제공합니다. 선택적으로 이러한 기본 프롬프트 템플릿을 편집하여 시퀀스의 각 단계에서 에이전트의 동작을 사용자 지정할 수 있습니다. 문제 해결을 위해 또는 단계가 불필요하다고 판단되는 경우 단계를 해제할 수도 있습니다. 자세한 정보는 Amazon Bedrock의 고급 프롬프트을 참조하세요.

빌드 시 이러한 모든 구성 요소가 수집되어 에이전트가 사용자 요청이 완료될 때까지 오케스트레이션을 수행하도록 기본 프롬프트를 구성합니다. 고급 프롬프트를 사용하면 추가 로직과 간단한 예제를 사용하여 이러한 기본 프롬프트를 수정함으로써 에이전트 간접 호출의 각 단계에 대한 정확도를 높일 수 있습니다. 기본 프롬프트 템플릿에는 지침, 작업 설명, 지식 기반 설명 및 대화 기록이 포함되어 있으며, 필요에 맞게 에이전트를 수정하도록 사용자 지정할 수 있습니다. 그런 다음 보안 구성을 포함하여 에이전트의 모든 구성 요소를 패키지화하는 에이전트를 준비합니다. 에이전트를 준비하면 런타임에 테스트할 수 있는 상태가 됩니다. 다음 이미지는 빌드 타임 API 작업이 에이전트를 구성하는 방법을 보여줍니다.

빌드 타임 API가 에이전트를 구성하는 방법 작업 그룹은 에이전트가 호출할 수 있는 API 작업과 에이전트가 요청 및 응답을 처리하는 방법을 정의하는 OpenAPI 스키마와 Lambda 함수로 구성됩니다. 에이전트는 기본 프롬프트 템플릿, 제공된 지침, 연결된 작업 그룹 및 지식 기반으로부터 정보를 종합하여 사용하는 모델로 프롬프트를 생성합니다. 프롬프트는 에이전트의 프롬프트 저장소에 추가됩니다.

런타임 프로세스

런타임은 InvokeAgentAPI 작업에 의해 관리됩니다. 이 작업을 수행하면 다음 세 가지 주요 단계로 구성된 에이전트 시퀀스가 시작됩니다.

  1. 사전 처리 - 에이전트가 사용자 입력을 컨텍스트화하고 분류하는 방법을 관리하며 입력을 검증하는 데 사용할 수 있습니다.

  2. 오케스트레이션 — 사용자 입력을 해석하고, 작업 그룹을 호출하고, 지식 베이스를 쿼리하고, 출력을 사용자에게 반환하거나 지속적인 오케스트레이션을 위한 입력으로 반환합니다. 오케스트레이션은 다음 단계로 구성됩니다.

    1. 에이전트는 파운데이션 모델을 사용하여 입력을 해석하고 취해야 할 다음 단계를 위한 논리를 제시하는 근거를 생성합니다.

    2. 에이전트는 작업 그룹에서 어떤 작업을 호출해야 하는지 또는 어떤 지식 베이스를 쿼리해야 하는지 예측합니다.

    3. 에이전트가 작업을 호출해야 한다고 예측하면 에이전트는 사용자 프롬프트에서 결정된 파라미터를 작업 그룹용으로 구성된 Lambda 함수로 보내거나 응답으로 파라미터를 전송하여 제어를 반환합니다. InvokeAgent 에이전트가 작업을 호출하는 데 필요한 정보가 충분하지 않은 경우 다음 작업 중 하나를 수행할 수 있습니다.

      • 관련 지식창고 (지식창고 응답 생성) 를 쿼리하여 추가 컨텍스트를 검색하고 데이터를 요약하여 생성 범위를 확대하세요.

      • 작업에 필요한 모든 파라미터를 수집하도록 사용자에게 다시 요청하세요.

    4. 에이전트는 작업을 호출하거나 지식 베이스의 결과를 요약하여 관찰 결과라고 하는 결과를 생성합니다. 에이전트는 관찰을 사용하여 기본 프롬프트를 보강한 다음 파운데이션 모델을 통해 이를 해석합니다. 그런 다음 에이전트는 오케스트레이션 프로세스를 반복해야 하는지 여부를 결정합니다.

    5. 이 루프는 에이전트가 사용자에게 응답을 반환하거나 사용자에게 추가 정보를 요구하는 메시지를 표시해야 할 때까지 계속됩니다.

    오케스트레이션 중에는 에이전트에 추가한 상담원 지침, 작업 그룹, 지식 베이스가 기본 프롬프트 템플릿에 추가됩니다. 그런 다음 증강 기본 프롬프트를 사용하여 FM을 호출합니다. FM은 사용자 입력을 충족시킬 수 있는 최상의 단계와 궤적을 예측합니다. FM은 오케스트레이션을 반복할 때마다 호출할 API 작업이나 쿼리할 지식 베이스를 예측합니다.

  3. 사후 처리 — 에이전트는 사용자에게 반환할 최종 응답의 형식을 지정합니다. 이 단계는 기본적으로 꺼져 있습니다.

에이전트를 호출하면 런타임에 트레이스를 켤 수 있습니다. 추적을 통해 에이전트 시퀀스의 각 단계에서 에이전트의 근거, 작업, 쿼리 및 관찰 내용을 추적할 수 있습니다. 추적에는 각 단계에서 기초 모델로 전송되는 전체 프롬프트와 기초 모델의 결과, API 응답 및 지식 기반 쿼리가 포함됩니다. 트레이스를 사용하여 각 단계에서 에이전트의 추론을 이해할 수 있습니다. 자세한 내용은 Amazon Bedrock의 트레이스 이벤트단원을 참조하세요.

더 많은 InvokeAgent 요청을 통해 상담원과의 사용자 세션이 계속되더라도 대화 기록이 보존됩니다. 대화 기록은 오케스트레이션 기본 프롬프트 템플릿을 컨텍스트와 함께 지속적으로 보강하여 상담원의 정확성과 성능을 개선하는 데 도움이 됩니다. 다음 다이어그램은 런타임 중 에이전트의 프로세스를 보여줍니다.

에이전트가 런타임에 작동하는 방식 사용자 입력을 받은 후 에이전트는 프롬프트 저장소에서 증강 프롬프트를 가져오고 세션 저장소에서 대화 기록을 가져옵니다. 사전 처리 단계가 활성화된 경우 에이전트는 사전 처리 프롬프트와 함께 FM을 호출하여 사용자 입력을 확인합니다. 오케스트레이션 단계에서 에이전트는 오케스트레이션 프롬프트로 FM을 호출하고 응답을 구문 분석합니다. 그런 다음 필요에 따라 작업 그룹을 결정하고 지식 베이스를 쿼리하고 새로운 오케스트레이션 프롬프트를 트리거할 수 있는 관찰 결과를 생성합니다. 오케스트레이션 단계는 관찰 결과가 사용자에게 최종 응답을 반환할 때까지 반복됩니다.