Agents for Amazon Bedrock:引入简化的创建和配置体验

NEWS

@Builders、云计算从业者与爱好者们不容错过的年度必看科技盛会!点击下方小程序即刻参会!

60940ce4c7cdf8b120cdc63a20a903c1.png

f92a5c90776f4d2c3c854bf0ac0baf80.png

通过 Amazon Bedrock 的 Agents,应用程序可以使用生成式 AI 跨多个系统和数据源运行任务。从今天开始,这些新功能简化了代理的创建和管理:

快速代理创建 – 您现在可以快速创建一个代理,之后可选择添加说明和操作组,为您的开发过程提供灵活性和敏捷性。

代理构建器 – 所有代理配置都可以在控制台的新代理构建器部分中进行操作。

简化配置 – 操作组可以使用简化的架构,只列出函数和参数,而不必提供 API 架构。

控制权的返回 – 您可以跳过使用 Amazon Lambda 函数,并将控制权返回给调用代理的应用程序。通过这种方式,应用程序可以直接与亚马逊云科技外部的系统集成,或调用托管在任何 Amazon Virtual Private Cloud(Amazon VPC)中的内部端点,而无需将所需的网络和安全配置与 Amazon Lambda 函数集成。

基础设施即代码 – 您可以使用 Amazon CloudFormation 来部署和管理使用新简化配置的代理,确保您的生成式 AI 应用程序在各个环境中保持一致性和可重复性。

02cc8feab43ee0aae30a627890bcf8bf.png

扫码查看

Amazon Bedrock 代理

589128fd89532b715dbdc7c43bf01918.png

扫码查看

利用生成式 AI 实现业务转型

6f173fb6ed36b9f36b22a3637ca670ab.png

扫码查看

Amazon Lambda 函数

4148a1cad51094dcf52b0afd2260bc39.png

扫码查看

Amazon Virtual Private Cloud

1739bb559a0ada53fcfec05037085208.png

扫码查看

Amazon CloudFormation

滑动查看更多

让我们看看这些增强功能在实践中是如何工作的。

使用新的简化控制台创建代理

为了测试新体验,我想构建一个代理来帮助我回复包含客户反馈的电子邮件。我可以使用生成式 AI,但单一调用基础模型(FM)是不够的,因为我需要与其他系统交互。为此,我使用一个代理。

在 Amazon Bedrock 控制台中,我从导航窗格选择 Agents,然后选择 Create Agent。我输入代理的名称(customer-feedback)和描述。使用新界面,我继续并在此阶段不提供其他信息创建代理。

eb9bfaa6baf4b67b0621dcc9d360a63f.png

d48635728d15e68471056395ae9b3551.png

扫码查看

什么是根基模型?

5f51a3bccebea45a93d90c3295d983ac.png

扫码登录

Amazon Bedrock 控制台

滑动查看更多

现在,我进入了 Agent builder,这是可以访问和编辑代理的整体配置的位置。在 Agent resource role 中,我将默认设置保留为 Create and use a new service role,这样代理所承担的 Amazon Identity and Access Management (IAM)角色将自动为我创建。对于模型,我选择 Anthropic Claude 3 Sonnet

dbeea84fcabb7a68d752425d5df1860e.png

图为控制台截图

60b721ce359349c775141f59ab1637a3.png

扫码了解

Amazon Identity and 

Access Management (IAM)

Instructions for the Agent 中,我为代理需要执行的任务提供了明确和具体的说明。在这里,我还可以指定想让代理使用的风格和语气进行回复。对于我的用例,我输入:

Help reply to customer feedback emails with a solution tailored to the customer account settings.

Additional settings 中,我为 User input 选择 Enabled,这样当代理没有足够的信息进行回复时,它可以要求提供额外的细节。然后,我选择 Save 来更新代理的配置。

现在,我在 Action groups 部分选择 Add。操作组是代理与外部系统进行交互、收集更多信息或执行操作的方式。我输入一个名称(retrieve-customer-settings)和操作组的描述:

Retrieve customer settings including customer ID.

此描述是可选的,但如果提供,将会传递给模型,以帮助选择何时使用此操作组。

