革命性解决方案!高效处理跨应用工作流

各行各业正致力于实现跨越多个应用程序和记录系统的重复性任务的自动化。无论是处理发票、更新客户记录,还是管理人力资源(HR)文档,这些工作流程通常需要员工在不同系统之间手动传输信息,不仅耗时长、易出错,且难以扩展。

传统的自动化方法需要对每个应用程序进行自定义API集成,造成开发成本高昂。而作为Anthropic的一项突破性功能,Computer Use改变了这一范式,允许机器能够像人类一样感知现有界面。

近期,亚马逊云科技在Amazon Bedrock Agents中融合了Anthropic的Claude 3.5 Sonnet V2和Claude 3.7 Sonnet模型来支持Computer Use。该集成将Anthropic的视觉感知功能作为Amazon Bedrock Agents中的托管工具,使Claude模型能够识别屏幕内容,理解用户界面上下文,并执行如点击按钮、输入文本、滚动和在应用程序之间导航等操作,从而为您在工作流程中实施Computer Use自动化提供安全、可追溯且托管的方式。

本文构建了Computer Use Agent演示,作为关键的编排层,将Computer Use从感知能力转化为可执行的自动化。若无此层,Computer Use只能识别潜在的行动而无法执行。Amazon Bedrock Agents提供支持的Computer Use Agent演示具有以下优势:

  • 安全执行环境:在沙盒环境中执行Computer Use工具,对亚马逊云科技系统及网络的访问受限。需要注意的是,目前Amazon Bedrock Agents未提供沙盒环境。

  • 全面的日志记录:能够跟踪每个操作和交互,便于审计和调试。

  • 详细的跟踪功能:提供自动化工作流程各步骤的可见性。

  • 简化测试和实验:通过管理控制降低使用此实验功能时的风险。

  • 无缝编排:无需定制代码,即可跨系统协调复杂的工作流程。

该集成将Anthropic对数字界面的感知理解与Amazon Bedrock Agents的编排能力相结合,创建了功能强大的Agent,用于自动执行跨应用程序的复杂工作流。开发者通过创建Agent,以可管理的安全方式感知现有界面并与之交互,无需为每个系统建立自定义集成。

使用Computer Use时,Amazon Bedrock Agents可通过基本图形用户界面操作和内置Linux 命令自动执行任务。例如,Agent可以截屏、创建和编辑文本文件以及运行内置Linux命令。使用Amazon Bedrock Agents和兼容的Anthropic的Claude模型,您可以使用以下操作组:

  • 计算机工具:实现与用户界面的交互(点击、输入、滚动)。

  • 文本编辑工具:提供编辑和处理文件的功能。

  • Bash:允许执行内置的Linux命令。

解决方案概述

Computer Use工作流程示例包括以下步骤:

1.创建Amazon Bedrock Agents,并使用自然语言描述Agent应该做什么以及如何与用户交互,例如“你是Computer Use Agent,能够使用Firefox网络浏览器进行网络搜索”。

2.使用CreateAgentActionGroup API将Amazon Bedrock Agents支持的Computer Use操作组添加到Agent中。

3.使用需要Computer Use工具的用户查询调用Agent,例如:“Amazon Bedrock是什么,您能搜索网页吗?”

4.Amazon Bedrock Agents使用其掌握的工具定义,并决定使用计算机行动组点击环境截图。利用Amazon Bedrock Agents的返回控制能力,Agent会用它想要执行的一个或多个工具做出响应。使用Amazon Bedrock Agents的这一功能Computer Use必须具备返回控制功能。

5.工作流解析Agent响应,并在沙箱环境中执行返回的工具。输出结果将返回给Amazon Bedrock Agents进行进一步处理。

6.Amazon Bedrock Agents继续使用其所掌握的工具做出响应,直至任务完成。

您可以按照GitHub代码库中的说明,使用Amazon Web Services CDK在us-west-2亚马逊云科技区域重新创建此示例。此演示使用Amazon Fargate在us-west-2区域的两个可用区部署了一个容器化应用程序。基础设施在VPC中运行,每个可用区都包含公共子网,并由互联网网关提供外部连接。

