框架问题(Frame Problem)指:一个智能体在行动或推理时,必须判断哪些东西没有变,而这件事在开放世界里几乎无法穷尽。
上世纪六十年代末,约翰·麦卡锡(John McCarthy)等人在尝试用逻辑描述"动作"时撞上了它。你想让程序知道"把积木 A 从桌上搬到地上"之后世界是什么样,于是写规则:A 的位置变了。但程序还需要知道:积木 B 没动、桌子没动、灯没灭、房间没塌……每写一个动作,就要补上一大堆"其他一切照旧"的公理。动作越多,"没变"清单越长,系统很快被淹没。这些"其他一切照旧"的规则被称为框架公理,麻烦本身就叫框架问题。
打个生活化的比方:你在厨房切菜。刀碰到砧板,你知道冰箱里的牛奶不会因此变酸,楼下邻居不会因此搬家,太阳不会因此熄灭。你不需要在脑子里列一千条"没发生的事"。人类默认世界绝大部分保持原样,只盯住少数变化。计算机没有这种默认,它需要被明确告知哪些状态该更新、哪些不该——可"哪些相关"又取决于当前目标和情境,无法事先固定。
框架问题和几个相邻概念容易混:
| 概念 | 关心什么 |
|---|---|
| 框架问题 Frame Problem | 行动之后,哪些状态没变,说不完 |
| 限定问题 Qualification Problem | 行动要成功,需要哪些前提,列不完(划火柴要干燥、有氧、没风……) |
| 常识推理 Commonsense Reasoning | 用日常默认知识做推理,上述两者都是它的硬骨头 |
对从业者来说,框架问题不会因为模型变大就自动消失。做规划、世界模型、智能体(agent)时,用差分状态、事件驱动更新、稀疏注意力,本质上都是在"猜哪些没变",而不是真的知道。在开放环境里猜错,就会表现为"忘记门已经开了"或者"以为挪动杯子会改变天气"。对普通人来说,它提醒我们:协作中那些没说出口的"其他条件不变",既是效率来源,也是误解来源。把变量和常量说清楚,往往比说更多话有用。