70696e4bd3b29e032313ae366b8adf69.png

Action group type 中,我选择 Define with function details,这样我只需要指定函数及其参数。另一个选项(Define with API schemas)对应于使用 API 架构配置操作组的之前方式。

操作组函数可以与 Amazon Lambda 函数调用关联,或者配置为将控制权返回给调用代理的用户或应用程序,以便他们可以对函数提供响应。返回控制权的选项对以下四种主要用例很有用:

当从调用代理的现有应用程序(例如)调用 API 比构建新的 Amazon Lambda 函数更容易,新的 Amazon Lambda 函数需要正确的身份验证和网络配置,正如 API 所需的那样。

当任务持续时间超过 15 分钟的最长 Amazon Lambda 函数超时时,我可以使用运行在容器或虚拟服务器中的应用程序处理任务,或使用工作流编排如 Amazon Step Functions。

当我有耗时的操作时,因为通过控制权的返回,代理不会等待该操作完成才继续下一步,而调用应用程序可以在后台异步运行操作,同时代理的编排流程继续进行。

当我需要一种快速方法来模拟与 API 的交互,用于代理的开发和测试时。

e8c01e82c6235573f6ff11413c857283.png

扫码了解

Amazon Step Functions

Action group invocation 中,我可以指定在编排过程中,当模型识别出此操作组时将被调用的 Amazon Lambda 函数。我可以要求控制台快速创建一个新的 Amazon Lambda 函数、选择一个现有的 Amazon Lambda 函数,或者返回控制权,这样调用代理的用户或应用程序将要求提供细节以生成响应。我选择 Return Control 来展示在控制台中是如何工作的。

5d5b699e3cb5880f81e61748101872ff.png

我配置操作组的第一个函数。我输入一个名称(retrieve-customer-settings-from-crm)和这个函数的以下描述:

Retrieve customer settings from CRM including customer ID using the customer email in the sender/from fields of the email.

6350bd224b595dde11de4da061ab60e0.png

Parameters 中,我添加 email,描述为 Customer email。这是一个类型为 String 的必需参数。我选择 Add 来完成操作组的创建。

因为根据我的用例预期,许多客户在登录时会遇到问题,所以我添加了另一个操作组(名称 check-login-status),描述如下:

Check customer login status.

这次,我选择创建一个新的 Amazon Lambda 函数,以便通过代码处理这些请求。

对于此操作组,我配置一个函数(名称 check-customer-login-status-in-login-system),描述如下:

Check customer login status in login system using the customer ID from settings.

Parameters 中,我添加 customer_id,另一个类型为 String 的必需参数。然后,我选择 Add 来完成第二个操作组的创建。

当我打开此操作组的配置时,我可以看到已在我的账户中创建的 Amazon Lambda 函数的名称。在那里,我选择 View 来在控制台中打开 Amazon Lambda 函数。

572861567aa09801e14f742c8cf79601.png

在 Amazon Lambda 控制台中,我编辑提供的启动代码并实现我的业务案例:

import json
def lambda_handler(event, context):
print(event)


agent = event['agent']
actionGroup = event['actionGroup']
function = event['function']
parameters = event.get('parameters', [])


# 在此执行您的业务逻辑。更多信息,
# 请参阅:https://docs.aws.amazon.com/bedrock/latest/userguide/agents-lambda.html


if actionGroup == 'check-login-status' and function == 'check-customer-login-status-in-login-system':
    response = {
        "status": "unknown"
    }
    
    for p in parameters:
        if p['name'] == 'customer_id' and p['type'] == 'string' and p['value'] == '12345':
            response = {
                "status": "not verified",
                "reason": "the email address has not been verified",
                "solution": "please verify your email address"
            }
else:
    response = {
        "error": "Unknown action group {} or function {}".format(actionGroup, function)  
    }
    
responseBody = {
    "TEXT": {
        "body": json.dumps(response)
    }
}


action_response = {
    'actionGroup': actionGroup,
    'function': function,
    'functionResponse': {
        'responseBody': responseBody
    }
}


dummy_function_response = {'response': action_response, 'messageVersion': event['messageVersion']}


print("Response: {}".format(dummy_function_response))


