云原生AI Agent应用安全防护方案最佳实践(上)

当下,AI Agent代理是一种全新的构建动态和复杂业务场景工作流的方式,利用大语言模型(LLM)作为推理引擎。这些Agent代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤,并结合迭代反馈循环和自省机制,利用工具和Agent背后的API生成最终结果,返回给终端用户。这种方法需要评估Agent应用的鲁棒性,尤其是对于那些可能存在对抗攻击或有害内容的用户场景。

亚马逊云科技Bedrock Agents利用ReAct和链式思维(CoT)提示技术将复杂的自然语言对话,分解为一系列任务和后端API调用。这种方法提供了极大的应用灵活性,支持动态工作流,并降低了开发成本。亚马逊云科技Bedrock Agents在定制和优化AI应用方面发挥着关键作用,帮助开发者们满足特定项目需求,同时保护用户的私有数据并确保AI应用安全。这些代理基于亚马逊云科技的托管基础设施,减少了运维在基础设施管理过程中的工作量。

尽管亚马逊云科技Bedrock Agents已原始内置了一套机制来防止生成一般性有害内容,但大家还可以结合亚马逊云科技Bedrock Guardrails,实现更细粒度的用户自定义防护机制。亚马逊云科技Bedrock Guardrails在基础模型(FM)内置防护的基础上提供额外的可定制安全措施,为RAG(检索增强生成)和文字总结任务提供目前AI行业领先的安全保护,能够阻止有害内容生成和回复,并过滤幻觉内容响应的生成。这一防护功能使大家可以在AI Agent解决方案中,自定义应用安全、隐私和内容真实性的保护策略。

在本文中,小李哥将演示如何在集成亚马逊云科技Bedrock Guardrails后,识别并提高亚马逊云科技Bedrock Agents的安全防护能力,以适应不同的业务场景。

解决方案概述

本文小李哥将以在线零售聊天客服为示例,该聊天客服支持动态Agent工作流,能够基于客户的自然语言查询搜索并推荐鞋类产品。为了实现这一功能,我会使用亚马逊云科技Bedrock Agents构建这个代理任务流。

为了测试其面对攻击的安全对抗性和系统鲁棒性,我尝试向该机器人提问有关退休理财建议的问题。通过这个示例,可以测试系统鲁棒性性的表现,我们再该方案中利用亚马逊云科技Bedrock Guardrails优化代理任务流,使其避免提供理财建议等不相关的内容。

在该方案中,代理任务流的预处理阶段(即调用LLM生成回复之前的第一个阶段)在亚马逊云科技平台上是默认关闭的。如果想启用该预处理,通常仍需要更细粒度的自定义控制,以决定哪些输出的内容是安全且可被发给用户的。例如一个专注于鞋类销售的零售代理如果提供理财建议,这显然超出了产品的应用范围,可能导致客户失去信任,并带来安全隐患。

另一种常见的细粒度的安全鲁棒性控制需求是防止代理生成敏感信息(PII)。大家可以在亚马逊云科技Bedrock Agents中配置并启用亚马逊云科技Bedrock Guardrails,以提升代理的安全鲁棒性,使其符业务所在地的合规、法规要求和企业自定义的业务需求,通过这种方式我们无需对LLM进行微调。下图展示了我们的解决方案架构:

这张图展示了本文最终实现的高层架构。用户请求被亚马逊云科技Bedrock Agents捕获,并用于生成任务执行计划,然后调用Lambda来执行API,该API可以访问数据库、通过亚马逊云科技的邮件服务SES发送通知或其他应用程序。这些代理与亚马逊云科技Bedrock Guardrails集成,以提升安全的对抗性和鲁棒性。

本方案涉及以下亚马逊云科技服务:

  • 亚马逊云科技Bedrock用于调用LLM
  • 亚马逊云科技Bedrock Agents用于执行代理任务流
  • 亚马逊云科技Bedrock Guardrails用于拦截安全对抗攻击
  • AWS Identity and Access Management(IAM)用于控制各项亚马逊云科技服务的访问权限
  • AWS Lambda用于部署API调用代码,帮助业务API的实现
  • Amazon SageMaker用于托管Jupyter notebooks并调用亚马逊云科技Bedrock Agents API

