网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

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

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

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

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

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

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

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

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

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

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


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


控制台截图。

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.

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


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

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

  1. 当从调用代理的现有应用程序 (例如) 调用API比构建新的Lambda函数更容易,新的Lambda函数需要正确的身份验证和网络配置,正如API所需的那样。
  2. 当任务持续时间超过15分钟的最长Lambda函数超时时,我可以使用运行在容器或虚拟服务器中的应用程序处理任务,或使用工作流编排如 Amazon Step Functions。
  3. 当我有耗时的操作时,因为通过控制权的返回,代理不会等待该操作完成才继续下一步,而调用应用程序可以在后台异步运行操作,同时代理的编排流程继续进行。
  4. 当我需要一种快速方法来模拟与API的交互,用于代理的开发和测试时。

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


我配置操作组的第一个函数。我输入一个名称(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.


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

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

Check customer login status.

这次,我选择创建一个新的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 来完成第二个操作组的创建。

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


在 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

我在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)。此函数配置为返回控制权,在控制台中,我被要求提供操作组函数的输出。客户电子邮件地址作为输入参数提供。


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

{ “customer id”: 12345 }

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

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

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


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


知识点

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

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

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

要了解更多信息:

  1. 请查看 用户指南中的 Amazon Bedrock 的 Agents 部分。
  2. 访问我们的 community.aws 站点,在那里您可以找到深入的技术内容,并发现其他人如何在他们的解决方案中使用 Amazon Bedrock。

– Danilo


Danilo Poccia

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

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
具俊晔情绪失控,罕见发脾气!韩网友:说的难道不是事实?

具俊晔情绪失控,罕见发脾气!韩网友:说的难道不是事实?

花花lo先森
2024-06-04 14:12:18
李宇春特别想删的照片,难怪叫“春哥”,网友:承包一年的笑点

李宇春特别想删的照片,难怪叫“春哥”,网友:承包一年的笑点

虾剪说剧
2024-05-30 16:35:30
广东东莞市9位女性干部,是人才进莞来!

广东东莞市9位女性干部,是人才进莞来!

涛涛生活搞笑
2024-06-05 13:23:26
新一代宝马X7内饰谍照曝光,内饰大气且高档

新一代宝马X7内饰谍照曝光,内饰大气且高档

音乐时光的娱乐
2024-06-05 09:27:28
​181127套!广州二手挂牌飚新高,有业主降价445万甩卖

​181127套!广州二手挂牌飚新高,有业主降价445万甩卖

楼市灭霸
2024-06-03 21:02:23
上海一市民在家里给电瓶车电池充电,引发火情,这下子他可惨了

上海一市民在家里给电瓶车电池充电,引发火情,这下子他可惨了

齐鲁秀才
2024-06-05 11:06:46
解放军战机“回不去了”!台退役副司令警告:3分钟即可飞到台北

解放军战机“回不去了”!台退役副司令警告:3分钟即可飞到台北

赢梯
2024-06-04 09:10:37
好不容易晋升为上将,怎料被儿子“拖下水”,涉案金额竟高达百亿

好不容易晋升为上将,怎料被儿子“拖下水”,涉案金额竟高达百亿

小lu侃侃而谈
2024-05-23 21:23:30
歌唱家刘和刚娶世界小姐让一家八口住在一起风光后有无奈和心酸

歌唱家刘和刚娶世界小姐让一家八口住在一起风光后有无奈和心酸

阿芒娱乐说
2024-06-05 10:04:07
穆雷父母发表声明:他选择了结束自己的生命

穆雷父母发表声明:他选择了结束自己的生命

高尔夫杂志
2024-05-27 08:19:26
这老不正经的!

这老不正经的!

gogoDaily
2024-06-04 09:18:14
62岁的俞敏洪,输的可谓是一点都不冤,董宇辉已经对他仁至义尽了

62岁的俞敏洪,输的可谓是一点都不冤,董宇辉已经对他仁至义尽了

风起云间
2024-06-04 21:36:22
美国得罪盟友后果严重!阿联酋总统迅速访华,用实际行动抗美援巴

美国得罪盟友后果严重!阿联酋总统迅速访华,用实际行动抗美援巴

葛剑生
2024-06-04 13:49:35
现场传来一声枪响,美国代表团跑了,直接跑回了美国

现场传来一声枪响,美国代表团跑了,直接跑回了美国

春雨艳子江湖行呀
2024-06-04 08:24:31
林更新今天飞北京,玫瑰的发布会,开完了和好朋友赵丽颖聚一聚呀

林更新今天飞北京,玫瑰的发布会,开完了和好朋友赵丽颖聚一聚呀

娱乐的小灶
2024-06-05 13:06:59
德约法网退赛后首度现身:一瘸一拐步履蹒跚!最坏恐赛季报销

德约法网退赛后首度现身:一瘸一拐步履蹒跚!最坏恐赛季报销

末位侃球
2024-06-05 07:34:31
媒体人:中泰两队均不满足平局,更急于取胜的一方反而会犯错

媒体人:中泰两队均不满足平局,更急于取胜的一方反而会犯错

直播吧
2024-06-05 14:41:10
官方正式表态定性!铁头也说已安全回国,但有3个细节很不对劲!

官方正式表态定性!铁头也说已安全回国,但有3个细节很不对劲!

李大娱乐糊涂
2024-06-04 11:46:11
主场战泰国赛前,国足官方将在沈阳奥体南广场举办嘉年华活动

主场战泰国赛前,国足官方将在沈阳奥体南广场举办嘉年华活动

懂球帝
2024-06-05 10:57:16
歼-16炸弹卡车,荣登空中最强侧卫!老外直呼:迄今为止地表最强

歼-16炸弹卡车,荣登空中最强侧卫!老外直呼:迄今为止地表最强

文雅笔墨
2024-06-05 13:25:34
2024-06-05 15:16:49
大A小i2024
大A小i2024
小小AI爱好者
52文章数 0关注度
往期回顾 全部

科技要闻

马斯克把特斯拉5亿美元AI芯片提前调拨给X

头条要闻

周大福深圳工厂员工:本来打算养老 没想到工厂没了

头条要闻

周大福深圳工厂员工:本来打算养老 没想到工厂没了

体育要闻

赴美试训的崔永熙,表现究竟怎么样?

娱乐要闻

《青春有你》胡文煊被曝孕期出轨

财经要闻

员工证实周大福关闭深圳工厂

汽车要闻

又一个水桶车 试驾新“卷王”极狐阿尔法S5

态度原创

艺术
教育
房产
公开课
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

教育要闻

时隔两年 高考前最后一课,老师再次给学生们送上这段话:“一切都是最好的安排,高考时错的题 可能是为了遇到对的人”

房产要闻

79.17亿!海开拿下永丰南地块 据说产品90平起

公开课

近视只是视力差?小心并发症

军事要闻

王毅回应中国不参加乌克兰问题和平峰会

无障碍浏览 进入关怀版