该架构得到了基本支持服务的补充,包括用于安全的Amazon KMS和用于监控的Amazon CloudWatch,从而创建了一个有弹性的无服务器容器环境,在保持稳健安全性和高可用性的同时,减轻了对底层基础设施的管理需求。

GitHub代码库说明:

https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/agents/computer_use

解决方案架构如下图所示。

解决方案的核心是通过由Amazon ECS管理的两个Fargate容器,每个容器都由自己的安全组保护。

第一个是编排容器,不仅处理Amazon Bedrock Agents与终端用户之间的通信,还负责编排支持工具执行的工作流程。

第二个是环境容器,作为一个安全的沙盒,Amazon Bedrock Agents可以在其中安全地运行Computer Use工具。环境容器对其他系统资源和互联网的访问受到限制,利用服务发现功能将Amazon ECS服务与DNS名称连接起来。

编排容器包括以下组件:

  • Streamlit UI:用于促进终端用户与Computer Use Agent之间的互动。

  • 返回控制环:负责解析Agent希望执行的工具并返回这些工具输出的工作流程。

环境容器包括以下组件:

  • 用户界面和预装应用程序:轻量级用户界面和预装的Linux应用程序,如Firefox,可用于完成用户任务。

  • 工具执行:可在环境中执行“截图”或“双击”等计算机使用工具的代码。

  • Quart(RESTful)JSON API:使用Quart在沙盒环境中执行工具的编排容器。

下图展示了以上组件。

准备条件

1.亚马逊云科技命令行界面(CLI),请按此处说明操作,并按以下说明设置凭证。

2.要求Python 3.11或更高版本。

3.需要Node.js 14.15.0或更高版本。

4.Amazon Web Services CDK CLI,请按此处说明操作。

5.为Anthropic的Claude Sonnet 3.5 V2和Claude Sonnet 3.7启用模型访问。

6.Boto3版本为1.37.10及以上。

亚马逊云科技命令行界面操作说明:

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

设置凭证操作说明:

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html

Amazon Web Services CDK CLI操作说明:

https://docs.aws.amazon.com/cdk/v2/guide/getting_started.html

如何创建具有Computer Use功能的

Amazon Bedrock Agents

使用以下代码示例创建一个简单的Amazon Bedrock Agents,其中包含计算机、bash和文本编辑器操作组。在使用Anthropic的Claude 3.5 Sonnet V2和Claude 3.7 Sonnet时,提供兼容的动作组签名至关重要,此处着重强调了这一点。

import boto3
import time


# Step 1: Create the bedrock agent client


bedrock_agent = boto3.client("bedrock-agent", region_name="us-west-2")# Step 2: Create an agent


create_agent_response = create_agent_response = bedrock_agent.create_agent(
        agentResourceRoleArn=agent_role_arn, # Amazon Bedrock Agent execution role
        agentName="computeruse",
        description="""Example agent for computer use. 
                                This agent should only operate on 
                                Sandbox environments with limited privileges.""",
        foundationModel="us.anthropic.claude-3-7-sonnet-20250219-v1:0",      
                instruction="""You are computer use agent capable of using Firefox 
                 web browser for web search.""",)


time.sleep(30) # wait for agent to be created# Step 3.1: Create and attach computer action group


bedrock_agent.create_agent_action_group(
    actionGroupName="ComputerActionGroup",
    actionGroupState="ENABLED",
    agentId=create_agent_response["agent"]["agentId"],
    agentVersion="DRAFT",
    parentActionGroupSignature="ANTHROPIC.Computer",
    parentActionGroupSignatureParams={"type": "computer_20250124","display_height_px": "768","display_width_px": "1024","display_number": "1",},)# Step 3.2: Create and attach bash action group


bedrock_agent.create_agent_action_group(
    actionGroupName="BashActionGroup",
    actionGroupState="ENABLED",
    agentId=create_agent_response["agent"]["agentId"],
    agentVersion="DRAFT",
    parentActionGroupSignature="ANTHROPIC.Bash",
    parentActionGroupSignatureParams={"type": "bash_20250124",},)# Step 3.3: Create and attach text editor action group