return dummy_function_response

557e6f03020943e4ffad761f0dabd5a5.png

扫码登录

 Amazon Lambda 控制台

我在 Amazon Lambda 控制台中选择 Deploy。此函数配置了基于资源的策略,允许 Amazon Bedrock 调用该函数。因此,我不需要更新代理使用的 IAM 角色。

我已准备好测试代理。回到 Amazon Bedrock 控制台,选择代理后,我查找 Test Agent 部分。在那里,我选择 Prepare 来准备代理并使用最新更改对其进行测试。

作为代理的输入,我提供以下示例电子邮件:

From: danilop@example.com
Subject: Problems logging in
Hi, when I try to log into my account, I get an error and cannot proceed further. Can you check? Thank you, Danilo

在第一步,代理编排决定使用第一个操作组(retrieve-customer-settings)和函数(retrieve-customer-settings-from-crm)。此函数配置为返回控制权,在控制台中,我被要求提供操作组函数的输出。客户电子邮件地址作为输入参数提供。

9ca157624b80390a32355132a4d34620.png

为了模拟与应用程序的交互,我使用 JSON 语法回复,然后选择 Submit

JSON

{ “customer id”: 12345 }

在下一步中,代理有使用第二个操作组(check-login-status)和函数(check-customer-login-status-in-login-system)调用 Amazon Lambda 函数所需的信息。作为回应,Amazon Lambda 函数提供以下 JSON 负载:

 JSON 

{ “status”: “not verified”, “reason”: “the email address has not been verified”, “solution”: “please verify your email address” }

使用此内容,代理可以完成任务并建议正确的解决方案供该客户使用。

e0b3af119040292938ad5113d88aaeea.png

我对结果感到满意,但我想更深入了解发生了什么。我选择 Show trace,在那里我可以看到代理编排的每个步骤的详细信息。这有助于我理解代理的决策,并在操作组未按我预期使用时纠正其配置。

b08c58781303d5574071ecf79e1fe30b.png

知识点

您现在可以在美国东部 (弗吉尼亚北部)和美国西部(俄勒冈州)亚马逊云科技地区使用新的简化体验来创建和管理 Amazon Bedrock 的 Agents。

您现在可以在不指定 API 架构或为操作组提供 Amazon Lambda 函数的情况下创建一个代理。您只需列出操作组所需的参数。在调用代理时,您可以选择返回控制权,提供要执行操作的详细信息,以便您可以在现有应用程序中处理该操作,或者如果持续时间超过最长 Amazon Lambda 函数超时时间。

最近发布了 Amazon Bedrock 的 Agents 的 CloudFormation 支持,现在正在更新以支持新的简化语法。

bed9096b761c30e6853139b5e33ffd1d.png

扫码查看

Amazon Bedrock 代理

52950315c141fe69aae49939225d0aee.png

扫码查看

Amazon Bedrock 代理的

 CloudFormation 支持

滑动查看更多

要了解更多信息:

请查看用户指南中的 Amazon Bedrock 的 Agents 部分。

访问我们的亚马逊云科技开发者社区,在那里您可以找到深入的技术内容,并发现其他人如何在他们的解决方案中使用 Amazon Bedrock。

8abc3e4f347f72d518a55fcd19388add.png

扫码查看

用户指南

55892fa3360ebecb5074371b569562b0.png

扫码访问

亚马逊云科技开发者社区

滑动查看更多

本篇作者

72e568c4f3f512846bd282ad7402d948.png

Danilo Poccia

Danilo 与初创公司和不同规模的公司合作,支持他们的创新。作为亚马逊云科技的首席布道师 (EMEA),他利用自己的经验帮助人们将想法变为现实,专注于无服务器架构、事件驱动编程以及机器学习和边缘计算的技术和商业影响。他是 Manning 出版的《Amazon Web Services Lambda in Action》一书的作者。

年度必看的科技盛会

点击下方小程序即刻参会!

de5cd5ac13783a2bfa4a79c4f2772658.jpeg

9290606b88a33b6d646579145a5eb51d.gif

听说,点完下面4个按钮

就不会碰到bug了!

f0a2207ec597791eea41eb96e2928d38.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值