跳到主要内容

每次 MCP 工具调用都过一道签名授权——Mandato 论文拆开看看

abanana
abanana

· 阅读约 5 分钟

前几天在 arXiv 刷到一篇 8 月 14 日提交的论文,Mandato(arXiv:2608.14074),讲在协议层给 AI 代理的行为做数字签名授权强制,外加一条哈希链审计日志。这个方向我之前一直觉得重要但没人认真做,看到有人真把架构写出来了,就花了一个晚上拆开看看。这篇笔记记三件事:它做了什么、哪些设计我觉得靠谱、哪些地方我还没想清楚。

先说它解决的问题,因为问题本身比方案更值得记。现在的代理通过 MCP 这类协议调用外部工具,这一层已经能用了,但一直缺一个东西:基础设施层面没有任何机制约束「这个代理被谁授权、能调哪些工具、参数边界在哪」。论文里有句话我印象很深,大意是现有日志缺乏证据价值——日志能告诉你发生了什么,但证明不了这个发生是被授权的,也证明不了日志本身没被改过。「记录」和「证据」这个区分以前我没认真想过,这次记下来了。

Mandato 的核心思路拆开看是三块:

  1. 授权被建模成机器可读、密码学签名的工件,写清楚代理可以调用哪些工具、参数和上下文条件受什么限制、有效期到什么时候、代表谁行动;
  2. 一个治理代理在每次工具调用时对照授权链做评估,不符合的直接在线拦截,不是事后告警;
  3. 所有允许和拒绝的决定连同证据,写进一条仅可追加的哈希链审计日志,并定期用合格时间戳锚定。

第 2 点是我觉得最有态度的地方。市面上很多「代理治理」方案走事后审计路线——让代理先跑,日志攒下来再分析。Mandato 是决策点和执行点分离,决策不过关,调用根本发不出去。实现上它是一个 MCP 的透明代理,架在代理和工具中间,理论上不需要改动现有工具的任何实现。这个架构选择比功能列表本身更值得学:治理层做成代理而不是改协议,落地阻力小一个量级。

第 3 点我一开始没搞懂为什么要做得这么重——哈希链加时间戳锚定,这套组合在工程上不算轻。后来才想明白,它瞄准的不是「给工程师看的日志」,是「能当证据用的日志」。论文里明确提了合格时间戳和合格信任服务提供商,接的是 eIDAS 2 的合格认证路径,也就是说目标用户里包括律师和审计人员。作者甚至直接参考民法里的授权委托制度来设计授权工件,让这些工件不只是工程师能读,法务那边也能读。这个跨界设计我持保留态度——法律隐喻在工程实现里经常水土不服——但「授权要能被非工程师读懂」这个目标本身,我认为是对的。

合规映射部分它覆盖了欧盟 AI 法案第 12 条和第 14 条、GDPR 的问责要求、NIS2,还有前面说的 eIDAS 2。这部分我读得快,因为我的关注点不在合规;但如果你在做面向欧盟的代理系统,这几页可能是全文对你最有用的。

泼冷水的地方也得记一笔。论文目前给的是参考系统的实现现状,定量评估还是「计划」——覆盖执行开销、审计完整性、防篡改验证成本几个维度,数字还没有。每次工具调用都过一道授权评估加哈希链写入,这个开销在高频调用场景下能不能接受,现在谁都不知道。我倾向认为拦截式决策的开销可以做到很小,但审计日志的锚定频率和成本之间的权衡,大概率要实测才能回答。「审计完整性」打算怎么测,这里我也没完全搞懂,等后续版本吧。

另外有个念头开了头还没想清楚,留一个坑:授权工件里的「上下文条件」到底能表达多细的约束。工具白名单和参数边界相对好定义,但「什么上下文下允许」这件事,条件一旦复杂起来,授权工件本身会不会变成另一份需要审计的逻辑?这个递归问题论文里我没读到正面回答。

验证方面,因为没有公开可跑的完整实现,我能做的只是把它的决策语义和参考架构对着读了一遍,确认授权模型、决策点、审计链三者的关系自洽。真正的复现要等代码或评估数据出来,到时候我应该会再写一篇。

划重点:第一,Mandato 把「授权」从 prompt 层的口头约定下沉到协议层的密码学强制,方向上我认为是对的,事后审计替代不了在线拦截;第二,哈希链加时间戳锚定的目标不是给工程师看,是给法庭和审计看的,这个定位决定了它的设计重量;第三,定量数据还没有,性能开销是当前最大的未知数,别急着在生产里套用。这篇就记到这里,如果你也在关注 MCP 生态里的治理层怎么长出来,值得自己读一遍原文,尤其是授权工件的字段设计那一节。

abanana
abanana

把自己踩过的坑整理成一篇能复现的笔记,写给三个月前的自己看。

查看主页 →