

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

# InvokeAgent 응답에서 유도된 정보를 전송하여 에이전트 개발자에게 제어 반환
<a name="agents-returncontrol"></a>

에이전트가 사용자로부터 가져온 정보를 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) 응답의 정보를 전송하여 에이전트 개발자에게 제어를 반환하도록 선택할 수 있습니다. 작업 그룹을 생성하거나 업데이트할 때 에이전트 개발자에 대한 제어 반환을 구성할 수 있습니다. API를 통해 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_CreateAgentActionGroup.html) 또는 [https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent_UpdateAgentActionGroup.html) 요청에서 `actionGroupExecutor` 객체의 `customControl`값으로 `RETURN_CONTROL`을 지정합니다. 자세한 내용은 [Amazon Bedrock에서 에이전트에 작업 그룹 추가](agents-action-add.md) 섹션을 참조하세요.

사용자가 작업 그룹에 대한 제어 반환을 구성하고, 에이전트가 이 작업 그룹의 작업을 직접적으로 호출해야 한다고 결정한 경우, 사용자로부터 유도된 API 또는 함수 세부 정보가 고유한 `invocationId`와 함께 [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) 응답의 `invocationInputs` 필드에 반환됩니다. 그러면 다음 작업을 수행할 수 있습니다.
+ `invocationInputs`에 반환된 정보를 바탕으로, 사용자가 정의한 API 또는 함수를 간접적으로 호출하도록 애플리케이션을 설정합니다.
+ 애플리케이션의 간접 호출 결과를 `sessionState` 필드에서 다른 [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) 요청에 전송하여 에이전트에 컨텍스트를 제공합니다. [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) 응답에 반환된 것과 동일한 `invocationId` 및 `actionGroup`을 사용해야 합니다. 이 정보는 추가 오케스트레이션을 위한 컨텍스트로 사용하거나, 에이전트가 응답을 포맷할 수 있도록 사후 처리로 전송하거나, 에이전트의 사용자 응답에 직접 사용할 수 있습니다.
**참고**  
`sessionState` 필드에 `returnControlInvocationResults`를 포함하면 `inputText` 필드가 무시됩니다.

작업 그룹을 만들면서 에이전트 개발자에 대한 제어 반환을 구성하는 방법을 알아보려면 [Amazon Bedrock에서 에이전트에 작업 그룹 추가](agents-action-add.md) 섹션을 참조하세요.

## 에이전트 개발자에게 제어를 반환하는 예제
<a name="agents-returncontrol-ex"></a>

예를 들어, 다음과 같은 작업 그룹이 있을 수 있습니다.
+ 사용자가 여행 중에 즐길 액티비티를 찾는 데 도움이 되는 `suggestActivities` 작업이 포함된 `PlanTrip` 작업 그룹입니다. 이 작업의 `description`에는 `This action suggests activities based on retrieved weather information`이라는 설명이 있습니다.
+ `getWeather` 작업이 포함된 `WeatherAPIs` 작업 그룹은 사용자가 특정 위치의 날씨를 확인하는 데 도움이 됩니다. 이 작업의 필수 파라미터는 `location` 및 `date`입니다. 작업 그룹은 에이전트 개발자에 제어를 반환하도록 구성됩니다.

다음은 발생할 수 있는 가상의 시퀀스입니다.

1. 사용자가 에이전트에게 **What should I do today?**라는 쿼리를 프롬프팅합니다. 이 쿼리는 [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) 요청의 `inputText` 필드에 전송됩니다.

1. 에이전트는 `suggestActivities` 작업을 간접 호출해야 함을 인식하지만, 설명을 고려하면 먼저 `suggestActivities` 작업을 이행하는 데 도움이 되는 컨텍스트로 `getWeather` 작업을 간접 호출해야 한다고 예측합니다.

1. 에이전트는 현재 `date`가 `2024-09-15`임을 알고 있지만, 날씨 정보를 가져오려면 필수 파라미터로 사용자의 `location`이 필요합니다. 에이전트가 “지금 계신 위치가 어디인가요?”라는 질문으로 사용자를 다시 프롬프팅합니다.

1. 사용자가 **Seattle**이라고 응답합니다.

1. 에이전트는 다음 [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) 응답에서 `getWeather`에 대한 파라미터를 반환합니다(해당 메서드로 정의된 작업 그룹의 예제를 보려면 아래 탭을 선택).

------
#### [ Function details ]

   ```
   HTTP/1.1 200
   x-amzn-bedrock-agent-content-type: application/json
   x-amz-bedrock-agent-session-id: session0
   Content-type: application/json
    
   {
       "returnControl": {
           "invocationInputs": [{
               "functionInvocationInput": {
                   "actionGroup": "WeatherAPIs",
                   "function": "getWeather",
                   "parameters": [
                       {
                           "name": "location",
                           "type": "string",
                           "value": "seattle"
                       },
                       {
                           "name": "date",
                           "type": "string",
                           "value": "2024-09-15"
                       }
                   ]
               }
           }],
           "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172"
       }
   }
   ```

------
#### [ OpenAPI schema ]

   ```
   HTTP/1.1 200
   x-amzn-bedrock-agent-content-type: application/json
   x-amz-bedrock-agent-session-id: session0
   Content-type: application/json
   
   {
       "invocationInputs": [{
           "apiInvocationInput": {
               "actionGroup": "WeatherAPIs",
               "apiPath": "/get-weather",
               "httpMethod": "get",
               "parameters": [
                   {
                       "name": "location",
                       "type": "string",
                       "value": "seattle"
                   },
                   {
                       "name": "date",
                       "type": "string",
                       "value": "2024-09-15"
                   }
               ]
           }
       }],
       "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad"
   }
   ```

