

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

# Amazon Bedrock에서 에이전트에 작업 그룹 추가
<a name="agents-action-add"></a>

작업 그룹에 대한 OpenAPI 스키마 및 Lambda 함수를 설정한 후 작업 그룹을 만들 수 있습니다. 원하는 방법의 탭을 선택한 후 다음 단계를 따릅니다.

**참고**  
Anthropic Claude 3.5 Sonnet을 사용하는 경우, `httpVerb__actionGroupName__apiName` 양식의 도구 이름이 Anthropic 도구 이름 형식인 `^[a-zA-Z0-9_-]{1,64}$` 형식을 따르는지 확인합니다. actionGroupName 및 apiName에는 `'__'` 이중 밑줄이 포함되어서는 안 됩니다.

------
#### [ Console ]

[에이전트를 만들 때](agents-create.md) 규격 초안에 작업 그룹을 추가할 수 있습니다.

에이전트가 만들어진 후, 다음 단계에 따라 에이전트에 작업 그룹을 추가할 수 있습니다.

**에이전트에 작업 그룹을 추가하는 방법**

1. Amazon Bedrock 콘솔을 사용할 권한이 있는 IAM 자격 증명으로 AWS Management Console에 로그인합니다. 그 다음 [https://console.aws.amazon.com/bedrock](https://console.aws.amazon.com/bedrock)에서 Amazon Bedrock 콘솔을 엽니다.

1. 왼쪽 탐색 창에서 **에이전트**를 선택합니다. **에이전트** 섹션에서 에이전트를 선택합니다.

1. **에이전트 빌더에서 편집**을 선택합니다.

1. **작업 그룹** 섹션에서 **추가**를 선택합니다.

1. (선택 사항) **작업 그룹 세부 정보** 섹션에서 자동으로 생성된 **이름**을 변경하고, 필요한 경우 작업 그룹에 대한 **설명**을 제공합니다.

1. **작업 그룹 유형** 섹션에서 다음 방법 중 하나를 선택하여 에이전트가 작업 수행을 위해 사용자로부터 유도할 수 있는 파라미터를 정의합니다.

   1. **함수 세부 정보로 정의** - 작업을 수행하기 위해 에이전트가 사용자로부터 유도할 파라미터를 정의합니다. 함수 추가에 관한 자세한 내용은 [Amazon Bedrock에서 에이전트의 작업 그룹에 대한 함수 세부 정보 정의](agents-action-function.md) 섹션을 참조하세요.

   1. **API 스키마로 정의** - 에이전트가 간접 호출할 수 있는 API 작업과 파라미터를 정의합니다. 만든 OpenAPI 스키마를 사용하거나 콘솔 텍스트 편집기를 사용하여 스키마를 만듭니다. OpenAPI 스키마 설정에 대한 자세한 내용은 [Amazon Bedrock에서 에이전트의 작업 그룹에 대한 OpenAPI 스키마 정의](agents-api-schema.md) 섹션을 참조하세요.

1. **작업 그룹 간접 호출** 섹션에서 에이전트가 어떤 API 또는 함수를 간접 호출해야 하는지 예측하고 필요한 파라미터를 수신한 후에 수행할 작업을 설정합니다. 다음 옵션 중 하나를 선택하세요.
   + **빠르게 새 Lambda 함수 생성 - *권장*** - Amazon Bedrock이 에이전트에 대한 기본 Lambda 함수를 만들도록 하면 나중에 AWS Lambda에서 사용 사례에 맞게 수정할 수 있습니다. 에이전트가 세션을 바탕으로 예측한 API 또는 함수 및 해당 파라미터를 Lambda 함수에 전달합니다.
   + **기존 Lambda 함수 선택** - [이전에 AWS Lambda에서 만든 Lambda 함수](agents-lambda.md) 및 사용할 함수 버전을 선택합니다. 에이전트가 세션을 바탕으로 예측한 API 또는 함수 및 해당 파라미터를 Lambda 함수에 전달합니다.
**참고**  
Amazon Bedrock 서비스 위탁자가 Lambda 함수에 액세스할 수 있도록 허용하려면 [Lambda 함수에 리소스 기반 정책을 연결해야 합니다](agents-permissions.md#agents-permissions-lambda).
   + **제어 권한 반환** - 에이전트는 예측한 API 또는 함수에 대한 파라미터를 Lambda 함수에 전달하는 대신, 세션에서 결정한 작업에 대한 파라미터 및 정보 외에도 간접 호출이 필요하다고 예측되는 작업을 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_InvokeAgent.html) 응답에 전달하여 애플리케이션에 제어 권한을 반환합니다. 자세한 내용은 [InvokeAgent 응답에서 유도된 정보를 전송하여 에이전트 개발자에게 제어 반환](agents-returncontrol.md) 섹션을 참조하세요.

1. **작업 그룹 유형**에 대한 사용자의 선택에 따라 다음 섹션 중 하나가 표시됩니다.
   + **함수 세부 정보를 사용하여 정의**를 선택한 경우, **작업 그룹 함수** 섹션을 찾을 수 있습니다. 다음 단계에 따라 함수를 정의합니다.

     1. **이름**을 제공하고, 되도록이면 **설명**도 함께 제공합니다.

     1. 함수를 간접 호출하기 전에 사용자에게 확인을 요청하려면 **활성화**를 선택합니다. 함수를 간접 호출하기 전에 확인을 요청하면 애플리케이션이 악성 프롬프트 인젝션으로 인한 조치를 취하는 일이 없도록 보호할 수 있습니다.

     1. **파라미터** 하위 섹션에서 **파라미터 추가**를 선택합니다. 다음 필드를 정의합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/agents-action-add.html)

     1. 파라미터를 더 추가하려면 **파라미터 추가**를 선택합니다.

     1. 파라미터에서 필드를 편집하려면 해당 필드를 선택하고 필요에 따라 편집합니다.

     1. 파라미터를 삭제하려면 파라미터가 포함된 행에서 삭제 아이콘(![\[Trapezoid-shaped diagram showing data flow from source to destination through AWS Transfer Family.\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/images/icons/trash.png))을 선택합니다.

     JSON 객체를 사용하여 함수를 정의하려면 **표** 대신 **JSON 편집기**를 선택합니다. JSON 객체 형식은 다음과 같습니다(`parameters` 객체의 각 키는 사용자가 제공하는 파라미터 이름임).

     ```
     {
         "name": "string",
         "description": "string",
         "parameters": [
             {
                 "name": "string",
                 "description": "string",
                 "required": "True" | "False",
                 "type": "string" | "number" | "integer" | "boolean" | "array"
             }
         ]
     }
     ```

     또 다른 파라미터 세트를 정의하여 작업 그룹에 다른 함수를 추가하려면 **작업 그룹 함수 추가**를 선택합니다.
   + **API 스키마를 사용하여 정의**를 선택한 경우, 다음 옵션이 포함된 **작업 그룹 스키마** 섹션이 표시됩니다.
     + 이전에 작업 그룹에 대한 API 설명, 구조, 파라미터를 설정하여 준비한 OpenAPI 스키마를 사용하려면 **API 스키마 선택**을 선택하고 스키마의 Amazon S3 URI로 연결되는 링크를 제공합니다.
     + 인라인 스키마 편집기로 OpenAPI 스키마를 정의하려면 **인라인 스키마 편집기를 통해 정의**를 선택합니다. 편집할 수 있는 샘플 스키마가 나타납니다.

       1. **형식** 옆의 드롭다운 메뉴를 사용하여 스키마의 형식을 선택합니다.

       1. S3에서 기존 스키마를 가져와서 편집하려면 **스키마 가져오기**를 선택하고 S3 URI를 제공한 다음 **가져오기**를 선택합니다.

       1. 스키마를 원래 샘플 스키마로 복원하려면 **재설정**을 선택한 다음 **재설정**을 다시 선택하여 나타나는 메시지를 확인합니다.

1. 작업 그룹을 다 만들었으면 **추가**를 선택합니다. API 스키마를 정의한 경우, 문제가 없으면 녹색 성공 배너가 나타납니다. 스키마를 검증하는 데 문제가 있는 경우 빨간색 배너가 나타납니다. 다음과 같은 옵션이 있습니다:
   + 스키마를 스크롤하여 형식 지정에 대한 오류 또는 경고가 있는 줄을 확인합니다. X는 서식 오류를 나타내고 느낌표는 서식 관련 경고를 나타냅니다.
   + 빨간색 배너의 **세부 정보 보기**를 선택하면 API 스키마의 내용에 대한 오류 목록을 볼 수 있습니다.

1. **준비**를 선택하여 에이전트를 테스트하기 전에 변경한 내용을 에이전트에 적용합니다.

------
#### [ API ]

작업 그룹을 생성하려면 [Amazon Bedrock Agents 빌드 타임 엔드포인트](https://docs.aws.amazon.com/general/latest/gr/bedrock.html#bra-bt)를 사용하여 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) 요청을 보냅니다. [함수 스키마](agents-action-function.md) 또는 [OpenAPI 스키마](agents-api-schema.md) 중 하나를 반드시 제공해야 합니다.

다음 목록에는 요청의 필드에 대한 설명이 나와 있습니다.
+ 필수 필드는 다음과 같습니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/agents-action-add.html)
+ 작업 그룹의 파라미터를 정의하려면 다음 필드 중 하나를 반드시 지정해야 합니다(둘 다 지정할 수는 없음).  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/agents-action-add.html)

  다음은 `functionSchema` 및 `apiSchema`의 일반적인 형식을 보여줍니다.
  + `functionSchema` 배열의 각 항목은 [FunctionSchema](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_FunctionSchema.html) 객체입니다. 각 함수에 대해 다음을 지정합니다.
    + `name`을 제공하고, 되도록이면 `description`도 함께 제공합니다.
    + 필요한 경우, 함수를 간접 호출하기 전에 사용자에게 확인을 요청하기 위해 `requireConfirmation` 필드에 `ENABLED`를 지정합니다. 함수를 간접 호출하기 전에 확인을 요청하면 애플리케이션이 악성 프롬프트 인젝션으로 인한 조치를 취하는 일이 없도록 보호할 수 있습니다.
    + `parameters` 객체에서 각 키는 파라미터 이름으로, [ParameterDetail](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_ParameterDetail.html) 객체의 세부 정보에 매핑됩니다.

    `functionSchema`의 일반적인 형식은 다음과 같습니다.

    ```
    "functionSchema": [
        {
            "name": "string",
            "description": "string",
            "requireConfirmation": ENABLED | DISABLED,
            "parameters": {
                "<string>": {
                    "type": "string" | number | integer | boolean | array,
                    "description": "string",
                    "required": boolean
                },
                ... // up to 5 parameters
            }
        },
        ... // up to 11 functions
    ]
    ```
  + [APISchema](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_APISchema.html)의 형식은 다음 중 하나일 수 있습니다.

    1. 다음 형식의 경우 JSON 또는 YAML 형식 OpenAPI 스키마를 값으로 직접 붙여넣을 수 있습니다.

       ```
       "apiSchema": {
           "payload": "string"
       }
       ```

    1. 다음 형식에 대해 OpenAPI 스키마가 저장되는 Amazon S3 버킷 이름과 객체 키를 지정합니다.

       ```
       "apiSchema": {
           "s3": {
               "s3BucketName": "string",
               "s3ObjectKey": "string"
           }
       }
       ```
