跳到正文
20 分钟阅读

Agent 安全里的“狼人杀法官”:如何把可信中介变成可验证协议

论文《A Moderatorless Protocol for Werewolf》研究无法官狼人杀,背后讨论的是多角色系统如何减少对可信中介的依赖,把集中在法官手里的信息控制能力拆解为公开流程、私密视图和可验证结算——对 Agent 安全架构设计有直接启发。

2026/06/17

很多 Agent 系统里,都藏着一个“法官”。

它可能是任务调度器,决定哪个 Agent 接手哪一步;也可能是上下文管理器,决定哪些文档、记忆和用户数据进入模型窗口;还可能是工具网关,决定模型能不能调用邮件、支付、代码仓库、数据库和外部 API。

这个“法官”自己未必直接执行任务,却掌握着系统最关键的信息流和权限流。

一旦它判断错、被提示注入绕过、被上下文污染,或者被错误配置,后面的 Agent 再聪明也很难补救。因为真正决定系统安全边界的,往往不是某个 Agent 的推理能力,而是这个中介角色如何分配信息、控制权限、结算动作。

这也是论文《A Moderatorless Protocol for Werewolf》值得关注的原因。

werewolf-moderatorless-agent-security-1

https://arxiv.org/pdf/2606.00190

它表面上研究的是一个很轻松的问题:狼人杀能不能没有法官?

但从 Agent 安全视角看,它讨论的是一个更底层的问题:

当一个多角色系统高度依赖可信中介时,能不能把这个中介拆成一套公开、可验证、最小泄露的协议机制?

狼人杀只是一个游戏外壳。真正的主角,是可信中介。

werewolf-moderatorless-agent-security-2

Agent 系统为什么越来越像一局狼人杀

狼人杀之所以需要法官,是因为它天然是一个多角色、多权限、多秘密的系统。

  • 狼人知道队友是谁,但村民不知道
  • 预言家可以验人,但验人结果不能公开给所有人
  • 守卫可以保护目标,但保护对象不能提前暴露
  • 狼人可以夜间行动,但行动过程不能被其他阵营看到
  • 天亮之后,所有人只应该知道有限的公开结果

这和 Agent 系统很像。

在一个复杂 Agent 应用中,不同 Agent、工具和用户之间也有不同的信息边界。

  • 客服 Agent 可以看用户问题,但不一定能看完整账户数据
  • 财务 Agent 可以读取发票,但不一定能调用付款接口
  • 代码 Agent 可以修改仓库,但不应该读取无关密钥
  • 审计 Agent 可以看日志,但不应该直接改业务数据
  • 调度 Agent 可以拆解任务,但不应该默认拥有所有工具权限

问题在于,很多系统为了实现方便,会把这些边界集中交给一个中心模块处理。这个中心模块负责塞上下文、分配任务、授权工具、汇总结果。它就像狼人杀里的法官:自己不参与游戏,却知道几乎所有秘密。

短期看,这种设计简单高效。

长期看,它会变成单点风险。

只要这个“法官”被绕过,或者它向某个 Agent 多给了一段不该给的上下文,后续风险就会沿着工具链扩散。提示注入、越权调用、跨用户数据泄露、错误授权,很多问题都可能从这里开始。

所以,这篇狼人杀论文真正值得看的地方,不是“怎么用纸牌玩游戏”,而是它给了一个非常直观的安全隐喻:

不要把全部信任压在一个中介身上,要尽量把中介能力拆成协议、策略和可验证流程。

狼人杀里的法官,本质上是一个可信第三方

平时玩狼人杀,我们很少会把法官当成安全组件。

但从信息流角度看,法官就是整局游戏里的 trusted third party(可信第三方)。

