摘要:当协商天天发生、桩桩从零谈起,通信费会吃掉合作的利润。组织与规范把高频交互沉淀为制度:组织结构定层级与角色,规范定义务禁令与制裁,电子机构则把规则写进通信中间件。本节拆解三型组织、规范的三种执行方式,并用代码量化"立规矩省通信"的账。
为什么老练的镇民从来不跟公交司机讨价还价?因为票价写在站牌上。这一问揭开了第 3 章最后一块拼图:上一节的协商解决"怎么谈成一单",但若每单生意、每次让路、每回收割互助都要重新谈,镇民的全部时间都会耗在谈判桌上。制度的存在价值正在于此——把重复的协商变成一次性的立法。这一节讲组织怎么搭、规矩怎么立、规则怎么执行,它也是第 5 章法庭戏的制度背景。
多智能体的组织结构常见三种图纸。
分层组织(科层制):镇务分派给队长,队长分派给队员。指令沿树下行,状态沿树上行。优点是协调开销低(每层只跟上下级说话)、可扩展;缺点是队长成瓶颈与单点,层间延迟叠加。适合任务可分解、环境稳定的场景。
对等组织(扁平制):没有队长,镇民靠协商与投票自行协调。鲁棒、灵活,但协调开销随人数上涨,大规模下容易议而不决。适合小规模、高动态的团队。
团队与联盟:团队围绕共同承诺组建(第 4 章联合意图的舞台);联盟则是自利镇民为分蛋糕临时结伙(第 6 章合作博弈的素材)。联盟的结构由收益分配动态塑造,聚散无常。
另有一门"分形组织"值得一提:整镇是一个智能体,村里的小镇民也是智能体,递归嵌套——学界叫合弄(holon)组织,制造业里合弄制产线是真用过的方案(第 9 章巡礼再遇)。
| 对照项 | 分层 | 对等 | 联盟 |
|---|---|---|---|
| 协调开销 | 低(随层数) | 高(随人数) | 中(随协议) |
| 单点风险 | 队长层 | 无 | 盟主或无 |
| 适应动态 | 慢 | 快 | 快 |
| 成员动机 | 指派 | 共同目标 | 自利结伙 |
| 典型场景 | 产线、应急指挥 | 机器人小组 | 市场竞标组队 |
组织里的位置叫角色。角色是行为的期望集:权利(可以做什么——消防员可以闯红灯)加义务(必须做什么——接警必须出动)。镇民与角色解耦:一个镇民可以身兼数角,一个角色可以换人顶岗。角色让组织获得"人走茶不凉"的稳定性——换掉巡逻员,巡逻这个角色连同它的职责与权限一起传给继任者,交接成本远低于重新协商一切。第 4 章的团队模型(谁侦察、谁主攻、谁补位)正是角色分工在战术层的应用。
规范是社会对镇民行为的约束与期待,常见三类:义务(必须做——汛期必须值班)、禁令(不得做——不得谎报灾情)、许可(可以做——允许在指定水域取水)。与硬编码约束最大的不同:规范可以被违反,违反要付代价。这个"可以被违反"不是缺陷,是精髓——它让制度有弹性,也让违规检测与制裁成为制度的一部分(第 5 章的法庭与信用档案在此挂账)。
规范怎么执行?三种方式,开销与刚性各不同:
制度强制:中间件直接拦截违规消息——违规不可能发生。刚性最强,但基础设施要重,且拦截不了"该做而没做"的义务违反。
同侪制裁:违规可能发生,被观察者举报、记档、惩罚(罚款、降信誉、驱逐)。灵活,但需要监测与声誉系统(第 5 章),且镇民要承担监督成本。
个体内化:规范写进镇民的决策函数,自律代替他律。零通信开销,但规范更新要通知每个镇民,且没法防"装内化"的骗子。

