第 2 章
推理机的缰绳
数字设备公司(DEC)马萨诸塞州梅纳德工厂,1978年深秋。一位配置工程师的办公桌上摊着一份VAX-11/780计算机订单。订单不是销售手写的——纸张边缘整齐,打印机字迹清晰,每一行都列着部件代码:中央处理器型号、内存板数量与槽位、终端接口类型、磁盘控制器规格、底板电缆长度。这份配置单由一台名为XCON的系统自动生成,从客户需求描述一路推导到零部件清单,中间没有人类插手。工程师的手指沿着条目逐行下移,在某个内存扩展板的型号旁边停住了。他抬起头,目光穿过办公室的荧光灯阴影,落在终端屏幕上。屏幕正显示着XCON的规则索引——编号、条件、触发动作。他没有敲键盘,只是拿起了笔。
在纸质配置单上,那条内存板的条目旁边,他画了一个问号。这个问号不会进入任何正式档案。十五分钟后,他会重新核验一遍系统配置逻辑,确认自己的判断,然后签上名字。签名是有法律效力的。DEC的流程规定:每一份XCON生成的配置单,必须经持证工程师审核签字方可进入生产。
机器负责推导,人负责承担后果。这个场景里没有对话,没有智能体与用户的自然语言交互,只有一份结构化清单的沉默校验。缰绳层已经运转起来了——它定义了推理的步骤、调用了规则、产出了可执行的结果。但权限环没有闭合。人在环中的位置,不是技术问题,而是商业责任问题。
二十世纪七十年代,人工智能换了一副面孔。把时间拨回十年前。1966年,魏岑鲍姆在MIT的终端上看着ELIZA用脚本扮演心理医生,然后在震惊中关掉了机器。他提出的问题——如何在壳的诱惑与地面真值的约束之间找到一条路——将在此后的六十年里,定义整个智能体缰绳层的全部奋斗与全部悖论。
而七十年代的专家系统,是这条路向上的第一个真正尝试。它不再模仿人类对话。它退进了一个更窄的领域,在那里,规则是可以穷举的,结论是可以验证的,推理的每一步都可以被审计。斯坦福大学医学中心,1972年。爱德华·肖特利夫(Edward Shortliffe)正在写他的博士论文。
他的项目叫MYCIN——一个用于诊断血液感染并推荐抗生素处方的计算机系统。肖特利夫不是程序员出身,他本科读的是数学,随后进入斯坦福医学院。正是这种双重训练,让他对一个问题格外敏感:医生凭什么相信一个计算机程序给出的治疗建议?这不是一个技术问题,至少一开始不是。
MYCIN的推理能力在当时并不算弱。它包含了大约四百五十条规则,每一条规则都由斯坦福的传染病专家手工编写,格式清晰:“如果:细菌的形态为革兰氏阴性杆状,且患者为免疫功能低下者,则:有证据表明细菌可能为假单胞菌属。”规则之间相互链接,系统通过反向推理——从假设出发,寻找支持或反驳的证据——逐步缩小诊断范围,最终给出抗生素推荐。
纯粹从准确率上看,MYCIN的表现不差。1979年发表在《美国医学协会杂志》上的一项评估显示,在血液感染脑膜炎的诊断与治疗推荐上,MYCIN的表现与斯坦福的传染病专家相当,在某些指标上甚至优于普通医生。但肖特利夫很清楚,准确率不是信任的充分条件。
医生面对的是一个黑箱——几百条规则在里面运转,结论从另一端出来,中间的过程不可见。如果医生不能理解系统为什么推荐四环素而不是青霉素,他就不会在处方单上签字。这不是保守,是职业伦理。没有医生愿意告诉病人:“是计算机让我这么做的。”
肖特利夫给出的答案,在当时看来几乎是一种技术上的奢侈。他给MYCIN加了一个解释子系统。这个子系统不改变推理逻辑本身。它只是在推理结束后,将系统使用过的规则,按照推导顺序,翻译成自然语言呈现出来。如果医生问“为什么推荐四环素”,MYCIN会回答:因为细菌类型为革兰氏阴性杆状,患者对青霉素过敏,根据规则第47条,在此情况下推荐四环素。推理链变成了可审计的文本。
这是缰绳层历史上一个里程碑式的发明。肖特利夫在1976年的论文中写道:“如果医生不能理解程序的推理过程,他们就不会接受程序的建议。解释能力不是附加功能,而是临床决策支持系统的基本要求。”这句话后来被反复引用,但它的核心洞见直到五十年后仍在被重新发现:信任不是靠准确率买来的,是靠可审计性一寸一寸挣来的。
MYCIN的结构揭示了一个更深层的设计原则。系统由三个独立的部分组成:知识库,包含四百五十条医学规则;推理机,负责按既定策略触发规则、推导结论;
解释模块,将推理过程翻译成可读文本。这三者之间定义了清晰的边界。知识工程师可以修改规则库而不触碰推理机;推理机的逻辑升级不需要改动解释模块;解释模块输出的文本,始终与推理链保持一一对应。这个结构,就是最早的缰绳层。
推理机本身不包含任何医学知识。它只是一套通用规则引擎,一套处理“如果-那么”语句的逻辑程序。真正赋予它专业能力的是知识工程师手工编码的规则库。知识是内容,推理机是协议。协议定义了事实如何被调用、规则如何被触发、推理步骤的顺序与边界。它把一堆死的事实条目,变成了可以决策的程序性构造。
这个分离的意义,在当时并不被充分理解。研究者们更关心的是规则怎么写、知识怎么表达、推理效率如何提升。但站在五十年后回看,推理机与知识库的分离,就是缰绳与模型的分离的第一次完整预演。推理机是一层结构性的壳,它不生产知识,但它决定了知识如何被使用。它定义了规则触发的条件、推理终止的标准、解释输出的格式。谁控制这层壳,谁就定义了整个系统的工作方式。
正如动物学家所观察到的,工具是“使用除动物自身身体或附肢以外的物理对象作为延伸动物物理影响力的手段”。MYCIN的推理机,正是人类智能向外部世界延伸的第一批“智能工具”之一——它不生产医学知识,但它延伸了医生处理复杂规则的能力。
MYCIN从未进入实际临床使用。这个事实,在人工智能史里通常被当作一个遗憾来叙述:技术很好,但落地太难。但这种叙事忽略了一个关键细节。
MYCIN之所以没有进入医院,不是因为医生不信任计算机,而是因为它的解释系统还不够好——不是解释的逻辑有问题,而是解释的边界太窄。医生可以追问“为什么推荐四环素”,MYCIN可以列出规则链。但如果医生继续追问“这条规则本身为什么成立”,系统就沉默了。规则之上的知识,那些存在于医学教科书、临床经验和同行讨论中的深层依据,从来没有被编码进知识库。知识库只包含表面规则,不包含规则背后的论证。解释系统只能展示推理步骤,不能展示知识本身的地基。
这是地面真值定律在窄域里的第一次显现。在血液感染的诊断领域,地面真值是存在的——细菌培养结果可以验证诊断,患者用药后的反应可以验证处方建议。但地面真值的存在,只是信任的必要条件,不是充分条件。
要让人类行动者接受机器的判断,还需要一个更长的链条:推理过程必须可审计,推理的前提必须可质疑,规则本身必须可修正。MYCIN只做到了第一步。这个缺陷,在肖特利夫后续的研究中被明确意识到了。
他在八十年代初转向了另一套系统——ONCOCIN,用于辅助肿瘤化疗方案的管理。这个系统在设计上做了根本性的调整:它不再试图替代医生的判断,而是将医生的决策流程本身作为建模对象。医生可以随时干预系统的推理过程,修改参数,覆盖建议。人在环中的位置,从MYCIN的“事后审核”变成了“实时参与”。权限环的闭合,在这一刻向前迈了一大步。
但这一步也让另一个问题浮出水面:实时参与意味着实时责任。如果医生可以在推理过程中随时改动参数,那么最终决策的责任归属就不再清晰。是系统推荐导致了结果,还是医生的干预导致了结果?这个问题在医疗法律领域从未被彻底解决,只是被悬置起来。1978年,卡内基梅隆大学计算机科学系。
约翰·麦克德莫特(John McDermott)正在处理一个比血液感染更庞大的问题。DEC公司是当时全球最大的小型计算机厂商。VAX-11系列计算机销往全球,每一台都需要根据客户需求定制配置:选多少内存、选哪块底板、用哪种电缆连接磁盘阵列。VAX的组件选项超过四百种,它们之间的兼容性规则极其复杂。一块内存板可能只支持特定的底板版本,某种磁盘控制器需要特定的电源模块,电缆长度受限于机柜的物理尺寸。销售人员在接单时经常出错,工程师在配置时反复返工。DEC每年因为配置错误造成的损失,据估算超过两千万美元。
麦克德莫特接下了这个任务。他带领团队将DEC的配置规则全部编码,构建了一套名为XCON的系统。到1980年,XCON已经包含了超过两千条规则,能够自动处理VAX计算机的完整配置流程。DEC把它部署进了梅纳德工厂的订单处理系统。XCON的结构与MYCIN如出一辙:知识库包含配置规则,推理机负责触发规则并推导结果。
但XCON不需要解释子系统。这是因为它面对的用户不是外行的病人,而是DEC自己的配置工程师。工程师不需要系统解释为什么推荐某块底板,他们自己就是规则的来源。他们审核XCON的输出,靠的是自己的专业知识,而不是系统提供的解释文本。
这个差异,揭示了一个关键的变量。在MYCIN的场景里,用户是医生,比系统更懂医学;在XCON的场景里,用户也是工程师,比系统更懂VAX。但医生和工程师的角色有一个根本区别:医生对病人的治疗负有最终责任,而工程师对配置单的审核,只是DEC内部流程中的一个节点。如果配置单出错,承担责任的是DEC公司,而不是工程师个人。责任链条的强弱,决定了信任计量的门槛高低。
XCON在1980年正式上线后,表现令人瞩目。配置准确率从人工处理的百分之六十五跃升至百分之九十八以上。DEC将配置工程师的团队从七十五人缩减到不到二十人,每年节省的成本超过四千万美元。
这是人工智能历史上第一次大规模的商业部署,也是缰绳层在狭窄领域内取得的第一场胜利。但权限环仍然没有闭合。每一份配置单仍需工程师签字。系统在技术上可以做到全自动,但DEC的流程不允许。流程文件编号PA-82-047,标题是“XCON生成配置的人工审核规范”,其中明确规定:所有XCON输出的配置单,必须经二级以上配置工程师审核并签字,方可进入生产环节;对于涉及新型号组件的配置,必须额外经高级工程师复核。
人在环中,不是因为技术做不到,而是因为商业责任不能转移。DEC可以向客户保证自己的计算机配置正确,但不能向客户解释“是人工智能系统配置的,我们只负责签字”。在那个年代,这样的解释不被接受。二十一世纪第二个十年的自动驾驶汽车,在这一点上将面临完全相同的困境。
XCON的规则库在持续膨胀。1980年上线时是两千条规则,到1984年已经超过了六千条。每一条新规则都对应着一种新组件或一种新兼容性约束。
知识工程师们不断添加规则,修改规则,修复规则之间的冲突。系统的维护成本开始急剧上升。麦克德莫特在1982年的一份内部备忘录中写道:“XCON的知识库正在变得不可管理。规则之间的交互已经超出了人工追踪的能力。每次添加新规则,我们都需要测试它是否与现有的六千条规则中的任何一条产生冲突。完全测试在数学上不可能。”
这是静态知识库的刚性开始暴露的第一个信号。MYCIN的四百五十条规则,可以由一个团队手工维护。XCON的六千条规则,已经开始触及手工维护的极限。
但规则库的膨胀不是XCON独有的问题,它是所有基于人工编码知识的系统都必然面临的命运。世界本身在变化——VAX的组件在更新、兼容性规则在调整、新的客户需求在涌现——而知识库只能通过人工编码来追赶这种变化。知识工程师写规则的速度,永远跟不上世界变化的速度。这个缺陷,在八十年代后期将变成致命伤。但敏锐的观察者已经可以从一些细节中,嗅到危机正在积聚。
1984年,XCON的配置准确率从百分之九十八降到了百分之九十五。三个百分点的下滑,在统计上不算显著,但在商业上意味着一千二百万美元的增量损失。DEC的内部审计发现,错误主要集中在新增的配置选项上——那些规则最密集、交互最复杂的区域。知识库的刚性,正在吃掉它自己。肖特利夫在斯坦福的办公室里,比麦克德莫特更早地意识到了这个问题。
MYCIN的医学知识库,起初只覆盖了血液感染领域。肖特利夫和同事们曾经设想,可以将这套推理机应用于其他医学领域——只需要替换知识库中的规则即可。他们甚至给这个设想起了一个名字:EMYCIN,即“空MYCIN”——一个抽空了所有医学知识的推理机外壳,等待填入新的规则。这个设想,在理论上完全成立。推理机与知识库的分离,本来就意味着推理机可以独立于知识库而存在。EMYCIN本质上就是最早的“壳”——一个没有内容的推理协议,一个等待填入领域知识的缰绳层。
但实践中,EMYCIN从未真正成功。问题不在于推理机不够通用,而在于知识库的结构本身不具备可移植性。血液感染的诊断规则,是按特定症状、特定细菌类型、特定药物反应来组织的。将这个结构套用到心脏病或肿瘤诊断上,需要对规则的组织方式做根本性改造。知识工程师们发现,他们不是在“填入新规则”,而是在“重新设计知识库的架构”。推理机可以是通用的,但知识库不能。
知识是对世界的建模,而世界是分领域的,每个领域的结构都不同。这个发现,对后来的缰绳层设计产生了深远影响。它意味着,壳的通用性是有上限的——壳可以定义推理的协议,但不能定义知识的协议。知识的结构,必须由知识工程师根据每个领域的具体情况来设计。
而这正是XCON的困境所在。XCON的推理机是通用的,可以处理任何“如果-那么”规则。但它的知识库结构——那些规则的组织方式、优先级排序、冲突解决策略——是围绕VAX的具体组件和兼容性关系建立起来的。当VAX的产品线更新时,不仅是规则需要修改,规则的组织结构也需要修改。知识库的结构刚性,比规则本身的刚性更大。
这个教训,直到四十年后才被重新发现。当LangChain的工程师们在2023年试图为不同的API设计统一的工具调用接口时,他们遇到了完全相同的问题:工具的结构可以标准化,但每个工具的使用方式、失败模式、权限边界,都依赖于具体场景。通用壳的诱惑,总是撞上领域知识的坚硬现实。
XCON在八十年代中期的成功,让另一家公司注意到了专家系统的商业潜力。这家公司叫Teknowledge,成立于1981年,创始人是斯坦福的几位人工智能研究者,其中包括MYCIN项目的早期参与者。Teknowledge的商业模式很清晰:出售专家系统开发工具,也就是“壳”,让客户可以自己搭建专业领域的推理系统。
这是缰绳层商业化的第一次尝试。Teknowledge的产品名为S.1,一套通用推理机,附带知识库编辑器和解释模块。客户可以购买S.1,然后由Teknowledge的顾问团队帮助他们将内部的专业知识编码成规则。客户无需从头搭建推理引擎,只需专注于“把知识写进去”。
Teknowledge在1983年上市,股价一度飙升。投资者看到了一个诱人的故事:人工智能不再是一个实验室项目,而是一种可以出售的软件产品。壳是通用的,每个行业都可以用。制造业可以用它来做质量检测,金融业可以用它来做风险评估,电信业可以用它来做故障诊断。
但S.1的销售很快遇到了阻力。客户发现,购买壳只是成本的开始。知识编码本身需要大量的人力——知识工程师必须与客户内部的专家反复沟通,将专家的隐性知识翻译成显式规则。这个过程耗时数月甚至数年,费用远超壳本身的售价。而且编码完成之后,知识库的维护又是一笔持续的开销:规则需要更新,冲突需要修复,新知识需要不断添加。
Teknowledge的客户成功地用S.1搭建了一些专家系统,但投资回报率始终低于预期。到1985年,公司股价已经大幅下跌。1986年,Teknowledge被迫转型为咨询公司,放弃了壳产品的独立销售。
这是缰绳层的第一场商业失败。它揭示了一个铁律:壳本身不值钱,值钱的是壳里装的知识。而知识的获取与维护,本质上是一项人力密集型服务,不是一件可以规模化复制的软件产品。S.1的通用推理机,技术上没有问题,但商业上无法支撑一家上市公司的估值。
这个教训,在2000年代的商业规则引擎市场,以及2023年的LangChain商业探索中,都将被重新遭遇。1984年,一家名为IntelliCorp的公司从斯坦福的专家系统生态中独立出来,走了一条不同的路。它的产品KEE(Knowledge Engineering Environment)不只是一套推理机,而是一个完整的知识工程环境,包含了图形化的知识编辑器、规则调试工具、模拟推理引擎。
IntelliCorp的创始人汤姆·凯勒(Tom Kehler)意识到,壳的价值不在于通用性,而在于降低知识编码的成本。KEE的设计目标,是让领域专家自己——而不是计算机科学家——能够将知识编码进系统。这是一个重要的方向修正。
Teknowledge的模式是“我们帮你写规则”,IntelliCorp的模式是“给你工具,你自己写规则”。前者依赖知识工程师,人力成本不可缩减;后者将编码工作转移给客户,理论上可以规模化。但KEE也遇到了自己的瓶颈。
领域专家——医生、工程师、金融分析师——很少有人愿意自己编码规则。他们习惯了在自己的专业领域里工作,用自然语言表达判断,而不是将判断拆解成“如果-那么”语句。知识编码所需的抽象能力,与领域专家日常工作的思维模式之间存在巨大鸿沟。
IntelliCorp最终发现,KEE的主要用户群体,仍然是知识工程师,而不是领域专家本身。降低编码成本的目标,要到将近四十年后才取得实质性进展。2023年,当大语言模型能够将自然语言指令自动转化为结构化工具调用时,这个难题才真正开始松动。但那时,缰绳层已经换了一副面孔。
XCON继续运行,知识库继续膨胀,准确率继续缓慢下滑。到1987年,DEC的配置规则已经超过一万条。麦克德莫特和他的团队,在卡内基梅隆的计算机科学大楼里,维护着这个越来越庞大的规则集合。每一次新增规则,都需要进行回归测试,而完全测试的成本已经高到不可接受。团队只能依赖抽样测试,赌新规则不会与旧规则产生致命冲突。
1987年夏天,一个配置错误通过了测试,进入了生产环节。错误导致一批VAX计算机的底板与所选内存板不兼容,客户收到机器后无法加电。返工成本超过一百万美元。DEC的内部调查发现,错误源于两条规则之间的一个隐蔽冲突:一条规则在某种条件下优先某个底板版本,另一条规则在另一种条件下禁止该底板与特定内存板的组合,但推理机在特定输入顺序下没有触发后一条规则。
这是一个典型的规则交互问题。在六千条规则时,这种冲突可以被人工追踪;在一万条规则时,它已经超出了人类工程师的认知极限。知识库的复杂性,开始以非线性的方式吞噬系统的可靠性。
XCON没有被关停。DEC在1988年对规则库进行了大规模重构,将规则按模块重新组织,减少了交叉依赖。准确率回升到了百分之九十七。但重构的成本——数十名工程师数月的劳动——向所有人发出了一个明确的信号:基于静态知识库的推理系统,其维护成本将随着规模增长而失控。
这个信号,在八十年代末被人工智能寒冬的阴云笼罩,但它所揭示的结构性问题,从未消失。1989年,肖特利夫在斯坦福主持了一个回顾性研讨会,主题是“MYCIN的遗产”。与会者包括MYCIN的早期研究者、XCON的开发者、Teknowledge和IntelliCorp的前高管,以及一批正在转向其他方向的人工智能研究者。会议记录后来以非正式形式流传,其中一段讨论被一位与会者记录下来:
“我们犯了一个错误,”肖特利夫说,“我们以为解释系统是信任的终点。实际上,它是信任的起点。真正的信任,建立在用户可以质疑规则本身、可以修改规则、可以在系统出错时追溯责任归属的基础上。这些都不是技术问题,是制度问题。”
这段话触及了缰绳层设计的一个核心命题。MYCIN的解释子系统,是一个技术解决方案:它让推理过程变得可见。但信任的建立,需要比可见性更多的东西。它需要用户有权干预系统的工作方式,需要系统在出错时能够追溯责任,需要用户群体对系统的运作逻辑有集体的理解。这些条件,在MYCIN的设计中从未被全面考虑,在XCON的部署中只是部分实现,在Teknowledge的商业模式中完全缺席。
专家系统在八十年代后期的崩塌,被普遍归因于人工智能寒冬的降临——资金撤出、预期崩溃、产业收缩。寒冬确实是原因之一,但它不是全部原因。专家系统自身的结构缺陷——静态知识库的刚性、知识编码的高昂成本、信任机制的狭隘设计——在寒冬到来之前就已经暴露。寒冬只是加速了清算,而不是制造了问题。DEC的梅纳德工厂,1990年。XCON仍在运行,但它的命运已经与DEC自身绑定在一起。
DEC在八十年代后期开始失去小型计算机市场的领先地位,个人计算机和工作站的崛起正在侵蚀VAX的市场份额。1991年,DEC录得十亿美元的季度亏损,公司开始大规模裁员。XCON的维护团队在裁员中受到重创。知识库的更新速度放慢,新增规则的测试周期拉长,配置错误的频率开始回升。
1992年,DEC将XCON的维护外包给第三方服务公司,实质上放弃了对这套系统的持续投入。此后的几年里,XCON逐渐退出了DEC的订单流程,被更简单的配置工具和人工审核所取代。
这是一段寂静的死亡。没有新闻稿,没有纪念文章,没有一个明确的下线日期。XCON就这样被遗忘了,连同它那一万条规则、它的解释系统、它的推理机,以及它在梅纳德工厂的纸张上留下的那些工程师签名。
但它的结构——推理机与知识库的分离、解释系统作为信任接口、壳的诱惑与刚性——在此后的三十年里从未消失。它们只是换了名字,换了技术载体,换了商业环境。
当2023年的函数调用API将工具选择逻辑标准化时,当2024年的MCP协议试图定义智能体与工具的通用接口时,当LangChain的工程师们争论抽象层是否过度设计时,1970年代专家系统所揭示的那些问题——信任如何计量、协议谁来定义、壳的边界在哪里——正在被重新发现。魏岑鲍姆在1966年关掉终端时提出的那个问题,在七十年代找到了一个局部的答案:在窄域里,推理链可以成为地面真值,解释系统可以成为信任的计量单位,壳可以从装饰变成生产工具。
但这个答案是有代价的:窄域之所以窄,是因为知识可以被穷举成规则;而一旦知识不再能被穷举,壳就失去了它的地基。这个世界,远比血液感染诊断和VAX计算机配置要广阔。
专家系统没有回答的,是如何在开放世界里保持壳的有效性。这个问题,将在此后的三十余年里悬置,等待另一项技术的到来,让壳重新获得进攻的许可。