SHRDLU 与积木世界
一个能「理解」积木指令的早期自然语言系统
Terry Winograd 在 MIT 开发 SHRDLU,一个操作虚拟积木世界的自然语言程序。它能回答关于积木状态的问题、执行指令,并解释自己为什么拒绝某些操作。
1969 年,麻省理工学院的 Terry Winograd 做了一个实验,实验场地是一张虚拟的桌面:上面摆着几个积木——红的、绿的、蓝的,有方块有棱柱。程序叫 SHRDLU,取这个名字的人大概没想太多,这个看起来像乱码的词,来自当年印刷排版的「最常用字母表」残留。SHRDLU 能听懂终端里输入的英文句子,然后在这个小小的积木世界里执行。
关键是它执行的方式。Winograd 没有只做关键词匹配——那正是 1966 年 ELIZA 被质疑的地方。SHRDLU 把句子先做句法分析,再映射到积木世界里的具体对象和动作,然后调用一个规划器去决定怎么移动积木,最后真的在虚拟世界里操作。程序会自己把「把红积木放在绿积木上面」拆成「拿起红积木、走到绿积木上方、放下」,遇到堆叠还知道先移开上面的障碍。
更让人印象深刻的,是它能回答关于自身行动的问题。你问它「在放红积木之前,你先做了什么」,它能回顾自己刚才的动作序列;你说「把蓝积木放到红积木上,但不要碰绿的」,它会在规划时绕开绿色积木。这种把语言指令、世界状态和动作规划统一起来的做法,在当时几乎是全新的。程序限制在积木世界里,所以它「理解」的边界是清楚的——但这恰恰是它的力量:在受限领域里,语言理解可以做到完整。
SHRDLU 的影响持续了几十年。它让一代研究者相信:语言理解离不开一个关于世界的模型,光是处理文本表面的模式远远不够。这个信念在 1980 年代的知识表示研究里延续,也在 2010 年代以后世界模型、具身智能、规划与语言结合的讨论里反复回响。当今天的模型在模拟环境里把「把东西放到桌上」翻译成一连串动作时,它处理的正是 SHRDLU 当年划出的那条问题线。
当然,SHRDLU 也有它的天花板。它没有学习能力,所有「智能」来自精心编写的数据结构与规则;换一个领域,几乎一切都要重写。Winograd 后来也提醒,把积木世界的成功直接外推到现实世界,是危险的。这个诚实的边界,让 SHRDLU 成了一个耐看的坐标:它证明受限领域的完整理解可行,也提醒后来者,理解一旦脱离领域约束,难度会指数级上升。
今天回看 SHRDLU,它既像是自然语言处理的成人礼,又像是具身智能的早期预言。语言、世界状态、动作规划在同一个系统里咬合——这个组合在 1969 年的积木世界里第一次被完整演示,而它留下的问题——机器到底「理解」了什么——直到今天的大模型时代,依然没有彻底回答完。
In 1969 Terry Winograd ran an experiment at MIT. The stage was a virtual tabletop with a few blocks—red, green, blue, cubes and prisms. The program was called SHRDLU, a name that looks like noise and actually descends from the old hot-metal typesetting "most-used letters" phrase. SHRDLU understood English sentences typed at a terminal and executed them inside its small world.
The point was how. Winograd did not settle for keyword matching—precisely what ELIZA had been questioned over in 1966. SHRDLU parsed the sentence, mapped it onto concrete objects and actions in the blocks world, invoked a planner to decide how to move blocks, and actually manipulated the simulated world. "Put the red block on the green block" got decomposed into pick up, position, release; if a stack was in the way, the program moved it aside first.
What impressed people most was that it could answer questions about its own actions. Ask "before putting the red block on the green block, what did you do first?" and it reviewed its own action sequence. Tell it "put the blue block on the red block but do not touch the green one," and it planned around the green block. Combining language commands, world state, and action planning in one system was nearly new. Confined to the blocks world, the program's understanding had clear boundaries—which was precisely its strength: within a restricted domain, language understanding could be made complete.
SHRDLU's influence lasted decades. It convinced a generation that language understanding cannot be separated from a model of the world; surface pattern matching is not enough. That belief carried through knowledge-representation research of the 1980s and echoes today in discussions of world models, embodied AI, and planning fused with language. When modern models translate "put the thing on the table" into a sequence of actions inside a simulator, they are working the same problem line SHRDLU drew in 1969.
SHRDLU also had a ceiling. It had no learning; all the "intelligence" came from carefully written data structures and rules, and moving to another domain meant rewriting almost everything. Winograd himself cautioned that projecting the blocks-world success onto the real world was dangerous. That honest boundary makes SHRDLU an enduring coordinate: it proved complete understanding is possible in a constrained domain, and reminded later builders that understanding grows exponentially harder once domain constraints loosen.
Looking back, SHRDLU reads both as a coming-of-age for natural-language processing and an early prophecy of embodied intelligence. Language, world state, and action planning meshed in one system—first demonstrated completely in the 1969 blocks world. The question it left behind—what does a machine actually "understand"—remains unresolved even in today's era of large models.
展开完整事件档案人物、主题、模型与产品
- 人物
- Terry Winograd
- 模型
- —
- 产品
- —