当前位置: 首页 > news >正文

云原生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功能测试,我们会在本系列的下篇中给大家进行介绍。
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代理应用能够将复杂的自然语言查询任务分解为多个可执行步骤,并结合迭代反馈循环和自省机制&#xff0…...

Java Virtual Machine(JVM)

JVM跨平台原理 跨平台:一次编译,到处运行 本质:不同操作系统上运行的JVM不一样,只需要把java程序编译成一份字节码文件,JVM执行不同的字节码文件。 Java是高级语言,提前编译一下(变成字节码文件…...

vue前端可视化大屏页面适配方案

参考了其他博主的代码&#xff0c;但发现会有滚动条&#xff0c;并且居中的位置不太对&#xff0c;所以改了一下css&#xff0c;修复了这些问题&#xff0c;直接上代码 <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模型

如今&#xff0c;DeepSeek的影响力正呈指数级扩散。全球范围内&#xff0c;从科技巨头到初创企业&#xff0c;纷纷投身于DeepSeek系列模型的接入浪潮。为应对企业数据安全与算力高效管理的双重挑战&#xff0c;云轴科技ZStack联合神州鲲泰&#xff0c;基于昇腾算力底座共推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 系列

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

2025年:边缘计算崛起下运维应对新架构挑战

一、引言 随着科技的飞速发展&#xff0c;2025年边缘计算正以前所未有的速度崛起&#xff0c;给运维行业带来了全新的架构挑战。在这个充满机遇与挑战的时代&#xff0c;美信时代公司的美信监控易运维管理软件成为运维领域应对这些挑战的有力武器。 二、边缘计算崛起带来的运维…...

【深度学习模型分类】

深度学习模型种类繁多&#xff0c;涵盖了从基础到前沿的多种架构。以下是主要模型的分类及代表性方法&#xff1a; 1. 基础模型 1.1 多层感知机&#xff08;MLP&#xff09; 特点&#xff1a;全连接神经网络&#xff0c;适用于结构化数据。 应用&#xff1a;分类、回归任务…...

【Java报错已解决】org.springframework.beans.factory.BeanCreationException

???很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。??? 欢迎订阅本专栏 目录…...

理解 WebGPU 中的 GPUQueue:GPU 的命令队列

在现代图形编程中&#xff0c;与 GPU 的交互变得越来越高效和灵活&#xff0c;而 WebGPU API 的出现更是为 Web 开发者带来了强大的图形处理能力。其中&#xff0c; GPUQueue 作为 WebGPU 的核心接口之一&#xff0c;扮演着至关重要的角色。本文将详细介绍 GPUQueue 的概…...

电脑显示器无信号是什么原因?查看解决方法

在我们使用电脑的过程中&#xff0c;常遇到的一个问题就是&#xff0c;开机电脑显示器无信号输入。这种故障情况它会导致电脑无法正常显示图像&#xff0c;影响电脑的使用。但是电脑显示器无信号的原因可能有很多&#xff0c;我们需要一一去排除解决。下面便为大家一起来介绍下…...

Debian系发行版通用软件彻底卸载指南

1. 确定软件包名称 # 查看已安装软件列表 dpkg -l | grep 关键词 或 apt list --installed | grep 关键词# 查找二进制文件路径&#xff08;用于推测包名&#xff09; which 程序名 # 查找可执行文件路径 whereis 程序名 # 查找相关文件2. 服务检查和停止 # 检查是否有相关…...

微信小程序地图标记点,安卓手机一次性渲染不出来的问题

问题描述&#xff1a; 如果微信小程序端&#xff0c;渲染的标记物太多&#xff0c;安卓手机存在标记物不显示的问题&#xff0c;原因初步判断是地图还没有渲染完&#xff0c;标记物数据已经加载完了&#xff0c;导致没有在地图上显示。 解决办法&#xff1a; 使用map组件的b…...

LabVIEW软件需求开发文档参考

在项目开发的工作历程中&#xff0c;精准把握项目需求无疑是成功打造整个项目的首要关键步骤&#xff0c;同时也是一个至关重要且不可忽视的核心环节。明确且详尽的项目需求就如同建筑的基石&#xff0c;为后续的设计、开发、测试等一系列工作提供了坚实的支撑和清晰的指引。倘…...

MYSQL批量UPDATE的两种方式

工作中遇到批量更新的场景其实是比较常见的。 但是该如何正确的进行批量UPDATE&#xff0c;很多时候往往有点头大。 这里列2种可用的方式&#xff0c;供选择(请选择方式一&#xff0c;手动狗头。)。 如果使用了MyBatis增强组件MyBatisPlus 如果使用了MyBatisPlus&#xff0c;…...

【Viper】配置格式与支持的数据源与go案例

Viper 是一个用于 Go 应用程序的配置管理库&#xff0c;支持多种配置格式和数据源。 安装依赖 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 标准库中引入的一个算法&#xff0c;用于对范围内的元素进行归并操作。它…...

解决 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 技术:从自然语言到数据库查询的桥梁

亲爱的小伙伴们&#x1f618;&#xff0c;在求知的漫漫旅途中&#xff0c;若你对深度学习的奥秘、Java 与 Python 的奇妙世界&#xff0c;亦或是读研论文的撰写攻略有所探寻&#x1f9d0;&#xff0c;那不妨给我一个小小的关注吧&#x1f970;。我会精心筹备&#xff0c;在未来…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题

【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要&#xff1a; 近期&#xff0c;在使用较新版本的OpenSSH客户端连接老旧SSH服务器时&#xff0c;会遇到 "no matching key exchange method found"​, "n…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

C#学习第29天:表达式树(Expression Trees)

目录 什么是表达式树&#xff1f; 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持&#xff1a; 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程

STM32F1 本教程使用零知标准板&#xff08;STM32F103RBT6&#xff09;通过I2C驱动ICM20948九轴传感器&#xff0c;实现姿态解算&#xff0c;并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化&#xff0c;适合嵌入式及物联网开发者。在基础驱动上新增…...

k8s从入门到放弃之HPA控制器

k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率&#xff08;或其他自定义指标&#xff09;来调整这些对象的规模&#xff0c;从而帮助应用程序在负…...

文件上传漏洞防御全攻略

要全面防范文件上传漏洞&#xff0c;需构建多层防御体系&#xff0c;结合技术验证、存储隔离与权限控制&#xff1a; &#x1f512; 一、基础防护层 前端校验&#xff08;仅辅助&#xff09; 通过JavaScript限制文件后缀名&#xff08;白名单&#xff09;和大小&#xff0c;提…...