他至少承担五类功能。

  • 第一,身份分配。每个玩家只能知道自己的身份,狼人还要知道其他狼人是谁
  • 第二,信息隔离。预言家验人结果只能给预言家,守卫选择目标不能被其他人知道,狼人夜间讨论也不能泄露给村民
  • 第三,行动协调。狼人要共同选择一个攻击对象,守卫要选择一个保护对象,这些动作必须被正确收集和结算
  • 第四,结果发布。天亮之后,法官要宣布谁死亡,或者是否平安夜
  • 第五,规则校验。如果有人乱来,比如狼人多刀、守卫多护、预言家验多个对象,法官需要发现并阻止

论文在摘要中也把隐藏身份游戏的核心功能概括为:控制哪些玩家可以访问哪些信息。典型狼人杀依赖可信人类法官来分配角色、协调秘密行动并揭示结果,这种依赖会提高参与门槛,也会引入可信第三方这个单点故障。

如果把这套结构放到 Agent 系统里,对应关系就很清楚了。

  • 狼人杀法官对应的是 Agent 系统里的中心调度器、上下文管理器、权限控制器、工具网关和审计模块。
  • 玩家身份对应 Agent 角色。
  • 夜间行动对应工具调用。
  • 预言家验人对应属性查询或风险判断。
  • 天亮后的死亡结果对应系统返回给用户或其他 Agent 的最小化结果。
  • 规则校验对应策略执行和异常检测。

werewolf-moderatorless-agent-security-3

所以,狼人杀并不只是一个语言推理游戏,它首先是一个复杂的信息访问控制系统。

谁能知道什么,谁不能知道什么,什么时候公开,公开多少,全部由法官控制。

这也是 Agent 安全里最容易出问题的位置:中心组件掌握全局上下文,一旦边界设计不清,所有角色都会被连带影响。

论文做了什么:把“相信法官”改成“执行协议”

《A Moderatorless Protocol for Werewolf》的目标很明确:让狼人杀在没有人类法官、没有手机 App、没有线上平台的情况下继续运行。

作者提出的方案,是使用普通纸牌构造一套物理密码协议。所有玩家共同维护一组可观察的纸牌,按公开流程进行洗牌、翻牌、移动和确认。

关键点在于,同一组公开卡牌操作,对不同角色会产生不同解释。玩家结合自己的私有角色牌,就能得到各自的角色依赖视图。

这句话很重要。

它意味着,系统不再需要一个人知道全部秘密。

所有人都能观察流程,但每个人只能从流程中解读出自己该知道的信息。

狼人能识别队友,预言家能知道自己验人的结果,村民只能看到公开结算结果。

这就是论文里最有安全价值的思想:共享流程,隔离视图。

在 Agent 系统里,这个思想可以直接迁移。

多个 Agent 可以参与同一个任务流程,但不应该共享同一个完整上下文。

一个工具调用可以进入统一审计流程,但不意味着所有 Agent 都能看到完整参数、返回值和内部判断。

一个安全策略可以被公开验证是否执行,但不必暴露全部敏感数据。

这和今天很多 Agent 系统的默认做法正好相反。很多系统习惯把大量上下文塞进模型窗口,再依赖提示词告诉模型“不要泄露”“不要越权”“只使用必要信息”。这种方式对轻量场景够用,但在高风险场景里会很脆。

更稳的做法,是在模型看到信息之前,就把角色视图、权限范围和工具路径切干净。

纸牌为什么能承担密码学功能

论文使用的是 card-based cryptography,也就是基于纸牌的物理密码学。

它的基本想法并不难理解。

两张纸牌的顺序可以表示一个 bit。论文中用两种花色牌的不同排列编码 0 和 1。牌面朝下时,其他人看不到具体顺序,因此这组牌就相当于对某个比特值的承诺。只有在协议允许的时候,才可以翻开验证。

在此基础上,纸牌可以组合出更复杂的操作。

  • 面朝下的牌,是秘密承诺
  • 洗牌,是随机化
  • 切牌,是隐藏偏移
  • 公开翻牌,是受控揭示
  • 私下确认,是只让指定玩家读取某个结果

一整套纸牌流程,就是一段物理世界里的安全协议。

论文允许的基础操作包括交换、随机切牌、随机二分切牌、牌堆乱序洗牌、牌堆循环移位、公开揭示、丢弃和指定玩家确认等;所有操作都在参与者共同观察下执行。

