Brooks 包容架构(1986)
架构原文:Rodney A. Brooks, 1986,A Robust Layered Control System for a Mobile Robot,IEEE Journal of Robotics and Automation 2(1): 14–23(DOI)。配套论辩:Brooks, 1991,Intelligence Without Representation,Artificial Intelligence 47: 139–159。1986 年一文给出可实现的分层与模块语言,1991 年一文论证为什么不以中央表征为分解主轴。
这个概念是什么
包容架构(subsumption architecture)是一种移动机器人控制结构。它不按「感知、建模、规划、执行」这种功能管道切分系统,而按机器人对外应表现出的能力层级切分。每一层是一组异步的有限状态模块,模块之间用低带宽「导线」传递消息,没有共享全局内存。
较高层可以通过**抑制(suppress)下层的输入、或禁止(inhibit)**下层的输出,在需要时接管行为。被包容的下层并不被拆除,在高层未能及时给出结果时仍继续产生较低能力层级上的合理行为。只完成第 0 层时,就已经是一台可以运行的机器人;以后增加层级,不必修改已经调试好的下层。
这是具身、反应式路线上的代表性结构。按 边界 一节的划分,物理机器人不进入 LLM Agent 主叙事。它出现在前传中,是因为「Agent 是否必须先有完整世界模型再行动」这条分叉,在 1986 年已经被明确写出来。
论文的主要内容(1986)
要解决的问题
完全自主的移动机器人必须在边界条件快速变化、传感器噪声很大、传感器读数与所需物理量之间没有干净解析映射的环境中实时控制。要求包括:多重目标(可能冲突,相对重要性随情境变化);多传感器(误差与适用范围难以解析刻画);鲁棒(部分失效时仍有合宜行为);可扩展(增加传感器与能力时不应把原有能力拖垮)。
当时的常见做法是把问题切成功能竖条:传感、映射成世界表征、规划、任务执行、电机控制。要让机器人动起来,每一段都必须先实现。Brooks 改成按对外行为做水平切分。
能力层级
能力层级是对「机器人在将遇到的全部环境中应表现出哪一类行为」的非形式规定。高层级蕴含对行为集合的更强约束,并且包含所有更低层级。文中用作工作指引的层级是:
| 层级 | 能力 |
|---|---|
| 0 | 避免与物体接触(物体静止或运动均可) |
| 1 | 无目的游荡且不碰撞 |
| 2 | 看见远处可到达的地方并前往,从而「探索」 |
| 3 | 建立环境地图并规划地点之间的路径 |
| 4 | 注意「静态」环境中的变化 |
| 5 | 按可识别物体推理,并执行与物体相关的任务 |
| 6 | 制定并执行改变世界状态的计划 |
| 7 | 推理物体行为并据此修改计划 |
构造步骤:先实现并彻底调试达到第 0 层能力的完整控制系统,之后不再修改它。再实现第 1 层:它可以观察第 0 层的数据,并向第 0 层内部接口注入数据以抑制原有数据流。第 0 层继续运行,并不知晓上层有时会干扰其数据路径。更高层依此类推。
层的内部结构
每一层由若干小处理器(模块)构成。每个模块是带实例变量的有限状态机,可以保存 Lisp 数据结构。模块完全异步,监视输入线、向输出线发送消息;消息不握手、不确认,允许丢失。层内没有中央控制器。高层对下层的介入只有三种导线终点:接到输出上的禁止、接到输入上的抑制(抑制信号同时作为替代输入)、接到模块的 reset。
模块的状态有四类:输出消息后转入新状态;对实例变量做副作用后转入新状态;按谓词条件分支;事件分派(等待输入到达或延时)。文中给出第 1 层 Avoid 模块的定义:输入为声呐推算出的斥力与期望航向,求和后若力足够大,则向电机发出修正后的运动命令。
第 0 层与第 1 层实例
第 0 层保证机器人不与物体接触。声呐读数经滤波形成以机器人为中心的障碍图。Collide 若发现正前方有物体则发出 halt。Feelforce 把每个检测到的物体当作随距离平方衰减的斥力并求和。Runaway 在合力显著时命令转向。Turn 与 Forward 与实体机器人通信。文中报告:在数小时自主运行中,实体机器人未与静止或运动障碍碰撞(运动障碍被控制为慢速)。
第 1 层加上无目的游荡。Wander 每隔约十秒产生新航向。Avoid 把第 0 层的力与该航向合成。该输出抑制 Runaway 进入电机模块的信号,从而在有航向可考虑时包容第 0 层的逃逸计算。接线图是在第 0 层图上增加模块与导线,不改动原有模块。
第 2 层(文中已开始实现)用视觉选择有兴趣的地点,沿自由空间走廊伺服,同时仍由声呐处理局部障碍。
设计原则与 1991 年的论辩
1986 年一文列出若干工作假设,其中包括:复杂行为不必来自复杂控制系统,而可以是复杂环境的反映;接口一旦复杂到可与被连接部件相比,就应重做分解;不用绝对坐标系而用关系地图。1991 年 Intelligence Without Representation 把分解原则说得更明确:智能系统的根本分解不是必须经由表征互相接口的信息处理单元,而是并行的活动产生器,它们各自通过感知与行动直接与世界接口。中央与外围的区分在这种看法下被取消。
关键术语
| 术语 | 在这篇论文里的含义 |
|---|---|
| 能力层级 | 对外部行为类别的规定;高层包含低层 |
| 包容 | 高层通过抑制输入或禁止输出接管,下层继续运行 |
| 模块 | 异步有限状态机,用消息通信,无全局共享内存 |
| 抑制 / 禁止 | 替代输入、丢弃输出的两种介入 |
| 功能分解 vs 行为分解 | 按内部功能竖切,或按对外行为横切 |
和 AI Agent 的关系
包容架构按对外行为分层控制机器人,高层抑制下层。它证明 Agent 不必先建完整世界模型。
它的循环由传感器与电机持续驱动,层与层异步并行,动作与观察都在其中。决策核心是有限状态布线;没有中央世界模型,也没有先搜索出来的完整计划。
STRIPS 与后来的思维链、ReAct 属于先形成(或边形成)对下一步的显式推理、再行动的路线。包容架构给出明确的反例:可以没有中央世界模型,仍然构成当时文献中的自主 Agent(机器人控制意义下)。AI Agent 定义要求多步循环和对环境行动,不要求必须先产出完整符号计划。这一页防止把「先规划再执行」写成 Agent 的唯一定义条款。
2024 年以后的 Computer Use、浏览器操作在机制上是「根据当前观察选择动作」,与符号规划器不同,也与 1986 年的有限状态布线不同,不能写成包容架构的产品后裔。具身机器人整体仍划为相邻领域。