
构建可信赖的人工智能代理
引言
本课将介绍:
- 如何构建和部署安全有效的人工智能代理
- 开发人工智能代理时的重要安全考量
- 如何在开发过程中维护数据和用户隐私
学习目标
完成本课后,您将能够:
- 识别并减轻创建人工智能代理时的风险
- 实施安全措施,确保数据和访问权限得到妥善管理
- 创建既保护数据隐私又能提供优质用户体验的人工智能代理
安全性
首先,我们来看如何构建安全的代理应用。安全意味着人工智能代理能够按设计正常运行。作为代理应用的开发者,我们拥有多种方法和工具来最大化安全性:
构建系统消息框架
如果您曾使用大型语言模型(LLM)构建人工智能应用,您一定了解设计稳健的系统提示(system prompt)或系统消息的重要性。这些提示定义了元规则、指令和指导方针,决定了LLM如何与用户和数据交互。
对于人工智能代理来说,系统提示更为关键,因为代理需要高度具体的指令来完成预设任务。
为了实现系统提示的可扩展性,我们可以采用系统消息框架来构建一个或多个代理:

第一步:创建元系统消息
元提示将由LLM使用,用于生成代理的系统提示。我们将其设计为模板,以便高效创建多个代理。
示例元系统消息如下:
你是一位创建人工智能代理助手的专家。你将获得公司名称、角色、职责等信息,用于生成系统提示。请尽可能详细描述,并提供结构化内容,使使用LLM的系统能更好理解该代理的角色和职责。
第二步:创建基础提示
接下来,创建描述人工智能代理的基础提示,应包含代理的角色、任务及其他职责。
示例:
你是Contoso Travel的旅行代理,擅长为客户预订航班。你可以执行以下任务:查询可用航班、预订航班、询问座位和时间偏好、取消已预订航班,并提醒客户航班延误或取消。
第三步:向LLM提供基础系统消息
将元系统消息作为系统消息,结合基础系统消息进行优化,生成更适合指导代理的系统消息。
示例系统消息内容详见正文,涵盖公司名称、角色、目标、关键职责、语气风格、用户交互指令及附加说明。
第四步:迭代与改进
系统消息框架的价值在于便于扩展和持续优化。首次设计的系统消息往往无法完全满足需求,通过调整基础系统消息并反复测试,可以不断提升效果。
理解威胁
构建可信赖的人工智能代理,必须了解并减轻潜在风险和威胁。以下是几种常见威胁及其应对策略:

任务和指令篡改
描述: 攻击者通过提示或操控输入,试图改变代理的指令或目标。
应对: 执行验证检查和输入过滤,检测潜在危险提示。限制对话轮数也能减少此类攻击。
关键系统访问
描述: 如果代理能访问存储敏感数据的系统,攻击者可能通过代理破坏通信或窃取信息。
应对: 仅按需授予访问权限,确保代理与系统间通信安全,实施身份验证和访问控制。
资源和服务过载
描述: 攻击者利用代理向服务发送大量请求,导致系统故障或高额费用。
应对: 限制代理对服务的请求次数,控制对话轮数,防止滥用。
知识库污染
描述: 攻击者破坏代理使用的知识库或数据源,导致代理产生偏颇或错误回答。
应对: 定期验证数据,确保数据访问安全,仅授权可信人员修改。
连锁错误
描述: 代理连接多个工具和服务,攻击引发的错误可能扩散,导致更大范围故障。
应对: 让代理在受限环境(如Docker容器)中运行,设置回退机制和重试逻辑,避免系统级故障。
人工干预机制
引入“人类在环”机制是构建可信赖AI代理的有效方法。用户可在代理运行过程中提供反馈,充当多代理系统中的一员,批准或终止操作流程。

以下是使用微软代理框架实现该机制的示例代码:
import os from agent_framework.azure import AzureAIProjectAgentProvider from azure.identity import AzureCliCredential
创建带有人类审批的提供者
provider = AzureAIProjectAgentProvider( credential=AzureCliCredential(), )
创建带有人工审批步骤的代理
response = provider.create_response( input="写一首关于海洋的四行诗。", instructions="你是一个乐于助人的助手,完成前需征求用户批准。", )
用户审核并批准响应
print(response.output_text) user_input = input("你批准吗?(APPROVE/REJECT): ") if user_input == "APPROVE": print("响应已批准。") else: print("响应被拒绝,正在修改...")
结语
构建可信赖的人工智能代理需要精心设计、严密的安全措施和持续迭代。通过实施结构化的元提示系统、理解潜在威胁并采取相应防范措施,开发者能够打造既安全又高效的AI代理。此外,结合人类在环机制,确保代理始终符合用户需求,最大限度降低风险。随着人工智能不断发展,积极关注安全、隐私和伦理问题,是赢得用户信任和保障系统可靠性的关键。