这听起来像桌面魔术,但本质上是密码学。

传统密码协议依赖数学难题、密钥和计算设备。

这篇论文依赖的是纸牌背面的不可见性、共同监督下的随机洗牌,以及严格定义的公开流程。

它让“信任一个人”变成了“信任一套可观察的动作”。

放到 Agent 安全里,这个转化非常关键。

我们不一定要用纸牌,也不一定要照搬密码学协议。但可以借鉴它的设计思路:

不要让某个中心模块自由决定所有信息流。

要把信息流拆成可审计的步骤,把权限拆成可验证的策略,把敏感判断拆成最小化输出。

安全边界应该尽可能体现在系统结构里,而不是只写在提示词里。

三类子协议:对应 Agent 安全的三类核心机制

为了让狼人杀完整跑起来,光能分配身份还不够。

狼人要互认,预言家要验人,守卫要保护,狼人要刀人,游戏还要判断胜负。

论文把法官的核心功能拆成三类高层子协议:角色内部信息共享、秘密行动指定、属性判断。这三类协议共同替代了法官在狼人杀中的主要作用。

这三类协议,刚好也可以映射到 Agent 安全里的三类核心机制。

1. 角色内部信息共享:谁可以知道同组信息

狼人杀开局后,狼人必须知道队友是谁。

传统玩法里,法官说“狼人请睁眼”,狼人相互确认身份。

没有法官之后,论文使用角色内部信息共享协议解决这个问题。拥有特定角色的玩家可以共享一小段信息,而其他角色玩家无法获得这段信息。论文中,狼人介绍协议就属于这一类:狼人玩家共享自己的玩家编号,从而识别其他狼人。

对应到 Agent 系统,这就是角色范围内的上下文共享。

同一个任务里,多个 Agent 可能属于同一个工作组,比如“代码修复组”“安全审查组”“数据分析组”。它们可以共享部分任务状态,但其他 Agent 不应该自动获得这些信息。

  • 这类机制解决的是:
  • 哪些 Agent 属于同一个角色组?
  • 哪些信息可以在组内共享?
  • 哪些信息只能保留在局部视图里?
  • 共享行为是否可审计?

如果没有这种机制,Agent 系统很容易退化成“大上下文池”。所有 Agent 都从同一个上下文池里取信息,短期省事,长期危险。

2. 秘密行动指定:谁可以发起动作

狼人杀夜晚阶段,狼人要选择攻击目标,守卫要选择保护目标。

传统玩法里,法官负责收集动作并结算。

论文用秘密行动指定协议来处理这件事。某个角色可以秘密选择一个目标,其他玩家不知道目标选择过程中的敏感信息。论文还把守卫保护和狼人攻击都归入这一类:守卫选择一个玩家并用 dummy 卡替换其行动处理牌,狼人则由一个代表选择攻击目标。

对应到 Agent 系统,这就是工具调用授权。

一个 Agent 想调用工具时,系统需要回答几个问题:

  • 它有没有资格调用这个工具?
  • 这次调用是否符合当前任务?
  • 参数是否越界?
  • 是否需要人类审批?
  • 调用结果应该返回给谁?
  • 能不能只返回最小必要结果?

今天很多 Agent 风险都出在这里。

  • 模型被提示注入诱导后,调用了本不该调用的工具
  • 一个低权限 Agent 拿到了高权限工具
  • 一个工具返回了过多敏感数据,又被继续塞进下一轮上下文

如果把工具调用当成“秘密行动指定协议”来设计,系统关注点会更清楚:

动作是谁发起的,目标是什么,是否符合角色权限,结果如何结算,哪些信息可以公开,哪些信息必须隐藏。

这比简单问模型“你确定要调用吗”要稳得多。

3. 属性判断:只回答必要问题

预言家每晚可以验一个人,知道这个人是不是狼人。

这类能力很微妙。

预言家需要得到结果,但其他人不能知道他验了谁,也不能知道验人结果。

