云原生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,防止聊天机器人提供理财建议:
- 使用Boto3 API创建亚马逊云科技Bedrock Guardrails,并设置内容过滤、关键词和短语过滤,以及敏感词过滤(例如PII和正则表达式),以保护零售客户的敏感信息。
- 列出并创建Guardrail版本。
- 更新Guardrail配置。
- 对Guardrail进行单元测试。
- 记录
guardrail-id
和guardrail-arn
值,以便在note部分后面Part 1c中使用。后续的guardrails功能测试,我们会在本系列的下篇中给大家进行介绍。
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应用安全系列,了解国际前沿的亚马逊云科技解决方案,关注我不要错过未来更多的干货内容!
相关文章:

云原生AI Agent应用安全防护方案最佳实践(上)
当下,AI Agent代理是一种全新的构建动态和复杂业务场景工作流的方式,利用大语言模型(LLM)作为推理引擎。这些Agent代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤,并结合迭代反馈循环和自省机制࿰…...

Java Virtual Machine(JVM)
JVM跨平台原理 跨平台:一次编译,到处运行 本质:不同操作系统上运行的JVM不一样,只需要把java程序编译成一份字节码文件,JVM执行不同的字节码文件。 Java是高级语言,提前编译一下(变成字节码文件…...
vue前端可视化大屏页面适配方案
参考了其他博主的代码,但发现会有滚动条,并且居中的位置不太对,所以改了一下css,修复了这些问题,直接上代码 <template> <div class"ScaleBoxA"><divclass"ScaleBox"ref"Sca…...
Docker中安装MySql方法
使用Docker安装MySQL的详细步骤,涵盖单机部署、数据持久化、网络配置等内容: 1. 安装Docker 如果尚未安装Docker,请先安装: Windows/macOS:下载 Docker Desktop 并安装。 Linux: curl -fsSL https://get.docker.com | bash sudo systemctl start docker sudo system…...

云轴科技ZStack+神州鲲泰,全面支持企业私有化部署DeepSeek模型
如今,DeepSeek的影响力正呈指数级扩散。全球范围内,从科技巨头到初创企业,纷纷投身于DeepSeek系列模型的接入浪潮。为应对企业数据安全与算力高效管理的双重挑战,云轴科技ZStack联合神州鲲泰,基于昇腾算力底座共推ZSta…...
$ npx electron-forge import 一直报权限问题 resource busy or locked,
jackLAPTOP-7DHDAAL0 MINGW64 /e/project/celetron-project/my-electron-app (master) $ npx electron-forge import > Checking your system > Checking git exists > Checking node version > Checking packageManager version √ Found node22.14.0 √ Found gi…...

LLM:GPT 系列
阅读原文: LLM:Qwen 系列 GPT(Generative Pre-trained Transformer)是生成式预训练语言模型,基于 Transformer 架构,专注于通过自回归的方式生成自然语言文本,即给定一个输入序列 x { x 1 , …...

2025年:边缘计算崛起下运维应对新架构挑战
一、引言 随着科技的飞速发展,2025年边缘计算正以前所未有的速度崛起,给运维行业带来了全新的架构挑战。在这个充满机遇与挑战的时代,美信时代公司的美信监控易运维管理软件成为运维领域应对这些挑战的有力武器。 二、边缘计算崛起带来的运维…...
【深度学习模型分类】
深度学习模型种类繁多,涵盖了从基础到前沿的多种架构。以下是主要模型的分类及代表性方法: 1. 基础模型 1.1 多层感知机(MLP) 特点:全连接神经网络,适用于结构化数据。 应用:分类、回归任务…...

【Java报错已解决】org.springframework.beans.factory.BeanCreationException
???很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。??? 欢迎订阅本专栏 目录…...
理解 WebGPU 中的 GPUQueue:GPU 的命令队列
在现代图形编程中,与 GPU 的交互变得越来越高效和灵活,而 WebGPU API 的出现更是为 Web 开发者带来了强大的图形处理能力。其中, GPUQueue 作为 WebGPU 的核心接口之一,扮演着至关重要的角色。本文将详细介绍 GPUQueue 的概…...

电脑显示器无信号是什么原因?查看解决方法
在我们使用电脑的过程中,常遇到的一个问题就是,开机电脑显示器无信号输入。这种故障情况它会导致电脑无法正常显示图像,影响电脑的使用。但是电脑显示器无信号的原因可能有很多,我们需要一一去排除解决。下面便为大家一起来介绍下…...
Debian系发行版通用软件彻底卸载指南
1. 确定软件包名称 # 查看已安装软件列表 dpkg -l | grep 关键词 或 apt list --installed | grep 关键词# 查找二进制文件路径(用于推测包名) which 程序名 # 查找可执行文件路径 whereis 程序名 # 查找相关文件2. 服务检查和停止 # 检查是否有相关…...
微信小程序地图标记点,安卓手机一次性渲染不出来的问题
问题描述: 如果微信小程序端,渲染的标记物太多,安卓手机存在标记物不显示的问题,原因初步判断是地图还没有渲染完,标记物数据已经加载完了,导致没有在地图上显示。 解决办法: 使用map组件的b…...

LabVIEW软件需求开发文档参考
在项目开发的工作历程中,精准把握项目需求无疑是成功打造整个项目的首要关键步骤,同时也是一个至关重要且不可忽视的核心环节。明确且详尽的项目需求就如同建筑的基石,为后续的设计、开发、测试等一系列工作提供了坚实的支撑和清晰的指引。倘…...
MYSQL批量UPDATE的两种方式
工作中遇到批量更新的场景其实是比较常见的。 但是该如何正确的进行批量UPDATE,很多时候往往有点头大。 这里列2种可用的方式,供选择(请选择方式一,手动狗头。)。 如果使用了MyBatis增强组件MyBatisPlus 如果使用了MyBatisPlus,…...
【Viper】配置格式与支持的数据源与go案例
Viper 是一个用于 Go 应用程序的配置管理库,支持多种配置格式和数据源。 安装依赖 go get github.com/spf13/viper go get github.com/spf13/viper/remote go get go.etcd.io/etcd/client/v3"github.com/spf13/viper/remote"要写在etcd客户端import里 1…...

C++17 中的 std::reduce:详细教程
文章目录 1. 简介2. 函数签名3. 使用场景3.1 简单的累加操作3.2 自定义归并操作3.3 并行计算的性能优势 4. 注意事项4.1 归并操作的结合律和交换律4.2 默认值的使用 5. 总结 1. 简介 std::reduce 是 C17 标准库中引入的一个算法,用于对范围内的元素进行归并操作。它…...

解决 paddle ocr 遇到 CXXABI_1.3.13 not found 的问题
ImportError: /lib/x86_64-linux-gnu/libstdc.so.6: version CXXABI_1.3.13 not found (required by /home/hum/anaconda3/envs/ipc/lib/python3.11/site-packages/paddle/base/libpaddle.so) 通过命令检查 strings /lib/x86_64-linux-gnu/libstdc.so.6|grep CXXABI 而实际上我…...
探索 Text-to-SQL 技术:从自然语言到数据库查询的桥梁
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...

用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...