AI 学习资料 · AI 智能体入门(精选 9 课)
第 6 课 构建可信赖的 AI 智能体
介绍
本课将涵盖:
- 如何构建和部署安全、有效的 AI 智能体
- 开发 AI 智能体时重要的安全考虑
- 开发 AI 智能体时如何保护数据和用户隐私
学习目标
学完本课,你将知道如何:
- 识别并降低创建 AI 智能体时的风险
- 落实安全措施,确保数据和访问权限得到妥善管理
- 创建既保护数据隐私、又有良好用户体验的 AI 智能体
安全
先来看如何构建安全的智能体应用。这里说的安全,是指 AI 智能体按设计的方式运行。作为智能体应用的构建者,我们有一些方法和工具,可以尽可能提高安全性:
建立系统消息框架
如果你用大语言模型(LLM)做过 AI 应用,就会知道设计一份稳健的系统提示词(也叫系统消息)有多重要。这些提示词确立了元规则、指令和准则,规定 LLM 如何与用户和数据交互。
对 AI 智能体来说,系统提示词更加重要,因为 AI 智能体需要非常具体的指令,才能完成我们为它设计的任务。
为了让系统提示词能够规模化地编写,我们可以用一个系统消息框架,来构建应用中的一个或多个智能体:
编者注:图中“系统消息用于生成中系统消息”为机器翻译的断句错误,原意是“用于生成系统消息的系统消息”,即下文的元系统消息。
第一步:创建元系统消息
LLM 会用元提示词,为我们创建的各个智能体生成系统提示词。我们把它设计成模板,这样需要时就能高效地创建多个智能体。
下面是我们给 LLM 的一条元系统消息示例:
你是创建 AI 智能体助手的专家。你会收到公司名称、角色、职责和其他信息,需要据此写出一份系统提示词。写系统提示词时,请尽可能详细,并给出清晰的结构,让基于 LLM 的系统能更好地理解这个 AI 助手的角色和职责。
译注:原文示例是英文提示词,这里由本库译成中文。
第二步:创建基础提示词
下一步是写一份描述 AI 智能体的基础提示词,写明智能体的角色、要完成的任务,以及其他职责。
下面是一个示例:
你是 Contoso Travel 的旅行顾问,擅长为客户预订机票。为帮助客户,你可以完成以下任务:查询可订航班、预订航班、询问客户对座位和航班时间的偏好、取消之前预订的航班,以及在航班延误或取消时通知客户。
译注:原文示例是英文提示词,这里由本库译成中文。
第三步:把基础系统消息交给 LLM
现在,我们可以把元系统消息作为系统消息,再加上基础系统消息一起交给 LLM,来优化这份系统消息。
这样会生成一份更适合指导 AI 智能体的系统消息:
代码略:原文此处是一份由 LLM 生成的英文系统消息,依次写明公司名称(Contoso Travel)、角色(旅行顾问助手)、目标、五项主要职责(查询航班、预订航班、询问客户偏好、取消航班、监控航班动态)、语气与风格、与用户交互的要求,以及补充说明。
第四步:迭代与改进
这个系统消息框架的价值在于,为多个智能体编写系统消息时更容易规模化,也便于随着时间不断改进系统消息。很少有系统消息第一次就能完全适合你的使用场景。改动基础系统消息、再让它在框架里跑一遍,就能做小幅调整和改进,并对比、评估结果。
理解威胁
要构建可信赖的 AI 智能体,就要理解并降低 AI 智能体面临的风险和威胁。下面只列出 AI 智能体面临的部分威胁,以及你可以怎样更好地规划和应对。
任务和指令
描述: 攻击者通过提示词或篡改输入,试图改变 AI 智能体的指令或目标。
缓解措施: 在输入交给 AI 智能体处理之前,执行校验检查和输入过滤,识别可能有危险的提示词。这类攻击通常需要与智能体频繁交互,所以限制对话轮数也是防范的方法之一。
访问关键系统
描述: 如果 AI 智能体有权访问存放敏感数据的系统和服务,攻击者可能会攻破智能体与这些服务之间的通信。攻击可能是直接的,也可能是借助智能体间接打探这些系统的信息。
缓解措施: 为防范这类攻击,AI 智能体只应按实际需要获得系统访问权限。智能体与系统之间的通信也要安全。实施身份验证和访问控制,是保护这些信息的另一种方法。
资源和服务过载
描述: AI 智能体可以访问各种工具和服务来完成任务。攻击者可能利用这一点,通过 AI 智能体向这些服务发送大量请求,造成系统故障或高额费用。
缓解措施: 制定策略,限制 AI 智能体向某个服务发出的请求次数。限制与 AI 智能体的对话轮数和请求次数,也是防范这类攻击的方法。
知识库投毒
描述: 这类攻击不直接针对 AI 智能体,而是针对智能体要用到的知识库和其他服务。攻击者可能篡改智能体完成任务时要用的数据或信息,导致智能体给用户的回答带有偏差或出乎意料。
缓解措施: 定期核验 AI 智能体在工作流中要用到的数据。确保对这些数据的访问是安全的,只有可信的人才能修改,以防范这类攻击。
级联错误
描述: AI 智能体会访问各种工具和服务来完成任务。攻击者引发的错误可能导致与智能体相连的其他系统也出故障,使攻击波及更广、更难排查。
缓解措施: 一种办法是让 AI 智能体在受限的环境中运行,例如在 Docker 容器里执行任务,防止系统直接遭到攻击。另一种办法是为某些系统返回错误的情况设计回退机制和重试逻辑,避免引发更大范围的系统故障。
人在回路
构建可信赖 AI 智能体系统的另一个有效办法,是采用“人在回路”(Human-in-the-Loop)。它建立了一个流程,让用户在智能体运行过程中给出反馈。用户实际上相当于多智能体系统中的一个智能体,可以批准或终止正在进行的流程。
原文用 Microsoft Agent Framework 的一段代码演示了这个概念的实现:
代码略:让模型写一首四行的海洋小诗,并要求它在定稿前征得用户同意;程序把结果打印出来,请用户输入“批准”或“拒绝”,批准就采用,拒绝就进入修改。
结论
构建可信赖的 AI 智能体,需要精心的设计、可靠的安全措施和持续的迭代。通过建立结构化的元提示词体系、理解潜在威胁并采取缓解策略,开发者可以打造既安全又有效的 AI 智能体。此外,引入“人在回路”的做法,能让 AI 智能体始终贴合用户需求,同时把风险降到最低。随着 AI 不断发展,在安全、隐私和伦理问题上保持主动,是让 AI 驱动的系统赢得信任、保持可靠的关键。
补充资源
免责声明:本课中文最初由 AI 翻译工具 Co-op Translator 自动翻译,本库对照英文原文做了校订和删节。译文仍可能有错漏,与英文原版不一致之处,以英文原版为准。