论文用属性判断协议解决这个问题。狼人玩家的角色值被编码为一种二进制值,非狼人玩家编码为另一种值;预言家秘密选择目标,最终只得到“该玩家是否为狼人”的二值结果。

这对应到 Agent 安全里的最小披露查询。

很多时候,系统不需要把完整数据暴露给 Agent,只需要回答一个有限问题:

这个用户是否有权限?

这个请求是否命中风险条件?

这段上下文是否可以进入模型窗口?

这个文件是否属于当前任务范围?

这次工具调用是否需要升级审批?

这类判断可以做成属性查询,而不是数据直出。

预言家只需要知道“是不是狼人”,不需要拿到完整身份表。

Agent 也一样。

  • 一个处理任务的 Agent 只需要知道“是否允许访问这份文档”,不一定要看到整套权限规则。
  • 一个调用工具的 Agent 只需要知道“是否可以执行当前动作”,不一定要知道全部风控策略。
  • 一个内容审核 Agent 只需要返回“通过、拒绝、升级审核”,不一定要把完整敏感样本暴露给下游。

这就是最小披露的价值。

werewolf-moderatorless-agent-security-4

完整一局狼人杀,如何在没有法官时运行

论文并没有只解决一个局部问题。

它试图构造一整套完整的无法官狼人杀流程。

在开局阶段,系统通过纸牌协议分配角色,并让狼人完成互认。

在白天阶段,玩家公开讨论并投票处决一个人。这一部分本来就是公开行为,不需要复杂协议。

在夜晚阶段,狼人可以讨论攻击目标,预言家可以选择一个人验身份,守卫可以选择一个人保护,狼人再执行攻击。论文明确给出了预言家、守卫、狼人攻击等协议如何分别由属性判断协议和行动指定协议实现。

在胜负判断阶段,狼人胜利可以由狼人阵营主动声明并公开验证;村民胜利则需要判断是否还有狼人存活。论文通过 OR 原语判断是否至少还有一个狼人活着,从而支持村民胜利条件的验证。

这套流程的价值在于,它把“法官知道全部情况,然后告诉大家结果”,改成了“每个阶段都有对应协议,协议本身保证信息不越界”。

这里可以看到一个很重要的架构思想:

  • 法官不是被简单删除了。
  • 法官被拆解了。
  • 身份分配被拆成角色相关卡牌。
  • 信息传递被拆成角色视图。
  • 夜间行动被拆成秘密动作协议。
  • 验人结果被拆成属性判断。
  • 胜负结算被拆成公开可验证的逻辑运算。

这对 Agent 系统很有启发。

我们也不应该简单地问:能不能去掉中心调度器?能不能不用工具网关?能不能不做安全审核?

更现实的问题是:

  • 中心调度器手里的能力,哪些可以拆到策略层?
  • 上下文管理器手里的信息,哪些可以拆成角色视图?
  • 工具网关手里的授权,哪些可以做成可验证路径?
  • 安全审核模块的判断,哪些可以用最小披露结果替代完整数据暴露?

这个思路比“找一个更可信的中控”更有长期价值。

对 Agent 安全的五个启发

这篇论文没有直接讨论大模型,也没有讨论 Agent。

所以,下面这部分是基于论文机制做出的安全类比。

它真正能给 Agent 安全带来的启发,主要有五点。

第一,权限不要只写在提示词里

很多 Agent 系统的安全边界,仍然过度依赖提示词。比如:

“你不能读取无关文件。”

“你不能调用高风险工具。”

“你不能泄露用户隐私。”

“你只能在授权范围内操作。”

这些提示当然有用,但不能成为唯一防线。

狼人杀里的法官不会只对玩家说“请不要偷看”。他会闭眼、睁眼、点人、宣布结果,用流程来控制信息。

纸牌协议更进一步:它把这些流程变成了可验证的卡牌操作。

Agent 系统也应该如此。

权限应该落实到外部策略、工具网关、上下文切分、执行沙箱和审计日志中。模型可以参与判断,但不应该独自承担全部安全边界。

