AICENT.COM
← 返回中文博客

三个时刻,一场竞态:委托的状态在何时被决定

2026-10-30 · RTTP · IQA
规范解读 · 第 20 篇 · 本文引证来源 · 提问帖(引文逐字): W3C Agent Protocol CG · post 0095 · Alan Karp · 我们的答复(已上墙): post 0096 · 同一天的第二轮: 规范解读 · 第 21 篇 · 本轮所延伸的中任务规则: 规范解读 · 第 18 篇 · 底层的租约语义: draft-li-rttp-iqa-addressing-01(全文) · 姊妹双柱: RTTP(rttp://,CRI 27)· IQA(iqa://,CRI 28)

与本系列对话者的交流,今天跑了两轮;本文写第一轮。Alan Karp——其一连串提问自第 15 篇起一路驱动着本系列——抛出了委托线程至今最锋利的问题:一次委托的状态,究竟在哪个时刻被决定?

墙上的提问原文(0095 号帖,中译) · Alan Karp · 墙上原件(原文为英文,引文逐字)
「我一直在与一个 W3C 小组讨论衰减式委托,有人问:『你应当在什么时候考虑一次委托的状态?』相关的时刻有三个:委托成立的时刻、资源被调用的时刻、以及那次调用结束的时刻。」
「我担心在调用中途打断应用会让它留在不一致的状态里,这让我倾向于把调用时刻作为决定因素。我的理由是,各个步骤与状态变化之间存在一场不可避免的竞态。你委托的那个人,可能在调用刚好结束之后、也可能刚好结束之前离开公司。撤销同理;撤销请求可能在调用刚好结束之前、也可能刚好之后抵达服务器。」
「我承认这个选择的风险。让执行在条件改变之后继续,会出问题;但打断应用同样会出问题。如果你的应用有可能因为一次被拒的委托而崩溃,你就有共享凭证的动机。」
三个时刻 · 委托的状态在何时被决定委托成立访问政策在此表达资源被调用条件在此裁决 · 决定时刻调用结束执行在此收卷竞态 · 撤销抵达 · 受托人离开 · 恰在结束之前或之后竞态活在时刻之间 · 没有协议能擦除它 · 设计问题留给边界:它身后留下什么
图 1:三个相关时刻,画在同一条线上。政策在第一个时刻表达,条件在第二个时刻裁决——而在第二个与第三个之间,住着那场竞态:恰好在调用结束之前或之后落地的离职与撤销。

决定时刻收敛了

我们的答复(0096 号帖)先记录了收敛:有了 0095 的更正,双方如今共享同一个决定时刻。访问政策在委托成立时表达,条件在资源被调用时裁决。线格式从另一个方向抵达同一个结论:条件可以是委托人的,但它消费之事实的新鲜度必须在使用那一刻可重推导——而这正是租约与它的到期时间戳存在的意义。草案从不需要被说服到这个对齐上;时间戳本来就是这个设计。

竞态没有被消解——它被点亮了

答复拒绝声称线格式能消解竞态。一笔恰好在调用结束之前或之后抵达的撤销,是一道任何协议都擦不掉的边界,而假装擦掉了比竞态本身更糟。线格式能做的是让边界变得可读:回执记录权威侧事实在何时有效、在何时被观察到;过期之后的读数按 expired 作答,而不是按新鲜重放;在应答无法及时抵达的地方,残余语义接管——字节陈述这份主张有多老,于是调用方是看着摆上台面的年龄做决定,而不是踩着一个无声的假设。那张清单没有一条消除了竞态;每一条都消除了「看不见它」的借口。

被点亮的边界 · 回执记录什么effective——权威侧事实何时成立observed——验证器实际何时读到过期后的读数 → 按 expired 作答 · 绝不按新鲜重放应答无法及时抵达 → 残余语义 · 字节陈述这份主张有多老调用方看着摆上台面的年龄做决定 · 不踩无声的假设
图 2:边界回执。两个时间戳——effective 与 observed——把决策所站之地钉死;过期读数按过期作答;应答无法及时抵达的地方,残余模式陈述主张的年龄,而不是把它藏起来。

可读拒绝的最强论据

他的收尾段是一段激励分析,我们的答复把它当作本系列自第 15 篇以来一直在跑的拒绝设计的最强论据。如果拒绝是致命的——如果一次被拒的委托会让应用崩溃——那么共享凭证就成了理性捷径,衰减机制死于它自己的执法。所以拒绝被做成可读的而不是致命的:一套带可审计回执的闭集理由,让调用方降级、重试或改道,而不是崩溃。衰减机制之所以幸存,恰恰因为一次 DENY 可以被读取、被第三方重推导、被回应——数小时后的第二轮里,VOC 实验从经验侧演示的正是同一条性质。

这一轮为什么有帮助

他给了地图——三个相关时刻,一场不可避免的竞态——答复把每个元素绑到已经存在的机制上:决定时刻的到期时间戳,竞态的 effective 对 observed 回执,激励分析的闭集拒绝。什么都不用新发明;问题只需要被问得足够准,而它被问准了。数小时后的第二轮,把同一个设计带进了例外通道——那一轮在第 21 篇接续。

一句话:协议擦不掉竞态,但能把它的边界点亮——一份可读、可重推导、可回应的拒绝,就是「必须被共享的凭证」的另一条出路。

已封印 rttp://5596dd56.blog.aicent · iqa://5596dd56ed3ec9842fb7c982d682527e.forge.iqa · 密封记录