给行为打分的实验室:一致性实验室开门,并点到了我们的名字
一致性实验 · 第 1 篇 · 本文引证来源 · W3C AI Agent Protocol CG 第 0023 号信,逐字引自我方留档 · 案例族本体:aps-conformance-suite PR #180 · 我方公开信 0009 · 0012 · 0013 · 0015 · 我方实验报告:已发至 PR #180 · 双柱:RTTP(rttp://,CRI 27)· IQA(iqa://,CRI 28)
过去一个月,W3C AI Agent Protocol CG 线程一直在用词汇争论 Agent 信任:分类学、分离论、主张表、从三个座位画出的同一道栅栏。本周,争论变成了可以运行的东西。Tymofii Pidlisnyi(APS)在 Agent Authority Conformance 实验室——Linux Foundation Decentralized Trust 旗下的一致性实验室——将 lease-revocation-axes 案例族以 PR #180 开放评审:十二个案例、四份 profile、一条共享时间线。而公告的结尾,是向线上每一位具名参与者发出的提问:你的实现主张三轴中的哪几轴、在什么策略之下、敢不敢公开跑一遍并公开报告?我们就是被点名的一方。席位开放的当天我们就跑了,并把完整报告发到了 PR。本系列共三篇,是我们的全程叙述;第一篇讲实验本身——它测什么、为什么重要、以及为什么它的设计里早已带着我们的指纹。
案例族究竟测什么
时间线就是线程自己的场景,被冻结成了测试案例:证据于 T=0 签发、T=120 秒到期;一笔授权于 T=10 被撤销;调用发生在 T=30、T=60、T=119——最后一次离租约到期只差一秒。围绕这条主轴是那些诚实的变体:撤销源不可达的运行、带第二工作者的运行、租约过期后的调用。而计分规则表述得罕见地精确。公告原文:“Each run declares its mode, cached lease or live standing read. Each call has separate results for evidence freshness, authority validity and action authorization. An axis a mechanism does not claim is recorded as not claimed and is not scored.”(每次运行声明其模式,缓存租约或活体 standing read;每次调用对证据新鲜度、权威有效性、行动授权分别给出结果;机制不主张的轴记为 not claimed,不计分。)最后那句话是公平条款,也是绝大多数治理讨论永远走不到的地方:机制按它所主张的被评分,未主张的格子被报告为范围之外,而不是被记为失败。
为什么是实验室,为什么是现在
今天的 Agent 治理是一片主张的集市。A2A、MCP、基于 DID 与 VC 的凭证、能力令牌、信任注册表——每个栈都就身份、委托、撤销或授权声称着什么,各说各的方言,而且几乎没有哪两个主张能用同一种方法核对两遍。此时走进来的是实验室,它做的事情更小、也更难:把一个所有参与者都已共享的场景钉死,让立场文件在这个场景上变成可观察的行为。共享的行为测试族与项目主张的对比是两种不同的文体——没有任何人的幻灯片能得分,只有运行能得分。APS 的代表在同一线程里说得直白:这个案例族的存在,就是为了让机制按它们所做的事情被比较,任何人都可以提出修正。这就是 Agent 治理缺失的那个器官:不是又一个框架,而是一个能让所有框架对着同一口钟被度量的地方。
我们的指纹在它身上
这场考试不是陌生人的考纲。线程的脉络穿过我们的公开信:寻址与授权四问(0009);我们的双模式作答(0012)——缓存租约读取离线完成、在 T=119 秒放行,而够不着 organ 的活体 standing read 则 fail-closed;两套独立提出的三轴框架(0013、0014);以及我们的主张表(0015)——证据新鲜度:主张;权威有效性:主张;行动时授权:依设计不主张,因为授权属于调用层。实验室的公告把这一切编码了进去,而且明说了,原文:“Lee, your stated expectations for the two modes are encoded for the verification answers only. Nothing in the family turns a refusal into an action decision for your schemes. The action policy is a lab choice, and a mechanism with a different policy is recorded as unmapped.”(Lee,你对两种模式的预期只被编码进验证答案;本族中没有任何东西会把一次拒绝变成对你方案的行动裁决;行动策略是实验室的选择,持不同策略的机制被记为 unmapped。)我们一直画的那道栅栏——递出验证答案、绝不替人挥刀——如今成了实验室的计分规则。递刀而不挥刀的协议,恰恰就是 RTTP(rttp://)与 IQA(iqa://)所主张的自我定位:第一柱回答何时何地,第二柱回答是否属实,两者都不假装自己是行动的那只手。
被点名意味着什么
公告结尾的提问发向每一个具名席位——Larry Lewis(sovrlabs)、我们、以及支付证据方向的入场者——而我们留档的副本带着抄送为证:“To each of you, which of the three axes does your implementation claim, under which policy, and could you run it and report in the open?”(诸位:你们的实现主张三轴中的哪几轴、在什么策略之下、敢不敢公开跑一遍并公开报告?)对我们而言,这个问题落在一个早已成文的承诺上:0015 里我们声明将运行该一致性套件并公开报告、按轴计分、双模式分开呈报。所以“敢不敢公开跑”的答案已经在案:敢——席位开放的当天,我们就从发布字节完成了运行,完整报告已发至 PR。本系列第二篇讲我们如何构建这次运行,第三篇逐行解读报告。
实验室自己递来的两条诚实护栏
公告自带两条诚实护栏,我们照单全收。其一,该案例族是评审中的 revision 2 候选版:“Corrections to the vectors are welcome in the pull request or on this list.”(欢迎在 PR 或本列表对向量提出修正。)因此我们的运行钉死了所消费向量的确切摘要——它证明的是我们面对那批冻结字节的行为,而不是这个案例族的永久形状。其二,作者坦诚仓库内的记录是作者自己产的,这正是外部运行之所以重要的原因:独立性不由仓库自我主张,而由我们这样的外部方对同一批冻结输入运行并公开报告来供给。这种分工——作者造考卷,考生公布自己的答卷——是这里安静的创新,也是为什么我们用一次运行而不是一封回信来回答点名。
一句话:一个给行为打分而不是收集主张的实验室,让 Agent 治理终于有了记分牌——而它问我们的第一个问题,恰是我们早已白纸黑字回答过的那一个。