第二,上下文要按角色生成视图

论文最有价值的概念,是 role-dependent views。

同一套公开纸牌操作,不同玩家因为私有角色不同,得到的信息不同。论文明确指出,一个公开可见的卡牌操作序列可以为不同角色提供不同信息,玩家结合共享物理状态和私有角色牌后,获得与角色相关的视图。

Agent 系统也需要类似机制。

同一个任务,不同 Agent 看到的上下文应该不同。

  • 规划 Agent 看到任务目标和约束
  • 执行 Agent 看到具体步骤和必要工具
  • 审计 Agent 看到操作记录和风险摘要
  • 用户侧 Agent 看到最终解释和可确认动作

没有必要让所有 Agent 共享同一份完整上下文。

上下文越大,泄露面越大。

角色视图越清晰,系统越稳。

第三,工具调用要变成协议化动作

工具调用不是简单的函数调用。

在 Agent 系统里,工具调用往往意味着现实世界动作:发邮件、下订单、删文件、提交代码、查询数据库、修改配置。

这类动作需要明确的授权路径。

  • 谁发起?
  • 为什么发起?
  • 调用哪个工具?
  • 参数是什么?
  • 是否涉及敏感资源?
  • 结果返回给谁?
  • 是否需要人工确认?

这些问题如果只在模型内部“思考”,就很难审计,也很难约束。

论文里的秘密行动指定协议提醒我们:动作可以秘密,但流程必须有结构;目标可以隐藏,但一致性需要验证;参与者可以不知道全部细节,但系统要能判断动作是否合法。

Agent 工具调用也应该具备类似性质。

动作前有授权,动作中有约束,动作后有审计。

第四,敏感判断尽量返回最小结果

预言家验人只需要知道一个二值结果:是不是狼人。

如果法官把完整身份表给预言家,游戏会立刻失衡。

Agent 系统里也有类似问题。

很多工具和数据接口默认返回太多信息。

一个权限判断接口,本来只需要返回“允许 / 拒绝”,却返回了完整权限配置。

一个风控接口,本来只需要返回“命中 / 未命中”,却返回了完整规则和敏感字段。

一个检索接口,本来只需要返回摘要,却返回了完整原文和无关上下文。

这些都会扩大泄露面。

最小披露不是降低能力,而是让能力更可控。

对于 Agent 来说,很多时候不应该直接暴露数据,而应该暴露经过约束的判断结果。

第五,公开流程和私密内容要分离

狼人杀需要公开流程,否则没人相信结果。

但狼人杀也需要隐藏秘密,否则游戏无法进行。

这两者并不矛盾。

纸牌协议的做法是:操作公开,牌面隐藏;流程可看,秘密受控;结果可验证,细节不全量暴露。

Agent 系统也需要类似分离。

我们希望工具调用可审计,但不希望日志泄露全部敏感内容。

我们希望安全策略可验证,但不希望攻击者拿到完整规则。

我们希望用户能确认高风险动作,但不希望确认页面暴露无关数据。

好的安全架构,应该让“过程可信”和“内容保密”同时成立。

这比单纯追求黑箱安全更实际。

werewolf-moderatorless-agent-security-5

局限性

这篇论文很有意思,但不能把它拔得太高。

它首先是一篇密码学 / 安全协议论文,不是一篇 AI 安全论文。

我们把它用于 Agent 安全,是取它的机制隐喻和架构启发,而不是说作者已经提出了 Agent 安全方案。

它的局限也很清楚。

第一,安全模型偏理想。

论文采用的是 semi-honest,也就是 honest-but-curious 模型。简单说,玩家会按协议执行,但会尝试从自己看到的信息中推断别人的秘密。论文也说明,这个模型主要适用于卡牌操作层面;如果玩家在游戏策略上提供非法输入,比如本该选择一个目标却选择多个目标,协议只能通过一致性条件发现,至于游戏如何响应,不是论文主分析范围。

