系列名称:意图即承诺,智能体即社会——自主性的第一个可计算答案
篇号:第 8 篇 / 共 11 篇 主题分类:历史记述 前置阅读:总览与阅读路线 阅读时间:约 18 分钟
反应与慎思的和解:一边让三层抢方向盘,一边把难题逐级上交
设想一辆在城区行驶的自主车。前方十五米突然出现障碍物,它必须在几十毫秒内制动——这是感知-行动的直连,容不得任何“想一想”。但同一辆车还要在几分钟前决定走哪条路线绕开施工区,还要在路口前预测右侧来车会不会抢行,那是一个跨秒级的社会推理。毫秒、分钟、长时预测,三种时间粒度塞不进同一条反射弧。1986 年 Rodney Brooks 的包容架构证明了第一种智能可以不需要内部世界模型,但他只赢了这半场;后两种智能住在哪里、怎么与第一种共处,他留成了一道裂缝。
1992 到 1993 年,两篇博士论文级别的长篇技术报告几乎同时动手填这道裂缝,给出的却是两个结构上几乎相反的答案。剑桥大学的 Innes Ferguson 在 219 页的 UCAM-CL-TR-273 里造出 TouringMachines:反应、规划、建模三层并发运行,每层都直连感知与行动、都可直接下达动作命令,冲突交给设计者手工雕琢的门控规则在时间片两端收拢 ferguson1992。DFKI 的 Jörg Müller 与 Markus Pischel 在 109 页的研究报告里造出 INTERRaP:模块纵向堆叠,世界接口独占感知与行动,底层干不了的任务逐级上交,顶层的联合计划再分解下传 muller1993。
一个是横向并发,一个是纵向上交;一个守住“无中央表征”的前提,一个部分回到集中表征;一个把仲裁交给设计者预设的 if-then 规则,一个让模块在运行时自评称职。这篇文章沿着这道裂缝讲两边的工程细节,用同一场景的复现对比两条决策路径,最后用一场 2026 年的 A/B 实验回答一个 Ferguson 悬置了三十四年的问题:当静态门控换成 LLM 的运行时判定,兑现的是什么,付出的又是什么。
裂缝是怎么留下的:Brooks 赢了半场,PRS 折衷了另一半
1986 年,Brooks 发表了那篇改变 AI 走向的论文 brooks1986。他的核心论断是:智能行为可以由感知-行动耦合直接产生,不需要内部世界模型,不需要规划,不需要中央表征。包容架构(subsumption architecture)把行为组织成层,高层抑制低层输出——但抑制是固定的、硬连线的,不经过任何中央仲裁者。Brooks 的贡献不是“发明了反应式架构”(William Ashby 的稳态机、Grey Walter 的机器龟都是先驱),而是把“无内部表征”从哲学主张变成了可运行的机器人程序。他的 Herbert 机器人与 Genghis 六足步行机,都是没有规划、没有世界模型、却能在办公室走廊里搜集可乐罐的实体。
但 Brooks 自己留下了一道裂缝。他的论断覆盖的是“感知-行动”层——毫秒级、近距空间。一个需要在城市路网中导航到十公里外目的地的 agent,不可能只靠感知-行动耦合。Brooks 没有回答慎思往哪里放,他把这个问题留给了后人。
1987 年,SRI 的 Georgeff & Lansky 在 AAAI-87 上发表的 PRS(Procedural Reasoning System)做了一次折衷 prs1987。PRS 的核心是知识区域(Knowledge Area, KA)计划库——每个 KA 是一段“在什么条件下、怎么达成某目标”的过程。解释器在运行时从 KA 库中选择匹配当前信念和目标的 KA,压入进程栈执行;任意时刻被激活的 KA“既是部分的又是分层的”:计划不需要完整展开就能开始行动。PRS 把“何时停止规划”变成了一个可调用元级过程的问题(详见 BDI 从理论到工程)。但底层架构仍然是单一解释器轮转 KA。它没有真正的并发,反应式避障和战略规划在同一个进程栈里排队。当紧急障碍出现时,解释器需要先中断当前 KA、压栈、调度元级 KA 判断是否该切换。这套机制能用,但不是 Brooks 意义上的“感知-行动直连”。
裂缝还在。PRS 的折衷证明了一件事:把反应和慎思塞进一个解释器是可行的,但不是唯一的答案——甚至可能不是最好的答案。把这条线放进时间轴,可以看到两种混合架构如何从同一道裂缝分岔,又如何在三十多年后重新合流:

图中实线是架构演化的因果链,虚线是 Ferguson 埋进 future work 的那个问题:运行时能否自己决定“要不要多想一会儿”。它在 2026 年才第一次被真正拿到实验台上检验。我们先看 1992 年的第一个答案。
Ferguson 的答案:让三层同时开车
TouringMachines 的核心结构,报告原话是“三个独立控制层:反应层 R、规划层 P、建模层 M”,三层“并发运行、独立驱动、产生行为” ferguson1992。每层独立连接感知与行动子系统,可直接下达动作命令,各自以不同的时空抽象粒度建模世界。控制框架对层透明——“每层可当作只有自己在控制 agent”。冲突不在层内解决,交由层外的门控规则收拢。