------

1. 애플리케이션은 이러한 파라미터를 사용하여 `2024-09-15` 날짜의 `seattle` 날씨를 가져오도록 구성되어 있습니다. 비 예보가 있다는 정보가 확인됩니다.

1. 사용자는 이전 응답과 동일한 `invocationId`, `actionGroup`, `function`을 사용하여 다른 [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) 요청의 `sessionState` 필드에 이러한 결과를 보냅니다. 아래 탭을 선택하여 해당 메서드로 정의된 작업 그룹의 예제를 확인하세요.

------
#### [ Function details ]

   ```
   POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
               
   {
       "enableTrace": true,
       "sessionState": {
           "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172",
           "returnControlInvocationResults": [{
               "functionResult": {
                   "actionGroup": "WeatherAPIs",
                   "function": "getWeather",
                   "responseBody": {
                       "TEXT": {
                           "body": "It's rainy in Seattle today."
                       }
                   }
               }
           }]
       }
   }
   ```

------
#### [ OpenAPI schema ]

   ```
   POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
    
   {
       "enableTrace": true,
       "sessionState": {
           "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad",
           "returnControlInvocationResults": [{
               "apiResult": {
                   "actionGroup": "WeatherAPIs",
                   "httpMethod": "get",
                   "apiPath": "/get-weather",
                   "responseBody": {
                       "application/json": {
                           "body": "It's rainy in Seattle today."
                       }
                   }
               }
           }]
       }
   }
   ```

------

1. 에이전트는 `suggestActivities` 작업을 직접 호출해야 한다고 예측합니다. 당일 비가 오는 컨텍스트를 사용하여 응답에서 사용자에게 실외 활동이 아닌 실내 활동을 제안합니다.

### 공동 작업자 에이전트에 제어를 반환하는 예제
<a name="collaborator-agent-returncontrol-ex"></a>

[다중 에이전트 협업](agents-multi-agent-collaboration.md)을 사용 중이고 에이전트 공동 작업자가 [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) 응답의 정보를 전송하여 제어를 반환하기로 선택하면 추가 식별자 `agentId` 및 `collaboratorName`과 함께 감독자 에이전트 응답에 정보가 반환됩니다. 아래 탭을 선택하여 해당 메서드로 정의된 작업 그룹의 예제를 확인하세요.

------
#### [ Function details ]

```
HTTP/1.1 200
x-amzn-bedrock-agent-content-type: application/json
x-amz-bedrock-agent-session-id: session0
Content-type: application/json
 
{
    "returnControl": {
        "invocationInputs": [{
            "functionInvocationInput": {
                "agentId": "AGENTID",
                "collaboratorName": "WeatherAgent"
                "actionGroup": "WeatherAPIs",
                "function": "getWeather",
                "parameters": [
                    {
                        "name": "location",
                        "type": "string",
                        "value": "seattle"
                    },
                    {
                        "name": "date",
                        "type": "string",
                        "value": "2024-09-15"
                    }
                ]
            }
        }],
        "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172"
    }
}
```

------
#### [ OpenAPI Schema ]

```
HTTP/1.1 200
x-amzn-bedrock-agent-content-type: application/json
x-amz-bedrock-agent-session-id: session0
Content-type: application/json

{
    "invocationInputs": [{
        "apiInvocationInput": {
            "actionGroup": "WeatherAPIs",
            "agentId": "AGENTID",
            "collaboratorName": "WeatherAgent"
            "apiPath": "/get-weather",
            "httpMethod": "get",
            "parameters": [
                {
                    "name": "location",
                    "type": "string",
                    "value": "seattle"
                },
                {
                    "name": "date",
                    "type": "string",
                    "value": "2024-09-15"
                }
            ]
        }
    }],
    "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad"
}
```

------

감독자 에이전트 호출자는 `sessionState` 필드에서 얻은 결과를 해당 `agentId`와 함께 감독자 에이전트에 전송하여 올바른 에이전트 공동 작업자에게 전파되도록 합니다.

------
#### [ Function details ]

```
POST https://bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
            
{
    "enableTrace": true,
    "sessionState": {
        "invocationId": "79e0feaa-c6f7-49bf-814d-b7c498505172",
        "returnControlInvocationResults": [{
            "functionResult": {
                "agentId": "AGENTID",
                "actionGroup": "WeatherAPIs",
                "function": "getWeather",
                "responseBody": {
                    "TEXT": {
                        "body": "It's rainy in Seattle today."
                    }
                }
            }
        }]
    }
}
```

------
#### [ OpenAPI Schema ]

```
POST https: //bedrock-agent-runtime.us-east-1.amazonaws.com/agents/AGENT12345/agentAliases/TSTALIASID/sessions/abb/text
 
{
    "enableTrace": true,
    "sessionState": {
        "invocationId": "337cb2f6-ec74-4b49-8141-00b8091498ad",
        "returnControlInvocationResults": [{
            "apiResult": {
                "agentId": "AGENTID",
                "actionGroup": "WeatherAPIs",
                "httpMethod": "get",
                "apiPath": "/get-weather",
                "responseBody": {
                    "application/json": {
                        "body": "It's rainy in Seattle today."
                    }
                }
            }
        }]
    }
}
```

------