在调用操作组函数之前获得用户确认 - Amazon Bedrock

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在调用操作组函数之前获得用户确认

通过在调用操作组功能之前请求应用程序用户进行确认,可以保护您的应用程序免受恶意提示注入。当最终用户与您的应用程序交互时,Amazon Bedrock Agent 会找出要调用的API或知识库来自动执行该用户的任务。API或知识库中的信息可能包含潜在的破坏性数据。在每次迭代之间,如果响应中包含任何指令,则代理将遵守。如果响应中包含模型调用意外操作的指令,则代理将继续执行指令。为确保某些操作只有在用户明确同意后才能执行,我们建议您在调用该函数之前请求最终用户进行确认。

配置操作组时,可以选择为特定操作启用用户确认。如果为某项操作启用了用户确认,则代理会以确认问题进行回应,要求最终用户确认或拒绝该操作。您可以在控制台中启用用户确认CLI,使用或使用SDK。

要启用用户确认某项操作,请参阅在 Amazon Bedrock 中向你的代理添加一个行动组

用户确认的工作原理

代理开发者为操作组中的某项操作配置了用户确认。如果代理决定调用该操作,则将在该invocationInputs字段中返回从用户那里获得的API或函数详细信息以及代理开发者配置的用户确认信息 InvokeAgent除此之外invocationType,还有一个独一无二的回应invocationId

代理调用中提供的API或函数。invocationInputs如果为该功能或启用了用户确认API,则会向用户显示一个选项CONFIRMDENY响应中提及的操作。

代理调用函数或在另一个函数中发送API的结果 InvokeAgentsessionState现场请求为代理提供背景信息。uses 的请求InvokeAgent参数returnControlInvocationResults,它是映射到apiResultfunctionResult对象的列表。apiResultfunctionResult对象还有一个附加字段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" } } }