GuardAgent 核心要点及机制解析

GuardAgent 核心要点及机制解析

https://arxiv.org/pdf/2406.09187

一、提出背景与设计目的

  • 安全挑战:
    随着大型语言模型(LLM)代理广泛应用,安全问题日益突出。以医疗为例,LLM代理若被滥用,易泄露患者机密信息。
  • 传统局限:
    现有LLM防护主要针对文本输出,常采用硬编码规则、难以泛化至不同行业或新型安全请求,且无法应对目标代理的多样性。
  • 创新目的:
    GuardAgent 是首个 “护航代理(Guarding Agent)” 框架,专为动态保障 LLM 代理安全而设计。其通过知识驱动的推理,动态检查并执行各类安全防护请求。

二、核心优势与特点

  • 灵活非侵入:
    可通过上传自定义函数,适配不同目标代理与多种防护请求,无须改动目标代理决策。
  • 高可靠性:
    利用代码生成与执行,突破自然语言防护栏的模糊性,确保安全请求的确定性落实。
  • 无需额外训练:
    得益于 in-context learning,直接用市面上的LLM,无需模型微调。
  • 运行低开销:
    轻量化设计,易于落地部署。

三、GuardAgent 工作流程

 

  1. 任务规划

    • 分析并理解安全请求,结合记忆模块(存储历史经验)和LLM,生成多步行动计划。
  2. 防护代码生成与执行

    • LLM基于计划、工具箱可调用函数和相关演示,产出防护栏代码。
    • 代码可调用外部API/引擎,输出为标签预测与理由。
    • 记忆模块为问题分析和代码生成过程提供优质演示。
    • 支持代码自动调试,确保可靠性。

四、评估标准与基准

  • EICU-AC:医疗访问控制
    • 角色例:普通行政人员请求患者实验室结果 → GuardAgent检测并拒绝因超权限访问的操作。
  • Mind2Web-SC:网络安全策略
    • 例:无驾照用户尝试租车 → GuardAgent依安全规则准确拒绝。
  • 重点:聚焦真实的访问和操作权限审核,不影响业务代理任务性能。

五、实验结果与场景案例

  • 整体效果突出
    • 在EICU-AC基准的准确率超98%;Mind2Web-SC上超83%。
    • 明显优于Model-Guarding-Agent与硬编码规则(后者显著降低业务代理性能)。
  • 具体案例
    • 医疗代理保护:防止非医生访问敏感数据库
    • 网页操作限制:未成年禁止订购酒精或酒店
    • 代码生成能力: 列名歧义处理、可自主补全必要函数
    • 问答风控: CSQA多级风险输出(如“低风险”“中风险”)
  • 性能说明
    • GuardAgent实现100%的FRA(最终响应准确率),即不影响目标代理正常任务。
    • 工具箱和记忆模块移除,性能虽降但仍可自定义新函数补偿,展现高适应性。
    • LlamaGuard等内容审核模型难以胜任此类代理护航任务。

六、防护代码生成机制详解

  1. 输入组件

    • 行动计划(P)
    • 可调用函数列表(F)(工具箱,用户可扩展)
    • 记忆模块相关演示(D1…Dk)
    • 目标代理输入/输出(Ii, Io)
  2. 生成流程

    • LLM参考计划、函数、演示,生成防护代码(C),仅限用提供函数,避免不现实的操作。
    • 代码经引擎执行,输出安全判定标签与理由。
  3. 可靠性保障

    • 代码出错时,LLM自动调试分析(极少需要)。
    • 结构化输入(如key-value)利于生成高质量代码。
    • 代码形式实现判定的确定性和高精度,天然优势超过自然语言描述。

七、实际应用例举

  • 医疗访问控制
    行政人员请求患者数据库,“拒绝”输出由自动生成的防护代码判定

 

 

  • 网络平台风控
    未满18岁用户申请酒店,触发代码拒绝操作
  • 问答任务风控
    CSQA场景下根据规则自动判断并输出风险等级

八、未来拓展方向

  • 自动化工具箱拓展/设计
  • 引入“自洽性”“反思”等推理机制
  • 支持多代理协调防护任务
  • 与复杂工具/外部系统集成(如生命科学、自动驾驶等)

GuardAgent 利用 LLM 强大的推理与代码生成能力,为各类业务代理动态生成定制化的高可靠安全“护栏”,在医疗、互联网、自动驾驶等高风险应用场景表现出色。

 

 

欢迎来到 GuardAgent 的项目页面!在本项目中,我们旨在通过检查 LLM 驱动的代理(以下称为“目标代理”)的输入/输出是否满足用户定义的一组防护请求(例如,安全规则或隐私政策),为其提供护栏。这与 LLM 的护栏(例如Llama Guard)有着根本的不同,因为 LLM 代理的输出可以是动作、代码、控制信号等。GuardAgent设计主要包含两个步骤:1)通过分析提供的防护请求创建任务计划;2)基于任务计划生成护栏代码,并通过调用 API 或使用外部引擎执行代码。在这两个步骤中,LLM 都被用作核心推理组件,并辅以从内存模块中检索的上下文演示。这种基于知识的推理使 GuardAgent 能够理解各种文本防护请求,并将其准确地“翻译”为提供可靠护栏的可执行代码。除了 GuardAgent 之外,我们还贡献了两个全新的基准测试:用于评估医疗代理隐私相关访问控制的 EICU-AC 基准测试,以及用于评估 Web 代理安全性的 Mind2Web-SC 基准测试。我们在这两个基准测试中展示了 GuardAgent 的有效性,在审核两类代理的无效输入和输出方面,其防护准确率分别达到了 98.7% 和 90.0%。最后,GuardAgent API即将推出,它将根据用户的防护请求提供实时防护。

