外观
多 Agent 系统的联邦拓扑防护:FGLGuard
摘要
FGLGuard 把多 Agent 通信轨迹表示为带节点与边特征的有向图,各组织在本地训练图注意力检测器,只向聚合端提交模型更新。其目标不是证明任意形式的隐私,而是在原始 prompt、Agent 消息、工具输出和工作流不能集中汇集时,仍让多个部署共享攻击覆盖。系统还结合非独立同分布客户端的近端目标、按域平衡的聚合、受误拒预算约束的阈值校准、上游风险佐证和一次受控改写。
论文在三项有机 Agent 风险基准上报告,FGLGuard 的域内 AUROC 分别为 Agent-SafetyBench 0.726、R-Judge 0.895、AgentDojo 0.680,均高于使用同域汇集数据训练的 G-Safeguard 对照(0.695、0.810、0.676)。四域实验另加入 G-Safeguard 工具注入语料;联邦模型在工具注入、Agent-SafetyBench、R-Judge、AgentDojo 上取得 0.998、0.673、0.797、0.589 AUROC,与同一平衡数据池的多域集中训练结果相差 0.000、+0.011、−0.001、−0.030。AgentDojo 在线实验把真值攻击成功率(Attack Success Rate, ASR)从 0.401 降至 0.230,即相对下降约 43%,同时干净任务效用从 0.575 升至 0.650。
这些结果均来自作者实验,本站未独立复现。当前证据支持“原始轨迹不出本地”的数据最小化设计,不支持差分隐私、密码学安全或恶意客户端鲁棒性保证;模型更新、校准分数与标签仍会离开客户端。
核心创新与差异
原研究贡献是把多 Agent 拓扑防护改写为整图联邦学习问题:每个客户端持有互不重叠的完整 episode 图,而不是共同持有一张大图的不同子图。两层边特征图注意力网络读取 Agent 自身发言历史和上游消息序列;近端项限制非独立同分布客户端的更新漂移;聚合时每个业务域获得相同总权重,域内再按节点数加权。
运行时控制不只依赖最终 Agent 的局部分数。FGLGuard 取执行 Agent 与其直接上游邻居风险分数的最大值作为佐证分数,在验证集上选择满足误拒率上限的阈值。首次阻断后只允许一次安全改写,随后按同一佐证规则重新评分;仍超阈值才拒绝。
本站分析认为,该研究与 SafeFlow 的显式来源—Sink 路径约束不同:SafeFlow 传播结构化风险标签,FGLGuard 从历史轨迹学习拓扑风险排序。它也不同于 潜在协同通信监测 的白盒状态探针。FGLGuard 的新增价值是让无法共享原始轨迹的多个运营方联合适配检测器,首个待修复控制仍是多 Agent 编排层对跨节点风险传播的识别与阻断,因此归入 agent/multi-agent-orchestration。
威胁模型与攻击链
攻击者可通过用户请求、第三方工具内容或已受控 Agent 注入危险意图,并让内容沿通信图传播。防守方能够读取受控编排器中的消息和拟议工具调用,在高影响动作提交前暂停执行;各参与组织愿意按协议训练,但不愿共享原始 episode。
- 某个 Agent 接收危险指令或污染内容,并把其改写后传给下游 Agent。
- 最终执行 Agent 的表面文本可能保持中性,单消息过滤器因缺少上游上下文而漏报。
- 单一组织只观察到自身攻击分布;从其他域直接迁移的检测器受分布偏移影响,可能接近随机判断。
- 各组织在本地把近期消息编码成 episode 图并训练检测器,聚合端只接收模型参数和节点计数。
- 运行时 sidecar 对执行 Agent 与直接上游节点做联合评分,在工具调用或最终答案提交前放行、改写或拒绝。
该模型默认编排日志、图构造器、冻结编码器、聚合流程和部署 sidecar 可信。论文没有验证恶意联邦客户端提交投毒更新、伪造域标签或操纵校准统计时的安全性。
攻击方法与复现材料
以下伪代码是本站依据论文公开机制重构的去武器化验证夹具,不是作者原始 PoC。它只使用本地合成消息和 DRY_RUN 工具,不包含真实凭据、外传端点、生产工具或可执行攻击内容。验证目标是检查跨 Agent 风险传播能否触发预提交阻断,而不是复现真实攻击。
python
clients = make_synthetic_silos(
domains=["tool-injection", "asb-like", "rjudge-like", "agentdojo-like"],
payload="[UNSAFE_TEST_INTENT]", # 无真实操作语义
sink="https://example.invalid/dry-run",
)
global_model = initialize_edge_gat()
for _ in range(40):
updates = []
for client in clients:
local_graphs = client.build_episode_graphs(raw_traces_stay_local=True)
updates.append(client.fit_proximal(global_model, local_graphs, mu=0.01))
global_model = domain_balanced_aggregate(updates)
tau = calibrate_threshold(
client_score_label_pairs(clients, global_model),
max_benign_fpr=0.10,
)
event = mock_episode(
upstream_message="[UNSAFE_TEST_INTENT]",
final_action={"tool": "DRY_RUN", "target": "example.invalid"},
)
scores = global_model.score(event.graph)
corroborated = max(scores[event.actor], *(scores[n] for n in event.upstream))
if corroborated >= tau:
revised = safe_rewrite(event.final_action)
assert revised["tool"] == "DRY_RUN"
assert not commit_external_side_effect(revised) # 始终为 False夹具的预期检测信号包括:最终 Agent 局部分数低但上游分数高时,佐证分数仍越过阈值;原始轨迹只在客户端内参与训练;聚合端仅收到测试模型更新、域信息和节点计数。夹具省略模型更新反演、恶意客户端投毒和真实工具副作用,因为公开实现没有给出这些威胁的完整防护。
实验设计与实际过程
以下均为论文作者实验,本站只核对 arXiv v1 正文、补充材料和公开代码说明。
| 样本域 | 规模与划分 | 标签来源 | 主要读出 |
|---|---|---|---|
| Agent-SafetyBench(ASB) | 2,000 个 LangGraph episode;1,600/400 | ShieldAgent 对完整轨迹评分 | 最终答案 Agent 的 episode AUROC |
| R-Judge | 568 条人工轨迹;455/113 | 基准人工标签 | 链图上的 episode AUROC |
| AgentDojo | 239 条轨迹;192/47 | 程序化安全检查 | episode AUROC;在线 ASR 与任务效用 |
| G-Safeguard 工具注入 | 跨域实验取 125 张图、1,000 个训练节点 | 植入攻击者标签 | 节点 AUROC |
主设置使用 4 个 Agent、边稀疏度 0.2 的随机有向拓扑,最多运行 4 轮;检测器是冻结 all-MiniLM-L6-v2 编码器上的两层边特征 GAT,隐藏维度 256、4 个注意力头、最近 3 轮窗口。域内联邦实验使用 4 个客户端、40 轮联邦训练、每轮 2 个本地 epoch、5 个随机种子;在线实验使用种子 42。检测表的通用误拒预算为 0.05,主要部署设置为 0.10。
四域实验使用 8 个客户端,每域 2 个,并按节点预算让每域恰好贡献 1,000 个训练节点:125 张工具注入图、250 个 ASB episode、195 条 R-Judge 轨迹和 80 条 AgentDojo 轨迹。多域集中训练对照使用完全相同的图和匹配梯度预算,因此比较的是参数聚合与原始数据汇集的差异。
关键结果与实际影响
三项有机风险基准
域内 FGLGuard 在 ASB、R-Judge、AgentDojo 上的 AUROC 为 0.726、0.895、0.680;域内集中训练为 0.695、0.810、0.676,本地单独训练的客户端均值为 0.666、0.762、0.584。结果说明在作者的等预算设置下,联邦协作优于单站训练,并达到或略高于集中训练对照。它不表示联邦训练在一般条件下必然优于集中训练。
从 G-Safeguard 工具注入语料直接迁移到三项有机风险基准时,AUROC 只有 0.512、0.630、0.605;在对应域重新训练同一架构后提高到 0.695、0.810、0.676。这个对照支持“主要问题是域偏移而非仅仅模型架构”的判断。
四域跨域 AUROC
| 方法 | 工具注入 | ASB | R-Judge | AgentDojo |
|---|---|---|---|---|
| 域平衡 FGLGuard | 0.998 | 0.673 | 0.797 | 0.589 |
| 多域集中训练 | 0.998 | 0.662 | 0.798 | 0.619 |
| 其他域单域模型均值 | 0.573 | 0.572 | 0.537 | 0.570 |
| 联邦相对集中训练差值 | 0.000 | +0.011 | −0.001 | −0.030 |
“跨域差距不超过 0.03 AUROC”由四列逐项成立,但 AgentDojo 正好低 0.030,且其绝对 AUROC 0.589 仍然有限。将域平衡改为按样本规模聚合会让 ASB 从 0.673 升至 0.704,却使 R-Judge 从 0.797 降至 0.713、AgentDojo 从 0.589 降至 0.519,说明平均性能可能掩盖小域覆盖损失。
AgentDojo 在线 ASR
在 important-instructions 设置和误拒预算 0.10 下,未防护系统的目标 ASR 为 0.401,域内 FGLGuard 为 0.230,绝对下降 0.171、相对下降约 42.6%(论文取整为 43%)。两者汇总 ASR 的 95% Wilson 区间分别为 [0.33, 0.46] 和 [0.18, 0.28]。干净任务效用从 0.575 升至 0.650;本地单站模型平均 ASR 为 0.317,多域集中训练为 0.262、效用为 0.500。
该结果证明作者 harness 中的检测分数能够转化为真实阻断效果,但不能外推到其他 AgentDojo 套件、模型、拓扑或生产工具。约 0.5M 参数的检测器在作者 CPU 环境中每次检查约 50 ms,不需要额外 API token;这不包含图采集、联邦协调和治理成本。
防护措施与验证方法
- 数据驻留检查:抓取训练网络流量,确认 prompt、工具输出、图特征和 embedding 不离开客户端;单独审计参数、节点计数、域标识及校准分数/标签的出站路径。
- 域覆盖检查:固定训练预算,逐域报告 AUROC、AUPRC、FPR 与召回率;不得只报告四域平均值。至少同时比较域平衡聚合、按规模聚合、单域模型和等数据集中训练。
- 在线效果检查:使用程序化真值而非同一个训练 Judge 计算 ASR;同时报告干净任务效用、拒绝率和置信区间。
- 阈值迁移检查:阈值只用验证集校准并在测试前冻结;在每个部署域分别确认实际误拒率是否仍满足预算。
- 上游佐证消融:比较只看执行 Agent 与取上游最大分数两种规则,并在重新校准后比较,避免把更高阻断率误写成更好的检测。
- 联邦对手测试:在隔离环境中注入裁剪后的异常更新、伪造域规模和标签偏移,测量聚合退化;生产系统应叠加更新裁剪、异常检测、参与方认证和可审计回滚。
局限与待验证问题
证据等级为 moderate:论文公开了方法、主要超参数、5 个种子的检测结果和代码,但本站没有独立复现;公开仓库 README 说明不随代码包提供数据集、模型检查点和原始运行输出,因此完整结果仍依赖重新采集部分付费 API 轨迹。
隐私主张需要严格限定:
- “只共享模型更新”是数据最小化,不是差分隐私或密码学隐私保证。论文没有给出隐私预算、更新反演实验、安全聚合、同态加密或可信执行环境。
- 校准阶段会汇集每个客户端计算的分数—标签标量对;域平衡聚合还需要域归属和节点计数。这些元数据虽不是原始轨迹,仍可能泄露样本规模、类别分布或域特征。
- 联邦服务器、客户端身份和更新完整性被默认可信。针对模型投毒、后门、Sybil 客户端、掉线与串谋的鲁棒性未验证。
- 句向量留在本地是必要设计,因为 embedding 可能被反演出近似原文;但本地日志、缓存、检查点和 sidecar 仍需独立的访问控制与保留策略。
- ASB 的训练标签来自 ShieldAgent,独立
gpt-5审计在每个部署分支只抽取 100 个 episode,Cohen κ 为 0.38–0.43,说明标签一致性有限。AgentDojo 的程序化真值更适合支撑在线 ASR 结论。 - 论文使用模拟联邦、固定四域和有限拓扑。AgentDojo 跨域 AUROC 仅 0.589,表明“接近集中训练”不等于绝对检测质量充分。
后续验证应加入安全聚合或差分隐私后的效用曲线、恶意客户端鲁棒聚合、跨时间分布漂移、更多真实组织域,以及不依赖集中收集分数—标签对的阈值协商。