bedrock_agent.create_agent_action_group(
    actionGroupName="TextEditorActionGroup",
    actionGroupState="ENABLED",
    agentId=create_agent_response["agent"]["agentId"],
    agentVersion="DRAFT",
    parentActionGroupSignature="ANTHROPIC.TextEditor",
    parentActionGroupSignatureParams={"type": "text_editor_20250124",},)# Step 3.4 Create Weather Action Group


bedrock_agent.create_agent_action_group(
        actionGroupName="WeatherActionGroup",
        agentId=create_agent_response["agent"]["agentId"],
        agentVersion="DRAFT",
        actionGroupExecutor = {'customControl': 'RETURN_CONTROL',},
        functionSchema = {'functions': [{"name": "get_current_weather","description": "Get the current weather in a given location.","parameters": {"location": {"type": "string","description": "The city, e.g., San Francisco","required": True,},"unit": {"type": "string","description": 'The unit to use, e.g., 
                                                                        fahrenheit or celsius. Defaults to "fahrenheit"',"required": False,},},"requireConfirmation": "DISABLED",}]},)
time.sleep(10)# Step 4: Prepare agent


bedrock_agent.prepare_agent(agentId=create_agent_response["agent"]["agentId"])

左右滑动查看完整示意

示例用例

下文将演示使用具有Computer Use功能的Amazon Bedrock Agents来完成一项网页表单的示例。

在该示例中,Computer Use Agent还可以切换Firefox标签,与客户关系管理(CRM)Agent交互,从而获取完成表单所需的信息。虽然本示例使用了示例CRM应用程序作为记录系统,但同样方法也适用于Salesforce、SAP、Workday或其他具有适当认证框架的记录系统。

在示例中可以观察到Amazon Bedrock Agents在使用Computer Use方面的出色表现。本例借助视觉检查Excel数据,来填写客户ID、客户名称和电子邮件。但在概述环节,由于屏幕显示的信息并不完整,所以Agent选择了相应单元格并复制数据。最后利用CRM Agent获取客户更多信息。

最佳实践

以下是一些可以提高用例性能的方法:

  • 实施Security Groups、Network Access Control Lists(NACLs)和Resolver DNS Firewall域名列表,以控制对沙盒环境的访问。

  • 应用Amazon IAM和最小权限原则,为沙盒环境分配有限权限。

  • 向Amazon Bedrock Agents提供的指令应简明扼要。明确指定简单、清晰的任务,并为每一步骤提供具体指导。

  • 了解Anthropic强调的Computer Use限制。

  • 在调用Computer Use工具前请求用户确认,通过用户确认来补充控制权返回,以帮助保护应用程序免遭恶意提示注入的攻击。

  • 通过Amazon Bedrock Agents使用多Agents协作和Computer Use功能,将复杂工作流程自动化。

  • 通过将Amazon Bedrock Guardrails与Agent相关联,根据您的应用程序负责的AI策略过滤有害的多模态内容,从而实施保障措施。

注意事项

根据亚马逊云科技服务条款的定义,Computer Use功能以测试版服务的形式向您提供。要使用该功能,您需遵守与亚马逊云科技之间达成的协议、亚马逊云科技服务条款以及适用的模型EULA(最终用户许可协议)。

Computer Use功能带来的独特风险有别于标准API功能或聊天界面,并且使用Computer Use功能与互联网进行交互时,这些风险会更加显著,请考虑采取以下预防措施:

  • 在具有最小权限的专用虚拟机或容器中运行计算机使用功能,以降低直接系统漏洞利用或意外事故的风险。

  • 为防止信息被盗,避免让Computer Use API访问敏感账户或数据。

  • 将Computer Use应用程序接口的互联网访问限制在所需域内,以减少接触恶意内容的机会。

  • 为实施适当的监督,在执行敏感任务(如可能带来实质性现实影响的决策)和任何需要明确同意的操作(如接受cookie、执行金融交易或同意服务条款)时,应让人工参与流程。

任何您允许Anthropic的Claude查看或访问的内容都有可能覆盖指令,或导致模型出错或执行意外操作。采取适当的预防措施至关重要,例如将Anthropic的Claude与敏感表面隔离,包括避免与提示注入相关的风险。在自己的产品中启用或请求启用Computer Use功能所需的权限之前,请告知终端用户任何相关风险,并酌情征得他们同意。

清理

使用此解决方案后,请务必清理所有资源。详细操作,请参阅GitHub代码库中的说明。

GitHub代码库:

https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/agents/computer_use#cleanup

总结

各行各业企业在处理跨应用程序工作流程时,面临诸多挑战,这些流程以往依赖于手动输入数据或复杂的自定义集成。而Anthropic的Computer Use功能与Amazon Bedrock Agents集成,为应对这些挑战提供了革命性解决方案。

通过使用Amazon Bedrock Agents作为编排层,企业可以减轻为每个应用程序开发自定义API的需求,利用对企业部署至关重要的综合日志记录和跟踪功能,并快速实施自动化解决方案

当您着手尝试使用具备Computer Use功能的Amazon Bedrock Agents时,不妨考虑企业中能受益于此功能的工作流程。从发票处理到客户入职,或者是从人力资源文档管理到合规性报告等,该功能应用空间十分广泛且具有变革性。

立即体验具有Computer Use功能的Amazon Bedrock Agents,通过AI驱动的自动化安全地简化操作并重塑业务流程。

资源链接

更多信息,请参阅以下资源。

Computer use with Amazon Bedrock Agents指南:

https://docs.aws.amazon.com/bedrock/latest/userguide/agents-computer-use.html

Computer use with Amazon Bedrock Agents实施指南:

https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/agents/computer_use

Computer use with Anthropic’s Claude实施指南:

https://github.com/aws-samples/anthropic-on-aws/tree/main/computer-use

Computer use with Anthropic指南:https://docs.anthropic.com/en/docs/agents-and-tools/computer-use

Amazon Bedrock Agents示例:

https://github.com/awslabs/amazon-bedrock-agent-samples

本篇作者

Eashan Kaushik

亚马逊云科技的人工智能与机器学习专业解决方案架构师。致力于创建前沿生成式AI解决方案,在工作中秉持以客户为中心的理念。

Maira Ladeira Tanke

亚马逊云科技Amazon Bedrock的Agent工作负载技术负责人,致力于帮助客户开发自主AI系统。她在人工智能与机器学习领域拥有10多年经验。在亚马逊云科技,Maira与企业客户合作,利用Amazon Bedrock加快Agent应用程序的采用,帮助企业利用基础模型的强大功能推动创新和业务转型。

Raj Pathak

首席解决方案架构师和技术顾问,服务于加拿大和美国的财富50强企业和中型金融服务机构(银行、保险、资本市场)客户。专注于机器学习,特别是生成式AI、自然语言处理、智能文档处理和机器学习运维(MLOps)的应用。

Adarsh Srikanth

Amazon Bedrock的软件开发工程师之一,负责开发AI Agents服务。他拥有南加州大学计算机科学硕士学位,入职时就已有三年行业经验。

Abishek Kumar

亚马逊资深软件工程师,在零售和Amazon Web Services Organizations拥有超过六年的经验。擅长于开发生成式AI和机器学习解决方案,为Amazon SageMaker Autopilot、Amazon SageMaker Canvas和Amazon Bedrock Agents等亚马逊云科技服务做出重要贡献。Abishek始终热衷于解决复杂问题,以及构建服务全球数百万客户的大规模系统。

Krishna Gourishetti

亚马逊云科技Amazon Bedrock Agents团队的高级软件工程师。他热衷于构建可扩展的软件解决方案,以解决客户的问题。

星标不迷路,开发更极速!

关注后记得星标「亚马逊云开发者」

听说,点完下面4个按钮

就不会碰到bug了!

点击阅读原文查看博客!获得更详细内容!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值