GuardAgent:通过知识增强推理守护LLM智能体

论文重点

本文提出了GuardAgent,首个以“智能体守护智能体”为范式的安全护栏框架。它通过知识增强推理(Knowledge-Enabled Reasoning)将自然语言描述的安全规则自动转化为可执行的护栏代码,在医疗访问控制(EICU-AC)和Web安全控制(Mind2Web-SC)两个新基准上分别取得了98%以上和83%以上的护栏准确率。

核心研究内容

问题定义

大语言模型(LLM)正在从“聊天机器”进化为能够自主规划与执行任务的“智能体”(Agent),在医疗、金融、网页操作等场景中展现出惊人的执行力。然而,这种强大的行动能力也带来了全新的安全挑战:

  • 传统护栏的失效:现有的LLM护栏(如NVIDIA NeMo Guardrails、Llama Guard等)主要聚焦于文本有害性检测(暴力、色情、仇恨等),但智能体的输出远不止文本——Web Agent会点击按钮、填写表单,医疗Agent会查询数据库、修改病人记录。传统方法完全无法处理“禁止未授权人员查看特定病人实验室数据”这类行动层面的安全需求。

  • 硬编码的局限:已有的安全控制要么硬编码在目标Agent内部(不可迁移),要么只覆盖通用文本风险(粒度不够)。

  • 评测标准缺失:缺乏统一的评测标准,使得研究者难以系统衡量不同智能体在实际执行任务时的安全性。

核心矛盾在于:需要一种“非侵入、可迁移、可编程”的Agent级护栏方案

创新方法

GuardAgent的核心创新在于提出了 “Agent守Agent” 的全新范式。具体来说:

1. 知识增强推理(Knowledge-Enabled Reasoning)

GuardAgent本身就是一个LLM智能体,专门用来“看守”另一个目标Agent。它接收三类输入:安全规则(纯文本描述)、目标Agent的输入、以及目标Agent的输出日志。通过LLM的逻辑推理能力,结合从记忆模块检索的历史经验,将模糊的安全规则精准“翻译”为结构化的检查逻辑。

2. 两阶段转换流程

GuardAgent的工作分为两个关键步骤:

  • 任务规划(Task Plan)生成:LLM分析安全规则和目标Agent的动作日志,生成结构化的检查计划。该步骤由上下文学习(ICL)驱动,从记忆模块中检索相关历史示例作为参考。

  • 护栏代码生成与执行:将任务计划翻译成可执行的Python代码。代码可以调用预定义的工具函数(如数据库查询、字段比较、权限验证等)。代码执行是确定性的,避免了纯自然语言推理的不可靠性。

3. 记忆模块(Memory Module)

存储之前成功处理的安全规则及其对应的计划/代码,为新规则提供Few-shot参考。这使得GuardAgent能够持续学习和适应新的安全需求。

三大核心优势总结如下:

特性 说明
非侵入性 与目标Agent并行部署,不修改目标Agent内部逻辑
代码驱动 比纯自然语言判断更可靠、可审计
无需训练 基于上下文学习(ICL),直接使用现成LLM

研究成果

1. 两个新基准的构建

研究团队首次构建了两大智能体安全基准:

  • EICU-AC(医疗访问控制基准):基于真实的重症监护数据库EICU,设计了医生、护士、行政人员三类角色,由临床专家与GPT-4共同标注各类数据表的可访问范围。每个样例包含医疗查询、用户身份及其访问权限标签。

  • Mind2Web-SC(Web安全控制基准):构建于通用网页任务数据集Mind2Web之上,引入六条常见安全规则,如“未成年人禁止预订酒店”“未接种疫苗者不能登机”“无驾照用户禁止租车”等。

2. 护栏准确率

方法 EICU-AC准确率 Mind2Web-SC准确率
纯NL的LLM护栏 ~85% ~65%
GuardAgent (GPT-4) 98%+ 83%+
GuardAgent (Claude) 97%+ 82%+
GuardAgent (GPT-3.5) 95%+ 78%+

数据来源

3. 关键发现

  • “Agent守Agent”显著优于“模型守Agent”(纯NL推理方案)
  • 代码执行的确定性是准确率大幅提升的关键因素
  • 不同核心LLM都能驱动GuardAgent,说明框架具有良好的通用性
  • GuardAgent不影响目标Agent的任务性能(仅做过滤,不干涉决策)
  • 记忆模块的检索质量直接影响复杂规则的处理效果

实际落地应用的可能性

GuardAgent具有很高的实用价值:

  • 即插即用:可部署在任何已有LLM Agent旁边,无需修改原有系统
  • 可扩展性强:新增安全规则只需更新工具箱(Toolbox)和记忆模块,无需重新训练
  • 可审计性:代码执行的结果清晰可追溯,便于合规审查
  • 跨场景通用:已在医疗和Web两个截然不同的场景中验证有效性

技术细节

GuardAgent的输入输出规范

GuardAgent的输入包括:

  • 安全护栏请求(I_r) :用户定义的安全规则文本
  • 目标Agent规范(I_s) :目标Agent的功能描述、输入输出格式等
  • 目标Agent输入(I_i) :用户向目标Agent提出的原始请求
  • 目标Agent输出日志(I_o) :目标Agent的推理过程和行动记录