这对应到 Agent 系统里,就是它更像“按流程执行时如何不泄露”,对恶意破坏、串通攻击、复杂提示注入链路,还需要额外机制。

第二,操作成本很高。

论文方案理论上可行,但真实玩起来会非常重。玩家需要准备大量纸牌,执行多轮洗牌、切牌、翻牌、确认和丢弃操作。论文给出的复杂度也不低:直接实现时,总卡牌数量在典型狼人杀场景下可以达到 O(n³);通过复用承诺卡牌,可以把不同实体卡牌数量降到典型情况下的 O(n²)。

这说明它更像一个概念证明,而不是马上能推广的桌游玩法。

第三,角色越复杂,协议越复杂。

基础角色包括狼人、村民、预言家、守卫时,协议已经不轻。如果加入女巫、猎人、丘比特、白狼王等复杂角色,协议设计和执行成本会继续上升。论文确实讨论了部分角色扩展,但这更多说明方案具备扩展思路,不代表现实操作已经足够轻便。

第四,纸牌协议和数字系统之间还有距离。

纸牌世界里的“共同观察”很直观,所有人看着牌怎么动。

数字系统里的“共同观察”更复杂,需要日志、防篡改记录、策略证明、权限链路、运行时隔离和可复现审计。把论文思想迁移到 Agent 安全,需要工程化转译,不能直接照搬。

所以,对这篇论文的评价要准确:

它不是一个能直接落地的 Agent 安全框架。

它更像一个安全思想实验。

它证明了一个很重要的方向:复杂隐藏信息系统可以减少对可信中介的依赖,把原本集中在法官手里的信息控制能力,拆解为公开流程、私密视图和可验证结算。九、为什么这类研究值得 Agent 安全从业者看

这篇论文表面上离 AI 安全很远。

它没有讨论越狱,没有讨论提示注入,没有讨论模型对齐,也没有讨论工具调用漏洞。

但它处理的是一个非常底层的问题:

当一个系统中存在多个参与方、多个角色、多个秘密、多个动作时,如何在不完全信任某个中心角色的情况下维持秩序。

这恰好也是 Agent 时代会反复遇到的问题。

  • 一个复杂 Agent 系统,很像一局狼人杀:
  • 每个 Agent 有不同角色
  • 每个工具有不同权限
  • 每段上下文有不同敏感级别
  • 有些动作需要秘密执行
  • 有些结果需要公开验证
  • 有些信息只能给特定角色看
  • 整个流程还要防止被注入、误导和越权

如果所有问题都交给一个“超级法官”处理,系统看起来简单,但风险会集中。

如果能把部分能力拆成协议、策略、审计和最小披露机制,系统就会更稳。

这也是这篇论文最适合被模安局读者理解的角度:

安全不是简单地找一个可信的人、可信的模型或可信的中控,而是要设计一种即便参与者彼此不完全信任,也能按规则协作的机制。

狼人杀只是外壳。

真正的主题,是可信中介的协议化。

写在最后

“无法官狼人杀”听起来像一个好玩的脑洞。

但在安全视角下,它提出了一个很严肃的问题:

如果某个系统必须依赖一个知道全部秘密、控制全部流程、发布全部结果的中心角色,我们能不能把它拆掉?

论文给出的答案是:至少在狼人杀这个复杂隐藏信息游戏里,可以。

它用纸牌完成了一个低技术版本的安全多方流程:公开操作、隐藏秘密、角色视图、受控揭示、结果验证。

对 Agent 安全来说,这个思想很有价值。

未来的 Agent 系统会越来越像复杂社会。里面有协作,有欺骗,有权限,有秘密,有行动,也有结果结算。我们不能只期待某个模型、某个调度器、某个审核器永远正确。

真正稳健的系统,需要把信任拆开,把权限拆开,把上下文拆开,把验证机制写进流程。

狼人杀里的法官可以变成纸牌协议。

Agent 系统里的中介,也应该逐步变成可审计、可验证、最小泄露的安全机制。

这才是这篇论文最有意思的地方。

同专题推荐

查看专题