这张图的关键在于两端:感知进来先过 censor、动作出去前先过 suppressor,三层本体在中间互不指挥。三层的分工沿时空粒度展开——反应层 R 最细粒度,处理当前时刻、近距空间,硬连线情境-动作规则,感知-行动直连,无内部状态推理,撞墙前 15 米紧急制动。规划层 P 中等粒度,处理局部路段、分钟级,做局部路线规划,原话“计划仅被当作行动的资源,而非控制一切行为的严格配方”——计划不控制一切,只是行动时可调用的资源。建模层 M 最粗粒度,处理全局场景、长时,预测他人意图并据此行动,显式采用 BDI 式他人心理模型,建模层是本架构中 BDI 伏线最明显的接入点。
Ferguson 在报告里明确交代了自己的师承。他的控制框架自称“包裹式类包容控制框架”(a wrapper-like subsumption-like control framework),中介控制规则中的抑制机制“近似 subsumption 中的抑制机制”(akin to the suppression mechanism in subsumption)ferguson1992。师承线索清晰,但他做了两处关键改造。第一,Brooks 的抑制是固定的层间链——高层总是抑制低层;Ferguson 取消了固定压制链,原话“层间无严格层级化或优先级化的控制流”:建模层不总胜规划层,规划层不总胜反应层,胜负取决于运行时情境,抑制由情境激活的门控规则触发,不是硬连线。第二,subsumption 只在输出端抑制,Ferguson 在输入端也加了过滤,censor 规则在时间片首过滤喂给各层的感知,设计者由此可以控制“哪些层在哪些情境下能看到什么”,比 Brooks 的纯输出抑制多了一个维度。他还类比了 Minsky 心智社会的 censor/suppressor agents。本系列长期追踪的两条伏线(Brooks 的包容架构与 Minsky 的心智社会)在这里又一次交汇。
勘误:“Brooks 与 BDI 的和解方案”系本报告凝练,不得作任何一家的原文称谓。可用旁证为 Ferguson 自述”subsumption-like control framework”(师承 Brooks)+ 建模层显式采用 BDI 式他人心理模型 + Müller 一侧“试图和解反应与慎思的架构”,但三家原文均无此称谓。
仲裁机制本身是两类中介控制规则,原话“通过修改任意层的输入输出来消解动作冲突” ferguson1992。censor 规则在时间片首过滤感知,例如“近距障碍时屏蔽规划层感知”(避免在紧急时浪费计算资源做路线规划);suppressor 规则在时间片尾过滤各层输出的动作命令,例如“紧急制动时抑制规划层输出”(反应层接管)。在我们的复现仓里,这套规则就是一个手写的静态表:
# 设计者手工雕琢的审查/抑制规则——静态、编译时分配
self.censor_rules = [
CensorRule("obstacle_close", "P", "近距障碍时屏蔽规划层感知"),
CensorRule("complex_conflict", "P", "复杂冲突时屏蔽规划层感知"),
]
self.suppressor_rules = [
SuppressorRule("obstacle_close", "P", "紧急制动时抑制规划层输出"),
SuppressorRule("obstacle_close", "M", "紧急制动时抑制建模层输出"),
SuppressorRule("complex_conflict", "P", "复杂冲突时抑制规划层输出"),
]
短短几行代码就是 TouringMachines 仲裁机制的全部本体:按情境标签查表,命中就屏蔽。真正要紧的是它的唯一性保证从哪里来——原话“由设计者雕琢,保证任一情境至多一条规则触发、至多一条命令到达效应器”。这不是运行时仲裁,而是编译时分配:设计者在编码时必须穷举所有可能的情境组合,为每个组合写好互斥的 if-then 规则;遗漏一个组合,就可能出现两条命令同时到达效应器。这条约束是 TouringMachines 最大的结构脆弱性——系统行为的质量完全取决于设计者编写规则的完备性,而设计者无法在编译时穷举所有运行时情境。(完整复现代码见 ../hybrid-architecture-reproduction/hybrid/touring_machines.py。)
守住“无中央表征”的代价也在这里。三层中没有一层是“老板”,没有层拥有对其他层的控制权,仲裁由情境驱动的门控规则执行——这是对 Brooks 原则的忠实继承。但守住院子的代价,是仲裁能力被限制在“设计者预设的情境-规则对”之内:运行时遇到设计者没预设的情境组合,门控规则不触发。Ferguson 把“决策论元推理、anytime 算法、第四学习层”全部放进了 future work——不是不想做,是静态门控框架做不了。
Müller 的答案:干不了就上交
一年后,DFKI 给出了结构上几乎镜像的答案。INTERRaP 的核心是两大件——“层次化 agent 知识库 + 多级控制单元” muller1993。控制单元含四个子模块:世界接口(World Interface)、行为组件 BBC(Behavior-Based Component)、计划组件 PBC(Plan-Based Component)、协作组件 CC(Cooperation Component),原话四者“经目标、计划与信息通信交换”。与 TouringMachines 的“每层独立连感知行动”相反,世界接口独占感知与行动,共享的 World Model 是所有层的公共底座——INTERRaP 部分回到了集中表征。
勘误:INTERRaP 分层命名 BBL/LPL/CPL 定型于 1995-96 版。1993 DFKI 版为 WIF/BBC/PBC/CC——“社会模型”在 1993 版尚非独立组件,由 Cooperation Knowledge 层承担。本文一律使用 1993 版命名。