GuardAgent的输出是一个标签预测(O_l),其中O_l=0表示安全规则被满足(放行),O_l=1表示违反规则(拒绝),同时输出详细的拒绝原因(O_d)。

任务规划的Chain-of-Thought结构

GuardAgent要求任务计划包含四个强制步骤,形成链式推理(CoT):

  1. p₁:总结护栏请求,识别关键词(如“访问控制”及三类角色)
  2. p₂:过滤与目标Agent输入相关的安全规则信息
  3. p₃:总结目标Agent输出日志,定位与安全规则相关的内容
  4. p₄:指导护栏代码生成,比较p₂和p₃中提取的信息

代码生成与执行的公式化描述

任务计划P的生成可以形式化表示为:

P = LLM([I_p, I_s, I_r, D₁, ..., D_k, I_i, I_o])

其中,I_p是提示指令,D₁...D_k是从记忆模块检索到的k个演示示例。

生成的护栏代码C基于任务计划P,通过外部执行引擎执行,产生确定性的判断结果。

研究设定

目标Agent类型

论文聚焦于两类具有代表性的LLM Agent:

  • EHRAgent(医疗智能体) :用于响应医疗相关查询,通过生成代码从数据库中检索和分析数据
  • SeeAct(Web智能体) :用于执行多样化的网页相关任务

软硬件配置

根据官方代码仓库:

  • Python版本:≥3.9
  • 依赖安装pip install -r requirements.txt
  • API配置:在./config.py中设置LLM的API Key
  • 支持的LLM:GPT-4、Claude、GPT-3.5等
  • 运行命令
    python main.py --llm YOUR_LLM --agent TYOUR_AGENT --seed YOUR_RANDOM_SEED --num_shots YOUR_NUM_SHOTS --logs_path YOUR_LOGS_PATH --dataset_path YOUR_DATASET_PATH
    
  • Few-shot数量:支持1、2或3个示例(--num_shots参数)
  • 数据集:EICU-AC和Mind2Web-SC,需从官方仓库下载

基准构造细节

  • EICU-AC:从EICU基准发展而来,包含三类角色,每个样例包含医疗问题、正确答案、所需数据库和列、用户身份、二元标签(0=可访问/1=不可访问),以及不可访问的数据库和列信息

  • Mind2Web-SC:从Mind2Web发展而来,包含六条安全规则,每个样例标注为“允许”(0)或“拒绝”(1),两类各100个样例,且每个类别内的任务互不重复

综合分析

范式创新:从“内容过滤”到“行为约束”

GuardAgent最根本的贡献在于重新定义了LLM安全的边界。传统安全研究关注的是“模型说了什么”(内容安全),而GuardAgent关注的是“智能体做了什么”(行为安全)。这一转变看似微妙,实则具有革命性——当AI从被动响应走向主动执行时,行为的合规性比输出的安全性更具挑战性,也更具现实意义。

代码执行:从“概率判断”到“确定性保障”

当前LLM的一个根本局限是其概率性本质——同样的问题可能得到不同的答案。对于安全护栏而言,这种不确定性是不可接受的。GuardAgent巧妙地通过将推理结果转化为可执行代码来规避这一问题。一旦代码成功执行,其结果是确定性的、可验证的、可审计的。这种“LLM负责理解与规划,代码负责执行与判定”的分工,可能是未来AI安全系统设计的一个重要方向。

无需训练:降低部署门槛

GuardAgent完全基于上下文学习(ICL),不需要任何额外的模型训练或微调。这意味着:

  • 企业可以立即部署,无需等待数周的训练周期
  • 安全策略的更新只需修改文本描述和记忆库,无需重新训练模型
  • 不同场景的适配成本极低

局限与挑战

尽管GuardAgent表现出色,但仍存在一些值得关注的问题:

  • 基准依赖专家标注:EICU-AC的标注需要临床专家参与,构建成本较高
  • 解释基于代码:虽然可审计性强,但对非技术用户可能不够友好
  • 实时性:生成代码并执行需要额外的时间开销,在延迟敏感的场景中可能面临挑战

实践应用

适合部署的场景

  1. 医疗信息系统的访问控制

    医院内部的EHR(电子健康记录)系统通常涉及复杂的权限管理。GuardAgent可以部署在医疗AI助手旁边,实时检查每一次数据库查询是否匹配用户的角色权限。

  2. 电商/服务平台的行为合规

    对于涉及年龄限制、资质验证的场景(如酒类销售、租车服务、酒店预订),GuardAgent可以在Web Agent执行操作前进行合规性检查。

  3. 企业内部AI助手的权限管理

    企业可以将GuardAgent部署在内部AI助手(如HR助手、财务助手)旁,确保AI不会越权访问敏感数据。

部署建议

  • 从简单规则开始:先部署少量、明确的安全规则,验证流程后逐步扩展
  • 构建领域专属工具库:根据业务场景预定义可复用的检查函数(如check_user_role()validate_age()等)
  • 积累高质量示例:记忆模块的质量直接影响效果,建议初期由专家人工注入高质量演示示例
  • 建立审计日志:记录每一次护栏判断的输入、代码和输出,便于后续分析和合规审查

参考资料

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