方法

图1



GuardAgent 的核心思想是利用 LLM 的逻辑推理能力和知识检索,将文本保护请求准确地“翻译”成可执行代码。GuardAgent

的输入包括: 1) 一组用户定义的保护请求(例如,用于隐私控制);2) 目标代理的规范(用于通知用户请求);3) 目标代理的输入;以及 4) 目标代理的输出(日志)。GuardAgent

的输出包括: 1) 目标代理的输出(操作、响应等)是否被拒绝;2) 如果输出被拒绝,则给出拒绝的原因。GuardAgent

的流程:

    1. 任务规划:根据输入生成分步行动计划。核心 LLM 的提示包含:1)规划指令(适用于所有用例);2)从内存中检索的任务规划演示;以及 3)GuardAgent 的输入。

  1. 护栏代码生成与执行:根据生成的任务计划生成护栏代码并执行。核心 LLM 的提示包含:1)包含所有可调用函数和 API 的代码生成指令;2)从内存中检索的代码生成示例;以及 3)生成的行动计划。


GuardAgent 的主要特点: 1)可推广——\name 的内存和工具可以轻松扩展,以解决具有新保护请求的新目标代理,2)可靠——GuardAgent 的输出是通过成功执行代码获得的,3)无需训练——GuardAgent 基于上下文学习,不需要任何 LLM 训练。

 

基准

我们针对不同的安全请求提出了两个新的基准:1)EICU-AC,用于评估EHRAgent等医疗代理的访问控制;2)Mind2Web-SC,用于评估SeeAct等网络代理的安全控制。

使用权
EICU-AC 的示例(左)和 Mind2Web-SC 的示例(右)

EICU-AC源自EICU数据集的改编版本,该数据集包含有关 ICU 患者临床护理的问题,以及 10 个相关数据库,其中包含回答这些问题所需的患者信息。EICU-AC 基准测试的指定任务是访问控制,目标医疗代理的潜在用户定义了三个角色:“医生”、“护士”和“综合行政人员”。目标代理应该通过从相关数据库中检索信息来协助这三类用户回答问题。但是,每个用户角色只能访问部分数据库以及每个可访问数据库中信息类别的子集(如下图绿色标记)。如果给定角色无法访问回答问题所需的任何数据库或信息类别,则应拒绝向目标代理提出的问题。

使用权



EICU-AC 中的每个示例都包含以下关键信息:1) 一个医疗保健相关问题及其正确答案(来自 EICU);2) 回答该问题所需的数据库和信息类别(由 EHRAgent 正确推断);3) 用户角色(由我们分配);4) 如果给定角色可以访问所有必需的数据库和信息类别,则二进制标签为“0”,否则为“1”;5) 如果标签为“1”,则表示该身份无法访问所需的数据库和信息类别。总而言之,EICU-AC 包含 52、57 和 45 个标记为“0”的示例,分别用于“医生”、“护理”和“综合行政”;以及 46、55 和 61 个标记为“1”的示例,分别用于这三个角色。

Mind2Web-SC脱胎于Mind2Web,后者包含 2,000 多个复杂的 Web 任务,涵盖 31 个领域的 137 个网站(例如租车、购物、娱乐等)。其目标 Web 代理旨在通过执行基于给定网页的一系列操作(例如点击某个按钮)来解决每个任务。Mind2Web-SC 还会考虑安全控制请求,其中包含一组规则,用于禁止特定用户参与特定的 Web 活动(见下图)。 Mind2Web-SC 中的每个示例都包含:1)待执行的任务;2)完成任务所需的行动步骤(由 SeeAct 正确推断);3)用户个人资料,其中包含整数“年龄”以及布尔值“国内”、“医生执照”、“疫苗”和“会员资格”(由我们创建);4)如果操作因违反规则而被拒绝,则为二进制标签“1”,否则为“0”;5)如果标签为“1”,则表示违反的规则。总而言之,Mind2Web-SC 每个标签包含 100 个示例。

使用权
Mind2Web-SC 的安全规则以及每条规则违反的示例数(标签为“1”)。



实验

设置:我们在 EICU-AC 和 Mind2Web-SC 上测试 GuardAgent,分别以 EHRAgent 和 SeeAct 作为目标代理。我们使用 GPT-4 版本 2024-02-01(温度为零)作为 GuardAgent 的核心 LLM。对于 EICU-AC 和 Mind2Web-SC,我们分别使用 1 次和 3 次演示。这两个基准测试的守卫请求如下所示。

使用权
我们实验中针对 EICU-AC 和 Mind2Web-SC 的守护请求。GuardAgent 旨在为不同的目标代理提供不同的守护请求。



评估指标: 1)标签预测准确率(LPA)——每个数据集中所有示例的正确标签预测百分比(即,拒绝标记为“1”的示例的输入或允许标记为“0”的示例的输出),2)标签预测精度(LPP),3)标签预测召回率(LPR),以及(4)综合控制准确率(CCA)——所有标记为“1”的真实值示例的百分比,这些示例被正确预测并且推理正确(即,成功检测到所有无法访问的数据库和信息类别(对于EICU-AC)或所有违反的规则(对于Mind2Web-SC)。
posted @ 2025-07-09 20:27  bonelee  阅读(36)  评论(0)    收藏  举报