规范的执行如果全靠镇民自觉与相互举报,总有人钻空子。电子机构(Electronic Institution)的思路是釜底抽薪:让镇民只能通过机构提供的话筒说话。机构定义一组"场景"(scene,结构化的对话房间,比如拍卖室、登记室),每个场景规定谁能进、按什么顺序发言、哪些原语合法;场景之间按"表演结构"(performative structure)连接成完整的办事流程。镇民的外壳代理(governor)卡在它与机构之间:任何违规消息在物理上就发不出去。西班牙的一支研究队伍为这套思想造过完整的平台(场景编辑器、验证器一应俱全),拍卖行这样的高规矩场景正是它的样板间。代价也直白:机构本身是个中心设施,单点与吞吐是它的命门;对等纯分散的理想乡容不下它。
先看制度怎么在代码里落地。给镇民挂角色,角色带义务;义务有期限,到期未履行触发制裁,履行则记录归档。
class Role: """角色:权利与义务的集合。""" def __init__(self, name, rights, duties): self.name, self.rights, self.duties = name, rights, duties class TownsAgent: def __init__(self, name): self.name = name self.roles = {} self.record = {} # 制裁记录:上了法庭就是呈堂证供 def take_role(self, role, obligations_due): self.roles[role.name] = role self.pending = dict(obligations_due) # 义务名 -> 截止时刻 def act(self, duty, clock): if duty in self.pending: # 履行义务,销账 del self.pending[duty] return f"{self.name} 于 {clock} 履行 {duty}" return f"{self.name} 做了常规动作 {duty}" class Institution: """制度:到期检查义务,未履行即制裁。""" def __init__(self): self.fines = {} def check(self, agent, clock): overdue = [d for d, due in agent.pending.items() if clock > due] for d in overdue: agent.record[d] = "violation" self.fines[agent.name] = self.fines.get(agent.name, 0) + 5 del agent.pending[d] return overdue guard_role = Role("flood-guard", rights=["enter_dike"], duties=["patrol_dike", "report_level"]) agent = TownsAgent("guard-07") agent.take_role(guard_role, {"patrol_dike": 20, "report_level": 24}) print(agent.act("patrol_dike", clock=18)) # 按时巡堤 inst = Institution() print("逾期未报水位:", inst.check(agent, clock=30)) print("制裁记录:", agent.record, "罚款账:", inst.fines)
制度的三件套在代码里各就各位:角色定义期望、义务带截止时间、机构到期清算。把 record 接到第 5 章的声誉系统,违规就开始影响这个镇民未来的投标资格——制度与信用在此接轨。
规范的价值主张是省通信。做个对照实验:同一批"路权协商"事件,无规范组每单都要完整的要价—还价—成交对话;有规范组一条"路权规则"消息就解决。
import random MESSAGES_PER_NEGOTIATION = 6 # 完整协商对话的消息数 def no_norm_encounters(n, seed=4): """无规范:每次相遇都临时协商。""" random.seed(seed) return sum(random.randint(4, MESSAGES_PER_NEGOTIATION) for _ in range(n)) def norm_encounters(n): """有规范:内化规则,相遇时零消息;仅规则发布时一次性开销。""" broadcast_cost = 8 # 规则广播与确认的固定成本 return broadcast_cost + 0 * n for n in (20, 60, 120): a, b = no_norm_encounters(n), norm_encounters(n) print(f"相遇{n}次: 无规范 {a} 条消息, 有规范 {b} 条, " f"省 {100*(a-b)/a:.0f}%")
数字一目了然:协商消息随相遇次数线性堆叠,规范成本几乎是常数——相遇越频繁,立法越划算。这也解释了为什么开放、低频、多变的交互适合协商(立法成本收不回来),而封闭、高频、稳定的交互适合制度化。
⚠️ 常见坑:把规范当万能扣件,什么都立规矩。规范更新时要广播到全体镇民,环境一变规矩就改,广播费加上镇民重载决策函数的开销可能反超协商。规范适合沉淀"变化慢的行为模式",快变的行为留给协商。
镇民大会通过了第一批组织法:救火队按分层建制设队长,赶集日的摊位分配立了规范,拍卖行装上了电子机构的门禁。第 3 章到此收工——镇民会说话(通信语言)、会谈事(协商与合同网)、会守规(组织与规范)。但制度再好,也拦不住两个镇民同时伸手抓同一件工具。下一章进市政厅:任务怎么分、意图怎么对齐、问题怎么群策群力地解。