亚马逊Bedrock的代理服务:推出简化的创建和配置体验 新闻博客
2026-01-27 12:24:18
简化Amazon Bedrock的代理创建与配置体验
关键要点
快速创建代理:可以快速创建代理,并在后续添加指令和操作组,提升开发灵活性。代理构建器:所有代理配置都可以在新代理构建器控制台中操作。简化配置:操作组使用简化的模式,仅需列出函数和参数,而无需提供API模式。控制权归还:可跳过AWS Lambda函数,将控制权返回给调用代理的应用程序。基础设施即代码:通过AWS CloudFormation来部署和管理代理,确保生成AI应用中的一致性和可重复性。随着Amazon Bedrock的代理功能的推出,应用程序可以利用生成性人工智能 (generative AI) 在多个系统和数据源之间执行任务。这些新功能自今日起提供,简化了代理的创建和管理:
快速代理创建:用户现在可以迅速创建代理,并在之后添加指令和行动组,为开发过程提供了灵活性。
代理构建器:所有代理配置可以在新的代理构建器部分进行操作。
简化配置:行动组可以使用简化模式,仅列出函数和参数,而无需提供API模式。
控制权归还:用户可跳过使用AWS Lambda 函数,将控制权回转给调用代理的应用程序,便于直接与AWS外部系统或托管于任一Amazon虚拟私有云Amazon VPC 的内部端点集成。
基础设施即代码:可以利用AWS CloudFormation 来部署和管理代理,确保生成AI应用的环境一致性和可重复性。
接下来,让我们看看这些增强功能是如何在实际中应用的。
如何使用新控制台创建代理
为了测试新的体验,我想构建一个代理,帮助我回复包含客户反馈的电子邮件。虽然我可以使用生成AI,但单次调用基础模型FM 不够,因为我还需要与其他系统进行交互。为此,我使用代理。
在Amazon Bedrock控制台 中,我从导航面板中选择代理,然后点击创建代理。输入代理名称customerfeedback和描述。使用新界面,我继续创建代理,而无需在这个阶段提供更多信息。
接下来,我看到代理构建器,这是我可以访问和编辑代理配置的地方。在代理资源角色中,我保留默认设置为创建并使用新服务角色,这样由代理承担的AWS身份与访问管理IAM角色将自动为我创建。对于模型,我选择Anthropic和Claude 3 Sonnet。
在代理指令中,我提供清晰且具体的指令,告诉代理需执行的任务。同时,还可以指定我希望代理在回复时使用的风格和语调。对于我的用例,我输入:
帮助回复关于客户反馈的电子邮件,提供根据客户账户设置定制的解决方案。
轻蜂加速在附加设置中,我选择启用 用户输入,以便代理在信息不足以响应时可以请求更多详细信息。然后,我选择保存以更新代理配置。
接下来,我在行动组部分选择添加。行动组是代理与外部系统交互的方式,以获取更多信息或执行操作。我输入名称retrievecustomersettings以及行动组的描述:
检索客户设置,包括客户ID。
这个描述是可选的,但提供后将传递给模型,帮助模型选择何时使用该行动组。
在行动组类型中,我选择定义功能详细信息,这样我只需指定功能及其参数。另一个选择定义API模式对应于之前使用API模式配置行动组的方法。
行动组功能可以关联到Lambda函数调用或配置为返回控制权给用户或调用代理的应用程序,以便提供响应。这种返回控制的选项在以下四个主要用例中非常有用:
当从现有应用程序调用API比构建新Lambda函数更方便,而新函数又需要正确的身份验证和网络配置时。当任务的持续时间超出Lambda函数最大超时的15分钟,可以使用在容器或虚拟服务器中运行的应用程序处理任务,或使用工作流编排工具,如AWS Step Functions。在需要时间较长的操作时,因为通过返回控制,代理无需在动作完成之前等待,可以让调用应用程序在后台异步执行操作,同时代理的编排流程继续。在开发和测试代理时,需要一种快速方式来模拟与API的交互。在行动组调用中,我可以指定在模型在编排中识别到此行动组时将调用的Lambda函数。我可以让控制台快速创建一个新的Lambda函数,选择一个现有的Lambda函数,或者返回控制权,以便调用代理的用户或应用程序请求生成响应的详细信息。我选择返回控制,以展示如何在控制台中实现。
然后,我配置行动组的第一个函数,输入名称retrievecustomersettingsfromcrm及以下描述:
使用发件人电子邮件从CRM中检索客户设置,包括客户ID。
在参数中,我添加email,并将其描述设置为客户电子邮件。这是一个类型为字符串的必需参数。我选择添加以完成行动组的创建。
因为我的用例中预计许多客户在登录时会遇到问题,我添加了另一个行动组命名为 checkloginstatus,描述如下:
检查客户登录状态。
这次,我选择创建一个新的Lambda函数,以便在代码中处理这些请求。
对于此行动组,我配置了一个函数命名为checkcustomerloginstatusinloginsystem,描述如下:
使用客户ID从设置中检查客户在登录系统中的登录状态。
在参数中,我添加customerid,这是另一个必需的类型为字符串的参数。然后,我选择添加以完成第二个行动组的创建。
打开此行动组的配置时,我可以看到在我的账户中创建的Lambda函数名称。接着我选择查看以在控制台中打开Lambda函数。
在Lambda控制台中,我编辑提供的初始代码,并实现我的业务用例:
pythonimport json
def lambdahandler(event context) print(event)
agent = event[agent]actionGroup = event[actionGroup]function = event[function]parameters = eventget(parameters [])# 在此处执行业务逻辑。了解更多信息# 请参见:https//docsawsamazoncom/bedrock/latest/userguide/agentslambdahtmlif actionGroup == checkloginstatus and function == checkcustomerloginstatusinloginsystem response = { status unknown } for p in parameters if p[name] == customerid and p[type] == string and p[value] == 12345 response = { status not verified reason 该电子邮件地址未经过验证 solution 请验证您的电子邮件地址 }else response = { error 未知行动组 {} 或函数 {}format(actionGroup function) }responseBody = { TEXT { body jsondumps(response) }}actionresponse = { actionGroup actionGroup function function functionResponse { responseBody responseBody }}dummyfunctionresponse = {response actionresponse messageVersion event[messageVersion]}print(响应 {}format(dummyfunctionresponse))return dummyfunctionresponse我在Lambda控制台中选择部署。该函数配置了一个基于资源的策略,允许Amazon Bedrock调用该函数,因此我无需更新代理使用的IAM角色。
准备好测试代理后,我返回到Amazon Bedrock控制台,选择代理,找到了测试代理区域。在那里,我选择准备以准备代理,并使用最新更改进行测试。
我为代理提供了以下示例电子邮件:

