本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在叫用動作群組函數之前取得使用者確認
您可以在叫用動作群組函數之前請求應用程式使用者的確認,以保護應用程式免受惡意提示注入。當最終使用者與您的應用程式互動時,Amazon Bedrock Agent 會找出 API或知識庫,以叫用 來自動執行使用者的任務。來自 API或知識庫的資訊可能包含可能有害的資料。如果回應包含任何指示,則代理程式會遵守每次迭代之間的要求。如果回應包含模型叫用非預期動作的指示,客服人員會繼續進行並遵循指示。為了確保某些動作僅在明確使用者同意後才執行,建議您在叫用函數之前請求最終使用者的確認。
當您設定動作群組時,您可以選擇針對特定動作啟用使用者確認。如果針對動作啟用使用者確認,客服人員會回應確認問題,要求最終使用者確認或拒絕動作。您可以使用 CLI或使用 ,在主控台中啟用使用者確認SDK。
若要啟用動作的使用者確認,請參閱 在 Amazon Bedrock 中將動作群組新增至您的代理程式。
使用者確認的運作方式
代理程式開發人員會針對動作群組中的動作設定使用者確認。如果客服人員決定應該呼叫該動作,則從使用者發出的 API或 函數詳細資訊,以及客服人員開發人員設定的使用者確認,都會傳回 中的 invocationInputs
欄位。 InvokeAgent 回應,以及invocationType
唯一的 invocationId
。
客服人員會叫用 API或 中提供的 函數invocationInputs
。如果為函數或 啟用使用者確認API,則會向使用者顯示 選項CONFIRM或回應中提到DENY的動作。
代理程式調用函數或API在其他函數中傳送的結果 InvokeAgent 在 sessionState
欄位中請求提供內容給客服人員。的請求參數InvokeAgent
使用 returnControlInvocationResults
,這是對 apiResult
或 functionResult
物件的映射清單。apiResult
和 functionResult
物件具有額外的 欄位 confirmationState
。此欄位具有使用者確認回應。
如果使用者回應是 CONFIRM,則會實作回應API中的函數或 。
如果使用者回應是 DENY,則不會實作回應API中的函數或 。
InvokeAgent 回應和請求的範例
回應
HTTP/1.1 200 x-amzn-bedrock-agent-content-type: contentType x-amz-bedrock-agent-session-id: sessionId Content-type: application/json { "chunk": { ... }, ... "returnControl": { "invocationId": "string", "invocationInputs": [ { ... } ] }, "trace": { "agentAliasId": "string", "agentId": "string", "agentVersion": "string", "sessionId": "string", "trace": { ... } }, }
請求
POST /agents/agentId/agentAliases/agentAliasId/sessions/sessionId/text HTTP/1.1 Content-type: application/json { "enableTrace": boolean, "endSession": boolean, "inputText": "string", "sessionState": { "invocationId": "string", "promptSessionAttributes": { "string" : "string" }, "returnControlInvocationResults": [ { ... } ], "sessionAttributes": { "string" : "string" } } }