接下来的部分,我将展示如何使用GitHub仓库中的Jupyter notebooks运行本解决方案。

项目提前准备

要在大家的亚马逊云科技账户中运行本方案,请满足以下的要求:

  • 如果还没有亚马逊云科技账户,需要创建一个。
  • 克隆GitHub仓库,并按照README中的步骤进行操作。
  • 使用AWS CloudFormation模板在SageMaker中配置和部署notebook,该模板存在GitHub仓库中。我们提供必要的IAM权限,以便使用CloudFormation创建SageMaker资源和Lambda函数。
  • 获取亚马逊云科技Bedrock上托管的模型的访问权限。在亚马逊云科技Bedrock控制台左侧导航栏选择"管理模型访问权限",然后从可用选项中选择模型。本示例使用Anthropic Claude 3 Haiku和亚马逊云科技Titan Embeddings Text v1。

创建Guardrail对AI Agent应用进行防护

在Part 1a notebook中,我们按照notebook中的步骤创建一个Guardrail,防止聊天机器人提供理财建议:

  1. 使用Boto3 API创建亚马逊云科技Bedrock Guardrails,并设置内容过滤、关键词和短语过滤,以及敏感词过滤(例如PII和正则表达式),以保护零售客户的敏感信息。
  2. 列出并创建Guardrail版本。
  3. 更新Guardrail配置。
  4. 对Guardrail进行单元测试。
  5. 记录guardrail-idguardrail-arn值,以便在note部分后面Part 1c中使用。后续的guardrails功能测试,我们会在本系列的下篇中给大家进行介绍。
python 复制代码
create_response = client.create_guardrail(
    name=guardrail_name,
    description='Prevents our model from providing fiduciary advice.',
    topicPolicyConfig={
        'topicsConfig': [
            {
                'name': 'Fiduciary Advice',
                'definition': 'Providing personalized advice or recommendations on managing financial assets, investments, or trusts in a fiduciary capacity or assuming related obligations and liabilities.',
                'examples': [
                    'What stocks should I invest in for my retirement?',
                    'Is it a good idea to put my money in a mutual fund?',
                    'How should I allocate my 401(k) investments?',
                    'What type of trust fund should I set up for my children?',
                    'Should I hire a financial advisor to manage my investments?'
                ],
                'type': 'DENY'
            }
        ]
    },
....
}

以上就是云原生AI Agent应用安全防护方案最佳实践的上篇内容,在本篇中我们介绍了云原生AI Agent应用安全防护解决方案,并了解了如何通过Python代码创建Guardrails保护AI Agent应用。欢迎大家继续关注小李哥的生成式AI应用安全系列,了解国际前沿的亚马逊云科技解决方案,关注我不要错过未来更多的干货内容!

相关推荐
HeShen.4 分钟前
AutoDL+SSH在vscode中远程使用GPU训练深度学习模型
ide·人工智能·vscode·深度学习·ssh·远程工作
网络空间小黑1 小时前
渗透测试行业术语2
服务器·网络·安全·网络安全·中间件
nuise_1 小时前
李沐《动手学深度学习》 | 多层感知机
人工智能·深度学习
大有数据可视化3 小时前
人工智能如何革新数据可视化领域?探索未来趋势
人工智能·信息可视化
AI technophile4 小时前
OpenCV计算机视觉实战(4)——计算机视觉核心技术全解析
人工智能·opencv·计算机视觉
云和数据.ChenGuang4 小时前
人工智能 机器学习期末考试题
开发语言·人工智能·python·机器学习·毕业设计
珊珊而川5 小时前
3.1监督微调
人工智能
我是小伍同学5 小时前
基于卷积神经网络和Pyqt5的猫狗识别小程序
人工智能·python·神经网络·qt·小程序·cnn
UFIT6 小时前
Nginx安全防护与HTTPS部署实战
nginx·安全·https
界面开发小八哥7 小时前
界面控件DevExpress WinForms v25.1新功能预览 - 功能区组件全新升级
人工智能·.net·界面控件·winform·devexpress