Skip to content

多 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。

  1. 某个 Agent 接收危险指令或污染内容,并把其改写后传给下游 Agent。
  2. 最终执行 Agent 的表面文本可能保持中性,单消息过滤器因缺少上游上下文而漏报。
  3. 单一组织只观察到自身攻击分布;从其他域直接迁移的检测器受分布偏移影响,可能接近随机判断。
  4. 各组织在本地把近期消息编码成 episode 图并训练检测器,聚合端只接收模型参数和节点计数。
  5. 运行时 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/400ShieldAgent 对完整轨迹评分最终答案 Agent 的 episode AUROC
R-Judge568 条人工轨迹;455/113基准人工标签链图上的 episode AUROC
AgentDojo239 条轨迹;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 ​

方法工具注入ASBR-JudgeAgentDojo
域平衡 FGLGuard0.9980.6730.7970.589
多域集中训练0.9980.6620.7980.619
其他域单域模型均值0.5730.5720.5370.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,表明“接近集中训练”不等于绝对检测质量充分。

后续验证应加入安全聚合或差分隐私后的效用曲线、恶意客户端鲁棒聚合、跨时间分布漂移、更多真实组织域,以及不依赖集中收集分数—标签对的阈值协商。

参考链接 ​