层间控制分两个方向。自下而上是称职驱动,原话“模块 n 自认能力不足,把任务上交模块 n+1”:BBC 尝试处理当前情境,有可用的行为模式(紧急制动、减速、保持车道等)就执行;来了其他 agent 需要交互,BBC 自认不胜任,把任务上交 PBC;PBC 做局部规划,若还需多方协调(障碍物与来车并存)再上交 CC。自上而下是计划分解:CC 制定联合计划后分解为子计划下传给 PBC,PBC 再分解为叶节点,叶节点激活 BBC 的行为模式,控制交还 BBC 执行,行动仍由世界接口独占输出。知识访问同样分层,原话“每层只能读本层及以下的知识层”:BBC 只能读世界模型和行为模式知识,PBC 可加读局部计划,CC 可读全部(含合作知识)。
称职驱动听起来抽象,落到实处只有几行判断。复现仓里 BBC 的称职判据是这样写的:
def can_handle(self, world: Dict[str, Any]) -> bool:
"""称职判据——BBC 能否独立处理当前情境"""
other_agents = world.get("other_agents", [])
if other_agents:
return False # 有其他 agent 需交互 -> 不胜任 -> 上交
return True # 无其他 agent -> BBC 可处理所有驾驶情境
整个上交链条则是三层 can_handle 的嵌套:
if self.bbc.can_handle(world):
behavior, action = self.bbc.act(world) # BBC 直接执行
elif self.pbc.can_handle(world):
plan_name, action = self.pbc.plan(world) # 上交一层做局部规划
else:
plan_name, joint_action, leaf = self.cc.coordinate(world) # 上交顶层协调
读这两段代码时值得留意两点。其一,BBC 并非纯粹的反射弧——原话行为模式“远超一般理解的反应式系统”,作者自语凝练为“把智能从规划移入执行”;BBC 内部“引入一种 Brooks 式包容结构”,行为模式按静态优先级排序,套用的是 Maslow 需求金字塔。其二,也是更关键的:称职判据本身是设计者写的 if-then。“自认能力不足”听起来是运行时的自我评估,但“什么算不胜任”在编码时就定死了——这个伏笔我们留到最后再展开。
层与层之间怎么说话?INTERRaP 的答案是消息原语(accept、command、demand、inform、modify、propose、reject),原话“模块间通信与 agent 间通信基本同一套言语行为式原语”。这是模块社会化路线:模块间的通信和 agent 间的通信使用同一套言语行为,模块本身就是“小 agent”,与 Minsky“脑内 agents 社交”的设想直接呼应。在 ICMAS-95 的后续短文里,Müller 一方还补了一个常被忽略的澄清:各层“虽按层级排列激活,却并发工作——agent 在规划时仍对意外保持感受性” muller1995。纵向堆叠不等于串行独占,这一点是它与其他分层方案的重要区别。
同一辆车,两条决策路径
两种架构孰优孰劣,Müller 本人在 ICMAS-95 的《Unifying Control》里亲自划了界 muller1995。他的判词是:Ferguson 的 TouringMachines 属横向耦合——“每个控制模块直连感知与行动”,三层并列,各有一根感知输入线和行动输出线,层间只有消息交换,没有控制权传递;INTERRaP 属纵向架构——“纵向架构中抑制可经模块间直接通信施加;横向架构里一个组件看不到另一个组件在提议什么动作”。
这句话点中了横向架构的结构盲点。TouringMachines 的三层各自独立产生动作命令,suppressor 规则在时间片尾收拢,但 suppressor 触发时只能看到“当前情境标签”,看不到“另一层正在提议什么动作”。设计者必须预设“复杂冲突时该抑制哪层”,可设计者无法预知运行时三层各自会提议什么。INTERRaP 的纵向架构让模块通过消息原语直接通信——一个模块可以看到另一个模块在提议什么,并据此决定是否施加抑制。这条划界不是品味之别,而是结构之别:横向守 Brooks 前提,代价是仲裁依赖设计者预设;纵向放弃 Brooks 前提,换取层间可见性和显式仲裁。
空口划界不如同场竞技。复现仓设计了一个两架构共用的测试场景:一辆自主车沿道路行驶,8 个时间片从开放道路到抵达目的地,其中 t=2 是近距障碍(15 米,紧急),t=4 是复杂冲突——近距障碍物(20 米)加来车从右方接近(完整场景定义见 ../hybrid-architecture-reproduction/hybrid/scenario.py)。两种架构在同一个场景里各跑一遍:
实验1:TouringMachines vs INTERRaP 架构对比
============================================================
--- TouringMachines(横向并发)---
t=0 反应层=保持车道 规划层=沿路线前进 建模层=无他人需建模
censor触发=False suppressor触发=False
t=1 反应层=保持车道 规划层=沿路线前进 建模层=无他人需建模
censor触发=False suppressor触发=False
t=2 反应层=紧急制动 规划层=[被抑制] 感知被审查——未运行 建模层=[被抑制] 无他人需建模
censor触发=True suppressor触发=True
t=3 反应层=保持车道 规划层=沿路线前进 建模层=礼让来车
censor触发=False suppressor触发=False
t=4 反应层=减速备刹 规划层=[被抑制] 感知被审查——未运行 建模层=礼让来车
censor触发=True suppressor触发=True
t=5 反应层=保持车道 规划层=沿路线前进 建模层=无他人需建模
censor触发=False suppressor触发=False
--- INTERRaP(纵向分层)---
t=0 活动层=BBC 动作=保持车道
上交=False 理由=
t=1 活动层=BBC 动作=保持车道
上交=False 理由=
t=2 活动层=BBC 动作=紧急制动
上交=False 理由=
t=3 活动层=PBC 动作=规划礼让来车
上交=True 理由=BBC 无可用行为模式处理来车交互
t=4 活动层=CC 动作=联合计划: 先制动礼让来车再绕行障碍
上交=True 理由=PBC 需多方协调——障碍物与来车并存
t=5 活动层=BBC 动作=保持车道
上交=False 理由=
(t=6、t=7 为抵达目的地与终态,两种架构都输出停车。)平静路段两者行为一致,分歧全部集中在 t=4 那个复杂冲突上。把 t=4 拆开看:
| TouringMachines | INTERRaP | |
|---|---|---|
| 反应层 / BBC | R:减速备刹(优先级 5.0) | BBC:有来车 → 自认不胜任 |
| 规划层 / PBC | P 被 censor+suppressor 屏蔽 | PBC:障碍+来车 → 仍不胜任 |
| 建模层 / CC | M:礼让来车(优先级 6.0) | CC:制定联合计划 |
| 仲裁依据 | 设计者的静态优先级 M>R | 称职驱动逐级上交 |
| 胜出 | 礼让来车 | 联合计划:先制动礼让来车再绕行障碍 |
| 后果 | 障碍物无人处理 | 两个威胁均被纳入计划 |
TouringMachines 在 t=4 的遭遇值得细读。三层各自独立产生动作:R 说“减速备刹”(静态优先级 5.0),M 说“礼让来车”(静态优先级 6.0),最终 M 胜出,因为设计者在编译时给“礼让来车”分配的优先级更高。但规划层被抑制了:complex_conflict 情境触发了 censor 和 suppressor 规则,本该规划绕行路线的 P 连感知都被屏蔽。结果是 agent 礼让来车但不绕行障碍——负责绕行的规划层,被设计者的静态规则关掉了。INTERRaP 走的是另一条路:BBC 发现有其他 agent,自认不胜任,上交 PBC;PBC 发现障碍物与来车并存,需要多方协调,再上交 CC;CC 制定的联合计划“先制动礼让来车再绕行障碍”把两个威胁都装了进去,计划叶节点再激活 BBC 的紧急制动行为模式执行。同一个场景,两种架构给出了不同的答案。而 TouringMachines 的那份答案里,盲区不是机器犯的错,是设计者编写的规则直接导致的。
勘误:D&M(Durfee & Montgomery 1990)的“行为抽象层级”属协调协议中的通信内容抽象而非 agent 内部分层架构。D&M 不与 TouringMachines / INTERRaP 同列——后者是 agent 内部分层,前者是 agent 间协调协议的通信内容抽象。详见 三种仲裁。
把两条路径的全部差异压进一张表:
| 维度 | TouringMachines(横向并发) | INTERRaP(纵向分层) |
|---|---|---|
| 层间结构 | 三层并列,各自直连感知与行动 | 四模块纵向堆叠,世界接口独占感知行动 |
| 仲裁机制 | censor + suppressor 门控规则(静态) | 称职驱动上交(运行时情境驱动) |
| Brooks 前提 | 守住——无中央表征,每层独立 | 部分放弃——世界接口集中感知行动 |
| 层间可见性 | 一个组件看不到另一组件在提议什么动作 | 模块间通过消息原语直接通信 |
| 仲裁来源 | 设计者手工雕琢的 if-then 规则 | 模块自评称职不足触发上交 |
| 何时回到慎思 | 门控规则预设的情境触发 | BBC 不胜任时自动上交 |
| 集中表征 | 无 | 有(World Model 为公共底座) |
| 控制流 | 无固定层级——情境驱动 | 纵向——称职驱动自下而上,计划分解自上而下 |
两种混合架构应两案并陈,不宜以 TouringMachines 概括全部:前者守住 Brooks 前提恢复慎思,方式是让三层并发、用情境门控规则消解冲突,但仲裁完全依赖设计者手工雕琢;后者放弃 Brooks 前提恢复慎思,方式是把反应作默认层、以称职驱动上交换取层间冲突的显式仲裁,但世界接口集中了感知行动。两种答案各有代价。
放进 BDI 坐标:连同 2026 年的第三列
把两个架构放进 BDI(信念-愿望-意图)坐标系,再并排放上 2026 年的 LLM Agent,三者的位置差异会看得更清楚:

| 维度 | TouringMachines 1992 | INTERRaP 1993 | LLM Agent 2026 |
|---|---|---|---|
| 信念 | 每层独立感知,censor 过滤后分层喂入 | 世界接口独占感知,共享 World Model | 参数统计分布 + system prompt + RAG |
| 愿望 | 嵌入各层目标(R 避障 / P 路线 / M 预测) | BBC 行为模式静态优先级,套用 Maslow 金字塔 | 用户指令 |
| 意图 | 三层并发动作命令,suppressor 收拢至多一条 | 称职驱动上交,CC 联合计划分解下传 | ReAct 循环 action 序列 |
| 承诺语义 | suppressor 规则决定哪层动作生效 | 计划叶节点激活 BBC 行为模式 | tool call 是隐式承诺 |
| 何时慎思 | 设计者预设的情境触发门控规则 | BBC 不胜任时自动上交 | LLM 自己决定(无元推理保障) |
| 仲裁来源 | 设计者手工雕琢的 if-then 规则 | 模块自评称职不足 | 概率采样(无显式仲裁) |
| 信念更新 | 感知子系统每时间片刷新 | 世界接口每周期刷新 | 每轮对话 context window 刷新 |
这张表里最要紧的一行是“何时慎思”。INTERRaP 的答案是运行时自评驱动的:BBC 自己判断“我能不能处理这个”,不能就上交,这比 TouringMachines 的“设计者预设情境触发”更动态。但两者都远未达到 Rao & Georgeff 1995 年 BDI 模型中“开放心智”agent 的理想——后者能评估“采纳意图的理由是否仍然成立”并据此放弃意图(见 BDI 从理论到工程)。而当代 LLM Agent 的“何时慎思”由 LLM 自己在 ReAct 循环中决定,没有元推理保障,“多想一会儿”只是采样上的概率波动,并非策略选择。这个空白,正是下一节实验的入口。
动态门控:一笔悬了三十四年的 future work,和它的兑现代价
Ferguson 把话说得很早、也很直白。他在结论章自认:计算资源分配是“静态的编译时方案”,运行时“无法评估是否该进一步慎思而非立即执行动作”——决策论元推理、anytime 算法与第四“学习层”全部位于 future work,自评当前 agent“只能算前智能” ferguson1992。复现仓里专门留了一个方法来验证这条自评:can_assess_deliberation_need(),检查 TouringMachines 能否在运行时评估“当前是否应该花更多时间慎思而非立即执行”:
def can_assess_deliberation_need(self, state: Any) -> bool:
"""验证 Ferguson 自认局限:
运行时'无法评估是否该进一步慎思而非立即执行动作'"""
return False
方法体只有一个 return False——这不是偷懒,这正是 Ferguson 自认的结构局限在代码里的等价物。跑一遍 8 个时间片:
实验2:静态资源分配局限(失败实验)
============================================================
TouringMachines 的 censor/suppressor 规则是静态分配的
运行时无法评估'是否该进一步慎思'
t=0 能否评估慎思需求: False
t=1 能否评估慎思需求: False
t=2 能否评估慎思需求: False
t=3 能否评估慎思需求: False
t=4 能否评估慎思需求: False
t=5 能否评估慎思需求: False
t=6 能否评估慎思需求: False
t=7 能否评估慎思需求: False
>> Ferguson 自评: 只能算前智能
>> 静态资源分配无法动态评估是否该进一步慎思
8 个时间片全部返回 False。censor/suppressor 规则是编译时分配的:哪些情境屏蔽哪层感知、哪些情境抑制哪层输出、层间计算资源配额,全部在设计期固定,运行时没有任何元推理机制来评估“当前是否应该多想一会儿”。以 t=4 为例:设计者预设了“complex_conflict 时抑制规划层”,可运行时 agent 面临障碍物加来车的复杂冲突,此刻恰恰应该让规划层参与(需要规划绕行路线)——静态规则却把规划层关掉了。TouringMachines 没有能力在运行时说“等等,这个情境比预设的复杂,让我多想一会儿”。这就是“只能算前智能”的含义。
2026 新增 A/B 对照实验(E6)。Ferguson 那条 future work 一留就是三十余年,这个实验试着把它兑现:只替换一个组件,其余全部不动。基线是设计者雕琢的静态 suppressor 规则(按情境标签查表);变体把 suppressor 换成 LLM,每时间片判定抑制哪些层的输出:只给原始感知(速度、障碍距离、他车情况),不给情境标签,逼 LLM 自己从感知推断紧急度,因为基线规则靠标签查表,若连标签一起给就测不出任何推断能力。censor 规则与“未抑制者中优先级最高者执行”的机制原样保留。模型 deepseek-chat,温度 0.3,8 时间片 × 10 轮独立抽样:
| 指标 | 基线(静态规则) | LLM 动态门控 |
|---|---|---|
| 平静片抑制集吻合 | 8/8(定义) | 6/6 × 10 轮全对 |
| t=2 紧急片(胜者须=R 紧急制动) | 通过 | 10/10 通过 |
| t=4 复杂冲突片 | 胜者=M(礼让来车) | 1/10 同基线;9/10 改判 R |
| 失败模式分布 | — | correct×1,conservative_overreach×9 |
| 误抑制 R / 平静片漂移 | 0 | 0 / 0 |
| 每片延迟 | <0.001s | ~1.2s(LLM 调用) |
安全底线全部守住了,这一点必须先说清楚:真紧急片(t=2 近距障碍)十轮全部让反应层的紧急制动到达效应器,十轮零误抑制反应层,六个平静片十轮零漂移,LLM 从原始感知推断紧急度的能力是可靠的。逐片吻合度也齐整:9 轮保守过抑各为 7/8 片吻合(唯一偏离就在 t=4),1 轮完全吻合为 8/8。
但 t=4 暴露了一个结构性的行为漂移,这一条要如实记录、不作软化。先看基线在 t=4 做了什么:Ferguson 的静态规则只抑制规划层 P,建模层 M 的“礼让来车”以优先级 6.0 合法胜过反应层 R 的减速备刹(5.0)。这正是“层间无严格层级化”的展示点,社会性冲突中可以礼让而非急刹。而 LLM 在 9/10 轮里连建模层也一并抑制,只留下反应层的“减速备刹”——反射层独大。也就是说,模型的安全先验把 Ferguson 精心保留的社会性仲裁重新层级化成了“反射优先”。判决(本系列凝练):LLM 动态门控兑现了 Ferguson 的 future work(运行时仲裁确实可行且安全),但兑现的方式是把“设计者雕琢的情境特判”替换成“模型先验的保守特判”;动态化买来了适应性,卖掉的是架构原有的行为多样性。附带成本同样真实:每片约 1.2 秒的延迟(基线静态查表不到 1 毫秒),以及 80 次调用共 25,891 tokens(prompt 22,410 + completion 3,481,零调用错误)。原始数据存于 ../experiment_results/ab_e6_hybrid_gating.json。
修正记录:本实验初版的失败模式分类法误设”危险片胜者须=R”,把 t=4 也按”胜者必须是反应层”来判——但基线在 t=4 的胜者本为 M(礼让来车)。该假设已撤回,全部 10 轮从原始记录重新分类(correct×1、conservative_overreach×9),未重跑 API。分类修正的依据写在
../hybrid-architecture-reproduction/ab_experiment.py的classify()注释里:t=2 胜者须为 R(真紧急),t=4 若抑制集大于基线(连 M 也抑制)记 conservative_overreach。
编者注:把这条修正与 t=4 的结果放在一起读更有意味——即使按修正后(对基线更有利)的分类法,LLM 动态门控在复杂冲突片上仍是 9/10 保守过抑。修正救的是实验记录的诚实,不是变体的成绩。
Ferguson 自己先认了:前智能、六条边界与一份克制的影响谱系
这篇文章写到这里批评过的每一处局限,几乎都不是后人翻旧账——两篇原文自己在结论章就承认了。Ferguson 的“只能算前智能”前面已经引过,把两个架构的诚实边界完整摊开,一共六条。
第一,TouringMachines 的静态资源分配。 计算资源分配是“静态的编译时方案”,运行时“无法评估是否该进一步慎思而非立即执行动作”,censor/suppressor 规则是设计者编码时手写的,全部编译时固定,运行时遇到设计者没预设的情境组合,门控规则不触发。实验 2 的 8 个 False 已经验证了这一点;Ferguson 把决策论元推理、anytime 算法、第四学习层全部放进了 future work。
第二,TouringMachines 的唯一性保证靠设计者手工雕琢。 原话“由设计者雕琢,保证任一情境至多一条规则触发、至多一条命令到达效应器”。仲裁发生在编译时而非运行时:设计者必须穷举所有可能的情境组合,这在非平凡场景中不可扩展。实验 1 的 t=4 展示了后果:设计者预设“complex_conflict 时抑制规划层”,但规划层本该参与——规则把正确的层关掉了。
第三,INTERRaP 的称职判据也是设计者预设的。 “模块 n 自认能力不足”——但“能力不足”的判据是设计者编写的,can_handle() 返回 True/False 的背后是预设的 if-then。称职驱动比 TouringMachines 的静态门控更动态(运行时情境驱动而非编译时固定),但“什么算不胜任”仍然是设计者定义的。
第四,INTERRaP 部分回到集中表征。 世界接口独占感知与行动、共享 World Model 为公共底座,这放弃了 Brooks 的“无中央表征”前提。INTERRaP 恢复慎思的方式恰恰是放弃这一前提:把反应作默认层、以称职驱动上交换取层间冲突的显式仲裁。所以两种混合架构应两案并陈,不能以一种概括另一种。
第五,INTERRaP 的跨 agent 冲突仲裁仍需选出集中者。 原话说“不先验假设调解过程存在”,但办法是“选出其中一个 agent 充当调解者”——运行时选出集中者,而非消除集中。这与 Durfee 在自组织工作中的权威值全序→选出 leader 路线一致(见 三种仲裁 与 智能体如何找到彼此)。
第六,INTERRaP 实验数字的自反性。 FORKS 装载码头叉车仿真(OPS-5 前向推理)跑了 3/6/9 个 agent × 5 种类型的组合,结果聚集任务下智能 agent 的冲突概率反而高于欠智能者——一个“不一定全用聪明 agent”的实证。这个数字说明混合架构的分层上交在 agent 数量增加时反而增加冲突,因为更多 agent 需要上交到 CC 协调。
三篇合观(含 D&M)能看到一个更冷的结论:1990-1995 的实现里,完全不依赖设计期预设的仲裁机制并不存在。彼时通行的折衷是“预设减到最少 + 运行时选出权威”(Durfee 权威值全序 → Müller 选举 mediator),真正的动态仲裁(效用元推理、学习层、动态权威分配)在三篇原文中全部位于 future work。
这个局面配得上一句 Bar-Hillel 式的批评。Bar-Hillel 对机器翻译的批评是:它把“理解”偷换为“模式匹配”,预设了一个不成立的等价前提。两种混合架构有一个结构相同的局限:它们把“仲裁”偷换为“设计者预设”,预设了一个不成立的等价前提:设计者能在编译时穷举所有运行时冲突情境。TouringMachines 的门控规则只有在设计者穷举了所有情境组合时才有效,可设计者在编译时无法预知运行时三层各自会提议什么动作,尤其当环境里还有其他 agent 时。INTERRaP 的称职驱动更动态,但“能不能处理”的判据仍然是设计者编写的能力边界,不是运行时学到的能力评估。
这条批评最重要的部分在于它对当代说的话。LangGraph 的状态图分层、AutoGen 的 GroupChat 协调层,都是混合架构的当代回声。但当 LangGraph 把“反应层”和“慎思层”写成状态图节点时,节点间的跳转条件仍然是设计者写的 if-then,只是从 censor 规则变成了 add_conditional_edges 的条件函数。名字变了,结构没变。 而当代 LLM Agent 的“何时慎思”由 LLM 自己在 ReAct 循环里决定,“多想一会儿”只是采样上的概率波动,并非策略选择。这恰好是 Ferguson 1992 年自认的局限在 34 年后的重现:TouringMachines 的“静态编译时方案”变成了 LLM 的“采样温度”,两者都不是真正的动态仲裁。E6 的结果给这条批评补了最新的一笔:即使把门控真正运行时化(LLM 从原始感知推断紧急度,安全底线全守),换来的仍是模型先验的保守特判,而非 Ferguson 设想中的决策论元推理——动态仲裁的旧问题解决了,“仲裁者的先验从哪来”的新问题顶了上来。
作者判断:[若混合架构要在 LLM 时代复活,缺的可能不是更强的门控模型,而是对门控模型本身的制衡机制——比如给”抑制建模层”这类改变架构行为风格的裁决加上显式的复核通道。E6 的 9/10 保守过抑说明,模型先验与架构设计者的先验一样,都是一种未经运行时检验的预设。]
最后是影响谱系。这一节的每条关系都附引证,并按“强 / 中强 / 中”分级——概念相似不冒充因果传承。
强影响(直接继承混合架构范式):
| 系统 / 框架 | 年份 | 影响点 | 参考 |
|---|---|---|---|
| 3T / ATLANTIS / Saphira | 1990s | 三层架构(反应/顺序/慎思)直接继承 TouringMachines 的 R/P/M 分层范式 | Bonasso 1997 |
| SOAR | 1990s | 符号-反应混合架构,感知-行动与慎思并存 | Laird et al. 1987 |
| JAM / UM-PRS | 1990s | 商业 Agent 框架采用 PRS 式计划库 + 混合分层 | Huber 1999 |
| ICMAS-95 Unifying Control | 1995 | Müller/Fischer/Pischel 把 INTERRaP + TouringMachines 统一为”分层 BDI”(判定成立但非原文自封) | ICMAS-95 |
中强影响(概念启发混合架构思路):
| 系统 / 框架 | 年份 | 影响点 | 参考 |
|---|---|---|---|
| robotic agent 架构 | 1990s-2000s | 机器人控制普遍采用反应+规划混合分层 | Arkin 1998 |
| 亚符号反馈控制 | 1990s | 底层反应+高层规划的混合范式影响机器人学 | Brooks 1986 |
| ROS 节点架构 | 2010s | 节点间消息通信松耦合,混合架构的工程遗产 | ROS |
| AutoGen GroupChat | 2023 | 多 agent 协调层近似 CC 的角色 | AutoGen |
中等影响(概念平行而非直接继承):
| 系统 / 框架 | 年份 | 影响点 | 参考 |
|---|---|---|---|
| System 1 / System 2 | 2000s | Kahneman 双系统与反应/慎思分层概念平行 | Kahneman 2011 |
| LangGraph 状态图 | 2024 | agent 内部状态图分层,概念平行于 INTERRaP 纵向分层 | LangGraph |
| hierarchical RL | 2010s | 分层强化学习的 option 框架,概念平行于称职驱动 | Precup 2000 |
回望 1992-1993 年那道裂缝的两份答案:Ferguson 让三层抢方向盘,用设计者雕琢的门控规则收拢冲突,守住了无中央表征,也把仲裁的天花板钉在了编译期;Müller 与 Pischel 把难题逐级上交,用称职驱动换取显式仲裁,也把感知行动重新集中到了一个接口上。1995 年 Müller 亲笔划下横与纵的界线时,两案并陈的局面已经注定。而真正悬而未决的那个问题,“agent 能不能在运行时决定自己要不要多想一会儿”,从 Ferguson 的 future work 一路悬到 E6 的实验台上。三十余年后它得到的第一个可计算回答是:能,安全地能,但答案里带着模型先验的口音。前智能的门槛迈过去了一半——另一半,仍然在 future work 里。
参考文献
[brooks1986] Brooks, R. A. “A Robust Layered Control System For A Mobile Robot.” IEEE Journal of Robotics and Automation, 2(1):14-23, 1986.(精读存档 原始文章\03i-Brooks-Subsumption-1986.pdf)
[prs1987] Georgeff, M. P. & Lansky, A. L. “Procedural Reasoning.” AAAI-87, pp. 151-155, 1987. 详见 blog-02。
[ferguson1992] Ferguson, I. A. “TouringMachines: An Architecture for Dynamic, Rational, Embedded Agents.” PhD Thesis / Technical Report UCAM-CL-TR-273, University of Cambridge, 1992, 219 pages.(精读存档 原始文章\03j-Ferguson-TouringMachines-1992.pdf,剑桥官方技术报告完整版,正文 206 页,约 52 万字符。引用页码均按 TR 版标注。三层并发原话、censor/suppressor 门控原话、”由设计者雕琢”唯一性保证原话、”层间无严格层级化控制流”原话、”计划仅被当作行动的资源”原话、”包裹式类包容控制框架”自述、”静态的编译时方案”+”只能算前智能”自评局限,均出自此档。)
[muller1993] Müller, J. P. & Pischel, M. “INTERRaP: An Architecture for Behavior-Based Agents.” DFKI Research Report, 1993, 109 pages.(精读存档 原始文章\03k-MullerPischel-INTERRAP-1993.pdf,DFKI 研究报告版,约 29 万字符。两大件结构原话、四子模块原话、”称职驱动”原话、”模块间通信与 agent 间通信基本同一套言语行为式原语”原话、”把智能从规划移入执行”原话、FORKS 实验数字均出自此档。)
[muller1995] Fischer, K., Müller, J. P. & Pischel, M. “Unifying Concepts in DAI and MAS: From the Individual to the Organization.” ICMAS-95, pp. 251-262, 1995.(三通用函数 BR/SG/PS 分层实例化、”分层 BDI”判定成立但非原文自封、”各层虽按层级排列激活却并发工作”原话、Müller 亲笔横/纵划界均见此短文。)
系列导航 · 意图即承诺,智能体即社会——自主性的第一个可计算答案
| Agent 考古 意图即承诺,智能体即社会 系列文章 | 关键词 |
|---|---|
| 导读:总览与阅读路线 | 四条线时间线 · 阶段二衔接 · 阅读路线 |
| 意图即带承诺的选择 | C&L 1990 · PGOAL · 持续承诺 |
| BDI 从理论到工程 | PRS · AgentSpeak · dMARS · 承诺策略 |
| 何为 Agent | W&J 弱/强概念 · AOP |
| 合同网 | Smith 1980 · 任务招标 · 囚徒困境 |
| 三种仲裁 | Z&R · PERSUADER · D&M |
| 联合意图部署 | STEAM · ARCHON · EV(通信) |
| 智能体如何找到彼此 | KQML · FIPA · JADE · MCP/A2A |
| 反应与慎思的和解 | TouringMachines · INTERRaP · 门控 |
| 意图编辑权 | 三时空同构 · 编辑权拉锯 · 自止焊接 |
| 自组织的实证与治理悖论 | Dochkina 2026 · BCG 治理悖论 |
| 当 LLM 住进 BDI | Ciatto 2025 · GenAI+BDI · 计划生成 |