发件人:danilop@examplecom
主题:登录问题
嗨,当我尝试登录我的账户时,遇到错误无法继续。请检查一下吗?谢谢,Danilo
在第一步中,代理编排决定使用第一个行动组retrievecustomersettings和函数retrievecustomersettingsfromcrm。该函数配置为返回控制,控制台要求我提供行动组函数的输出。客户电子邮件地址作为输入参数提供。
为了模拟与应用程序的交互,我以JSON语法回复并选择提交:
{ customer id 12345 }
在下一步中,代理拥有使用第二个行动组checkloginstatus和函数checkcustomerloginstatusinloginsystem调用Lambda函数所需的信息。Lambda函数返回的JSON有效载荷内容如下:
json{ status not verified reason 该电子邮件地址未经过验证 solution 请验证您的电子邮件地址}
代理可以利用此内容完成其任务,并提出针对该客户的正确解决方案。
结果令我满意,但我想了解更多后台的细节。我选择显示追踪,可以看到代理编排每一步的详细信息。这有助于我理解代理的决策,并在未按预期使用时调整代理组的配置。
需要知道的事项
您可以使用新的简化体验,在美国东部弗吉尼亚州北部和美国西部俄勒冈州AWS区域创建和管理Amazon Bedrock的代理。
现在您可以创建代理,而无需指定API模式或为行动组提供Lambda函数。您只需列出行动组所需的参数。在调用代理时,可以选择返回控制,并提供操作的详细信息,以便在现有应用程序中处理操作,或在任务持续时间超过最大Lambda函数超时时使用。
最近发布了对Amazon Bedrock代理的CloudFormation支持,并正在更新以支持新的简化语法。
更多学习资源:
这里有一个如何在代码中使用本博客文章中相同代理的示例。参见用户指南的Amazon Bedrock代理部分。访问我们的communityaws网站,以查找深入的技术内容,并了解其他人如何在解决方案中使用Amazon Bedrock。Danilo
Danilo Poccia
Danilo与各类大小企业合作,支持他们的创新。在担任亚马逊网络服务首席传播官EMEA期间,他利用自己的经验帮助人们实现想法,专注于无服务器架构、事件驱动编程以及机器学习和边缘计算的技术和业务影响。他是《AWS Lambda in Action》的作者。