通過在響應中發送引起的信息將控制權返回給代理開發人員 InvokeAgent - Amazon Bedrock

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

通過在響應中發送引起的信息將控制權返回給代理開發人員 InvokeAgent

您可以選擇在回應中傳送資訊,將代理程式從使用者取得的資訊傳送至 Lambda 函數以進行履行,而不是將控制權傳送給代理程式開發人員。InvokeAgent您可以在建立或更新動作群組時,將控制權傳回給代理程式開發人員。透過 API,您可以指定RETURN_CONTROLCreateAgentActionGroupUpdateAgentActionGroup要求中actionGroupExecutor物件中的customControl值。如需詳細資訊,請參閱 在 Amazon 基岩中將動作群組新增至您的代理程式

如果您設定動作群組的控制權傳回,並且代理程式確定應該呼叫此動作群組中的動作,則回應中的invocationInputs欄位會傳回使用者所取得的 API 或函數詳細資訊,以及唯一的。InvokeAgentinvocationId然後,您可以執行下列作業:

  • 設定您的應用程式以叫用您定義的 API 或函數 (提供在中傳回的資訊) invocationInputs

  • sessionState欄位中的另一個InvokeAgent要求中傳送應用程式呼叫的結果,以提供內容給代理程式。您必須使用相同actionGroupinvocationId和在InvokeAgent響應中返回的。此資訊可用作進一步協調的內容、傳送至後處理以供代理程式格式化回應,或直接用於代理程式對使用者的回應。

    注意

    如果您returnControlInvocationResultssessionState欄位中包含,則會忽略此inputText欄位。

若要瞭解如何在建立動作群組時設定對代理程式開發人員的控制權傳回,請參閱在 Amazon 基岩中將動作群組新增至您的代理程式

將控制權傳回代理程式開發人員的範例

例如,您可能有下列動作群組:

  • 具有動PlanTrip作的動suggestActivities作群組,可協助您的使用者尋找行程中要執行的活動。對description於這個動作說This action suggests activities based on retrieved weather information

  • 具有WeatherAPIs動作的動getWeather作群組,可協助您的使用者取得特定位置的天氣。動作的必要參數為locationdate。動作群組設定為將控制權傳回給代理程式開發人員。

以下是可能發生的假設順序:

  1. 使用者會以下列查詢提示您的代理程式:What should I do today?此查詢會在InvokeAgent要求inputText欄位中傳送。

  2. 您的代理認識到該suggestActivities操作應該被調用,但給出了描述,預測它應該首先調用該getWeather操作作為上下文以幫助完成suggestActivities操作。

  3. 代理程式知道目前date2024-09-15,但需要使用者作為必要的參數來取得天氣。location它會重新提示使用者以「您所在的位置?」的問題

  4. 使用者回應Seattle

  5. 代理程式會傳回下列回InvokeAgentgetWeather中的參數 (選取索引標籤可查看使用該方法定義之動作群組的範例):

    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" }
  6. 您的應用程序配置為使用這些參數來獲取日期seattle的天氣2024-09-15。天氣被確定為下雨。

  7. 您可以在另一個InvokeAgent請求的sessionState字段中發送這些結果invocationId,使用相同的 actionGroupfunction,和之前的響應。選取標籤以查看使用該方法定義之動作群組的範例:

    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." } } } }] } }
  8. 代理預測,它應該調用的動suggestActivities作。它使用那天下雨的背景下,並建議室內,而不是戶外活動的響應用戶。