+ 작업 그룹이 사용자로부터 파라미터를 유도한 후 간접 호출을 처리하는 방법을 구성하려면 `actionGroupExecutor` 필드 내에 다음 필드 중 하나를 지정해야 합니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/agents-action-add.html)
+ 다음 필드는 선택 사항입니다.  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/bedrock/latest/userguide/agents-action-add.html)

  ```
      def create_agent_action_group(
              self, name, description, agent_id, agent_version, function_arn, api_schema
      ):
          """
          Creates an action group for an agent. An action group defines a set of actions that an
          agent should carry out for the customer.
  
          :param name: The name to give the action group.
          :param description: The description of the action group.
          :param agent_id: The unique identifier of the agent for which to create the action group.
          :param agent_version: The version of the agent for which to create the action group.
          :param function_arn: The ARN of the Lambda function containing the business logic that is
                               carried out upon invoking the action.
          :param api_schema: Contains the OpenAPI schema for the action group.
          :return: Details about the action group that was created.
          """
          try:
              response = self.client.create_agent_action_group(
                  actionGroupName=name,
                  description=description,
                  agentId=agent_id,
                  agentVersion=agent_version,
                  actionGroupExecutor={"lambda": function_arn},
                  apiSchema={"payload": api_schema},
              )
              agent_action_group = response["agentActionGroup"]
          except ClientError as e:
              logger.error(f"Error: Couldn't create agent action group. Here's why: {e}")
              raise
          else:
              return agent_action_group
  ```

  자세한 내용은 [Amazon Bedrock Agents 시작](bedrock-agent_example_bedrock-agent_Hello_section.md) 섹션을 참조하세요.

------