没有把握的协调
研究协调的人喜欢讲一个关于两支军队的故事。它们驻扎在山谷两侧的山头上。一起进攻就能赢,只有一方去就会输。唯一的联络方式是派信使穿过山谷,而信使会被抓。
于是第一位将军送去一张字条:拂晓。可没法知道字条有没有送到,所以需要回信。回信送出去了,现在轮到第二位将军不确定回信有没有送到。总得有人确认那份确认,再确认那份确认的确认。永远没有尽头。有人正经证明过:无论送多少条消息,都不够让双方确定对方也确定。
奇怪的是,人们一直都在协调。事实证明,主要靠的是不需要说话。我们都靠道路的同一侧开车,却不用每天早上商量一遍。让两个陌生人在一座大城市里碰头,又不给他们任何联络方式,相当多的人会在中午出现在火车总站。一个好习惯,能做到消息做不到的事。
我们在这个问题里生活了一阵子。我们和几个 AI 行动者、几个人一起做同样的项目,这里的”行动者”只是指任何根据自己所知去行动的东西。我们重建过好几次协调的方式,每一次都发现,早就有人学到过这一课。
起初,行动者之间互相发消息。很快就乱了,因为可能的对话数量比参与者数量涨得快得多,而每一条对话都是一个决定可能丢掉的地方。
于是我们不再说话,开始留字条。每条工作流在一个共享的地方保存一小段书面状态,在行动者忘掉一切之前重写,由下一个接手的人来读。白蚁就是这样筑巢的。没有哪只发号施令,每一只只是回应上一只留下的东西。
后来,两个行动者覆盖了彼此的字条。解决办法是一条规则,而不是一把锁:谁都可以读任何字条,但只写自己的那一张。那种冲突就再也没发生过。
再后来,行动者开始接手看起来被丢下的工作。这个我们花了一些时间才想明白。从外面看,慢的东西和停了的东西一模一样,有一个很有名的证明说你分不出来。安静不等于离开。现在的规矩是:接手之前先问。
然后,那些只有人才能回答的问题散落在各处,那个人成了瓶颈。信息便宜的时候,用完的是注意力。所以现在每个决定都进同一个队列,一次一个,上面附着建议,不许放进度汇报。
还有一张有人手工维护的表,记着谁还有空,几天之内就过时了。每小时都在变的东西,没法抄到一个地方还保持新鲜,只能到它真正所在的地方去读。于是那张表变成了一次测量。
在这一切底下,有一个想法反复出现:消息告诉你一件事,但不给你许可。另一个行动者可以让你知道某件事,却不能让你跳过一次检查。
这些都没有解决将军的难题,没有人能真正确定。但有了足够多的共同习惯,大多数时候,没有人需要开口问。