乐于分享
好东西不私藏

AI发展史 | 约瑟夫·恩格尔伯格:他为机器装上了身体,只等一个叫智能的灵魂

AI发展史 | 约瑟夫·恩格尔伯格:他为机器装上了身体,只等一个叫智能的灵魂

“约瑟夫·弗雷德里克·恩格尔伯格(Joseph Frederick Engelberger,1925年7月26日-2015年12月1日)是一位美国物理学家、工程师及企业家,美国机器人学家,生于纽约布鲁克林德国移民家庭,毕业于哥伦比亚大学机械工程专业。他因研制出世界上第一台工业机器人‘尤尼梅特’(Unimate),并创立了全球首家机器人公司,而被公认为‘机器人之父’。”

01. 人物介绍

我们活在一个奇妙的时代。
你可以对着手机说一句话,它就能帮你订餐、写诗、翻译一门外语。你可以看着屏幕上的AI画出以假乱真的图像,写出比大多数人都流畅的文章;你可以和ChatGPT聊到深夜,恍惚间觉得对面坐着一个真实的人。
但如果你让它帮你倒一杯水,它就傻了。
它没有手,没有胳膊,没有一副能在物理世界里行走、抓握、平衡的身体。它像一个被困在玻璃瓶里的天才,什么都懂,却什么都做不了。
这让我想起一个人,
一个跟AI研究者们走了完全不同方向的人。
当所有人都忙着给机器装大脑的时候,他在默默地给机器装身体。当人工智能在云端被想象成一种“会思考的幽灵”时,他在车间里拧螺丝、焊电路、调试伺服电机,一遍又一遍地让一条铁胳膊做出人类手臂的动作——抓、放、旋转、抬起、放下。
他的名字叫约瑟夫·恩格尔伯格
他被称为“机器人之父”。
但他更准确的称谓,或许是“给人工智能造了一个家的人”。
没有他,今天的具身智能也许就只是一堆飘在论文里的公式。没有他,也许所有关于“机器人走进家庭”的畅想,都只是一句漂亮话。
他造好了身体,然后安静地等了几十年,终于等到了那个配得上这副身体的智能。
以下,是他的故事。
一个关于拆东西的小孩、一条两吨重的铁胳膊、一个在医院走廊里默默送药的圆筒机器人,和一个始终相信“机器人不是来取代人,而是来成全人”的老头的故事。

一、布鲁克林的拆家少年

1925年7月26日,纽约布鲁克林。
一个普通的移民家庭里,约瑟夫·恩格尔伯格出生了。父亲开着一家电器店,母亲在家操持家务。那时候的布鲁克林,街道上还跑着马车,孩子们在消防栓喷出的水雾里奔跑,收音机是最新潮的家电。
小约瑟夫有一个让父母头疼的习惯:他喜欢拆东西。
不是搞破坏。他是真的想弄明白——这个旋钮为什么能调出声音?那根电线把什么传到了喇叭里?这个齿轮转一圈,那边为什么会动一下?
收音机拆了,闹钟拆了,母亲厨房里的搅拌器,他也拆过。
(图片来源:AI生成)
母亲没有骂他,她只是默默地把拆散的零件收在一个纸盒里,等着他装回去。大多数时候,他都能装回去;偶尔装不回去,母亲就说:“下次你就会了。”
多年以后,白发苍苍的恩格尔伯格回忆起这段童年时光,说了一句很有意思的话:
“我从小就相信,任何东西都可以拆开,也都可以重新装好。机器是这样,也许有一天,人也是这样。”
当然,他没有去“拆开”人。但他一生都在琢磨一件事:怎么把人从辛苦的、重复的、危险的工作里“拆”出来,然后把这份工作交给机器。
这个念头,像一颗种子,埋在了布鲁克林那个总是飘着机油味和焊接气味的电器店里。

二、物理课上,他在想了,另一件事

二战结束了。
恩格尔伯格从海军退役,穿上便装,走进了哥伦比亚大学的物理系教室。
那是物理学的黄金年代。
原子弹的蘑菇云还没散尽,晶体管即将在贝尔实验室诞生,相对论和量子力学已经彻底改写了人类对宇宙的认知。教授们在黑板上写满公式,推导时空的曲率、粒子的自旋、宇宙的起源。
教室里鸦雀无声,学生们屏住呼吸,试图理解这个世界的底层逻辑。
恩格尔伯格也在听,他听得很认真,成绩也很好。
但他的脑子里,总有一个不太“物理”的念头在打转:
“这些伟大的理论,能不能变成一种摸得着、看得见的东西?一种真的能帮人做事的东西?”
他想到了机器。
不是当时工厂里那种只会“转”的电动机器——那种机器从一百年前就有了,它们只会重复同一个动作,像一个永远在唱同一句歌词的唱片机。
他想要的是另一种机器。
更灵巧的,更像人手的,能根据指令做不同事情的。今天可以抓起这个,明天可以焊接那个,后天可以搬动另一种形状的零件。
一种“万能”的机器。
那时候还没有“机器人”这个词。捷克作家恰佩克在1920年的剧本《罗素姆万能机器人》里造过这个词,但大多数人觉得那只是科幻——会动的铁皮人,像《绿野仙踪》里的铁皮樵夫一样,童话而已。
恩格尔伯格不觉得是童话。
他后来说:
“我是一个工程师。工程师的工作,就是把科学家脑子里觉得‘可能’的东西,变成工厂里、医院里、家里‘能用’的东西。科学问‘为什么’,工程师问‘怎么才能’。”
他的“怎么才能”,在心里憋了很多年。

三、一场改变命运的酒会

1956年,康涅狄格州,一个工程师聚会的酒会上。
杯盏交错,人声喧嚷。有人在高谈阔论导弹技术,有人在争论哪种汽车发动机更高效。恩格尔伯格端着酒杯,在人群中穿行,礼貌地听着,礼貌地微笑,心里其实有点无聊。
他差点就没来,朋友劝他说“有几个有意思的人会到场”,他才勉强来了。
然后,他遇到了乔治·德沃尔。
(图片来源:AI生成)
德沃尔也是个工程师,话不多,但一说起自己的专利,眼睛就亮了起来。他从口袋里掏出一张皱巴巴的图纸,铺在桌子上,指着上面那个粗线条画出的机械臂,说:
“这个东西,可以按照程序做不同的动作。你给它一套指令,它就做这个。换一套指令,它就做那个。它不挑活。”
恩格尔伯格看着那张图纸,酒差点洒了。
他后来这样描述那一刻的感受:
就像一个一直在找宝藏的人,忽然发现宝藏就在自己脚底下。不,比那更强烈——是我一直在想、一直在找、一直觉得应该存在的东西,忽然被人画了出来,就摆在我面前。”
两个人聊了很久。德沃尔说他的装置现在还很粗糙,只能做最简单的重复动作,精度也不够高。恩格尔伯格说没关系,我们可以改进,我们可以让它变快、变准、变可靠。
酒会结束的时候,恩格尔伯格做了一个后来被证明是改变世界的决定。
他辞掉了稳定的工作,凑钱买下德沃尔的专利,然后成立了一家公司,公司名字叫Unimation。
Universal Automation,通用自动化。
他给它取这个名字的时候,心里想的是:总有一天,自动化的机器会像电一样普及,走进每一座工厂、每一家医院、每一个家庭。
那时候,还没有人把“自动化”和“通用”这两个词放在一起过。
他是第一个。

四、“你教它做什么,它就做什么”

(图片来源:AI生成)
1959年,Unimation公司的车间里,第一台原型机终于动了起来。
它长得很不好看,两吨重,像一个粗壮的铁柜子上面长了一条单薄的胳膊。胳膊的动作很慢,慢到让人着急——从一个点移动到另一个点,要好几秒钟。但它的精度高得惊人,误差不超过万分之一英寸,比当时最熟练的工人还要准。
恩格尔伯格站在它面前,像一个父亲看着刚出生的孩子。
有人在旁边问了一句很实际的话:
“它能做什么?”
恩格尔伯格转过头,说了一句后来被反复引用的话:
“你教它做什么,它就做什么。”
这句话,在今天听起来平淡无奇,但在1959年,它是革命性的。
以前的机器是“做死的”——出厂时能做什么,一辈子就只能做什么。一台冲压机永远只能冲压,一台注塑机永远只能注塑,你没法让它们换工作。
但Unimate不一样,它是“可教的”。你换一套程序,它就换一份工作。今天是搬运工,明天是焊工,后天是质检员。
“可编程”这三个字,就是机器人区别于普通机器的本质。
也是后来人工智能得以“住进”机器人的第一把钥匙。
你可以有全世界最聪明的算法,但如果它控制的身体是不可编程的、不能灵活改变动作的,那它就是一个被困在铁壳里的天才。
恩格尔伯格造的不是机器人。
他造的是一个平台,一个容器,一个可以容纳未来任何智能的物理载体。

五、“这个东西,比人强的地方是它永远不会累”

1961年,新泽西州,通用汽车的一个压铸车间。
这里有一道工序,是所有工人都不愿意干的活。
刚从压铸机里取出来的金属件,滚烫,红彤彤的,表面温度高得能烤焦手套。工人要用铁钳夹住它,搬到旁边的另一台机器上,对准,放好,然后赶紧退开,等下一件。
一个班次下来,腰酸背痛,手上全是烫伤的水泡。工人们轮班干这个岗位,每个人都皱着眉头,每个人都想调走。
Unimate来了。
(图片来源:AI生成)
它被安装在压铸机旁边,那条铁胳膊伸出去,稳稳地夹起滚烫的铸件,转过一个弧线,对准,放下。精度始终如一,速度不快不慢,不慌不忙。
它不知道什么是烫,不知道什么是累,不需要喝水,不需要上厕所,不会因为无聊而分心,也不会因为重复了太多次而烦躁。
一天二十四小时,一周七天,一年三百六十五天。
只要不停电,它就在那里干活。
工人们远远地看着这个铁家伙,心情很复杂。
有人害怕——这东西会不会有一天把我们全取代了?
有人好奇——它到底是怎么动的?谁在控制它?
也有人松了一口气——终于不用再受那份罪了。
一个老工人,满头白发,手上的茧子厚得像一层铠甲。他走到恩格尔伯格面前,看了他很久,然后说了一句话。这句话,恩格尔伯格记了一辈子:
“先生,这个东西很笨,但它比人强的地方是——它永远不会累。”
恩格尔伯格后来在很多场合讲过这件事。
他说,那句话让他明白了一个朴素的道理:
“机器人的意义,不是取代人,而是把人从‘像机器一样工作’的处境里解放出来。人应该去做只有人才能做的事情——创造、感受、爱、休息。重复的、危险的、无聊的事情,交给机器去做。”
这个道理,在今天听起来像常识。
但在1961年,它是石破天惊的。

六、“在美国,我是先知”

Unimate在通用汽车工厂里稳定运行的消息,在工程界引起了一阵小小的轰动,但也就只是一阵小小的轰动。
恩格尔伯格带着他的机器人,在美国到处推销。他去底特律的汽车城,去匹兹堡的钢铁厂,去芝加哥的电子厂。他在会议室里放幻灯片,放视频,一遍又一遍地解释“可编程”是什么意思,“自动化”能省多少钱。
工厂主们听了,点点头,然后说:太贵了。
一台Unimate要好几万美元,1960年代的好几万美元,相当于现在的几十万美元,对大多数工厂来说,这笔账算不过来。
工会的人也在旁边盯着——这东西要是普及了,我的会员怎么办?他们组织工人开会,说“机器人会抢走你们的饭碗”,电视上也开始播出科幻片里机器人造反的情节。
老百姓心里犯嘀咕。
恩格尔伯格四处碰壁。
他后来自嘲地说:
“在美国,我是先知。但先知在自己的家乡总是不受欢迎的。”
这句话里有一半是自嘲,有一半是真话。
他太超前了,超前到他的客户还没准备好,超前到整个社会还没准备好,超前到“自动化”这个词还没进入大众词汇。
但他没有放弃,他只是在等,等一个机会,或者等一个地方。

七、漂洋过海的铁胳膊

机会来了,但不是在美国。
在地球的另一边,战后的日本正在拼命重建。
工厂被炸毁了,基础设施被摧毁了,劳动力严重短缺。但日本人有一种可怕的学习能力和执行力——他们渴望用一切方式提高效率,追上西方。
当恩格尔伯格的机器人在美国无人问津的时候,一家叫川崎重工的日本公司悄悄找上了门。
他们想引进Unimate的技术。
恩格尔伯格几乎没怎么犹豫就同意了。
(图片来源:AI生成)
他后来亲自飞到日本,在川崎重工的工厂里,手把手地教他们怎么生产、怎么安装、怎么维护。他不藏私——他把自己知道的全部教给了他们。
有人问他:你不怕他们学会了,然后超过你吗?
他说:
“这个技术是全人类的,不是我的。谁先用它造福于人,我就替谁高兴。”
这句话听起来很大方,但背后有一个更现实的原因:恩格尔伯格看到了日本市场的巨大潜力。美国人还在犹豫的时候,日本人已经准备好了。
后来的事情,大家都知道了。
日本人学得很快,不只是学技术,他们还学会了一种理念——机器人不是怪物,是伙伴。在日本的文化里,机器人甚至带着某种善意和可爱。《铁臂阿童木》里的机器人小男孩、《哆啦A梦》里的机器猫,都是善良的、乐于助人的形象。
几十年后,日本成了机器人王国。工厂里到处都是机械臂,精度越来越高,体积越来越小,成本越来越低。汽车工业、电子工业,靠着机器人实现了飞跃。
恩格尔伯格被请到日本授勋,他站在领奖台上,头发已经花白了,但笑容还是年轻的。他说:
“美国人发明了机器人,日本人把它变成了一个产业。”
台下掌声雷动。
他心里有没有一丝遗憾?也许有。毕竟,他更希望这个产业在美国先开花。
但他不是那种会沉浸在遗憾里的人。
在那趟日本之行中,他看到了更远的东西。
他在想:既然机器人可以在工厂里普及,那能不能走出工厂?能不能走进医院、走进学校、走进家庭?
这个念头,像另一颗种子,在他心里开始发芽。

八、五十八岁,重新出发

1983年,一个让所有人都意外的决定。
恩格尔伯格把自己一手创办、倾注了二十多年心血的Unimation卖掉了。
那一年他五十八岁。
五十八岁,大多数人在这个年纪,会选择拿着钱退休。在康涅狄格州的乡下买一栋带花园的房子,种花养草,打打高尔夫,带带孙子。偶尔接受一下采访,讲讲当年的故事,享受“机器人之父”的荣光。
恩格尔伯格没有。
(图片来源:AI生成)
他立刻创立了一家新公司——TRC。
TRC是“Transition Research Corporation”的缩写。“Transition”——转型。
他要转型。
记者问他:转型到哪里去?
他说:“服务机器人。”
记者又问:什么是服务机器人?
他说:“能帮人做家务、照顾病人、陪伴老人的机器人。不是在工厂里干活的那种,是在家里、在医院里帮忙的那种。”
那时候,“服务机器人”这个词还没有被正式发明出来。
他又一次走在了所有人前面。
有人劝他:工业机器人的市场才刚刚开始爆发,你现在退出太可惜了。
他说了一句后来被很多人引用的话:
“我造过替人干活的机器人,现在我想造陪人生活的机器人,后者让我更兴奋。”
这句话里藏着他一生的转变。
从“替代”到“陪伴”。
从“效率”到“温度”。
从“物理”到“人性”。
一个年轻时痴迷物理和机械的人,老了以后,开始关心更柔软的东西。

九、HelpMate:一个不会说话的助手

(图片来源:AI生成)

1988年,TRC公司的车间里,一个圆滚滚的机器人诞生了。

它不叫Unimate,它叫HelpMate——帮手。

它不是一条机械臂,而是一个会自己走动的机器人。圆筒形的身子,大约齐腰高,像一只憨厚的大号扫地机器人,但它做的事情比扫地复杂得多。

它的第一份工作,是在医院里。

康涅狄格州的一家医院引进了它,它的任务是:送药、送病历、送食物。

听起来很简单,对吧?

但如果你仔细想一想,这件事其实非常难。

医院走廊很窄,人来人往,护士推着病床急匆匆地走过,病人拄着拐杖慢吞吞地挪动,清洁工推着小车在拐角处突然出现。还有轮椅、输液架、探视家属带来的鲜花和气球。

HelpMate要学会在这些混乱中穿行。

它要能“看见”前面有没有人(用当时还很原始的声纳传感器),要能决定是停下来等一等还是绕过去,要能在复杂的走廊网络里找到正确的房间,要能在电池快没电的时候自己回到充电桩。

没有GPS,没有激光雷达,没有深度学习,没有大模型。

它只有最原始的传感器,和一套恩格尔伯格和他的团队一条一条写出来的逻辑规则。

但它真的能工作。

护士们一开始觉得新鲜又怀疑——这东西靠谱吗?万一撞到病人怎么办?万一送错药怎么办?

用了几个星期之后,质疑的声音渐渐少了。

一位护士长对恩格尔伯格说了一句让他特别高兴的话:

“它不会说话,不会笑,但它从来不迟到,从来不送错,比某些实习生靠谱。”

恩格尔伯格哈哈大笑。

笑完之后,他认真地说了一句:

“有一天,它会说话的。有一天,它会的。”

他想给HelpMate装上语音交互,让它能跟病人说“早安”,能提醒老人按时吃药,能在深夜巡视的时候轻声说“一切都好,晚安”。

可惜,那个年代的AI技术还不够。

语音识别不准,自然语言理解更是奢望。别说对话了,让HelpMate准确理解“帮我把床头柜上的水杯拿过来”这样一句简单的话,都是不可能的。

HelpMate像一个先天失语的孩子。

它只能默默地、安静地、勤勤恳恳地推着药车,在走廊里走来走去。

恩格尔伯格看着它,心里知道:它在等,等技术成熟的那一天。


十、身体的父亲,大脑的邻居

恩格尔伯格和人工智能研究者之间的关系,一直是一个温柔的错位。

AI研究者们在大学实验室里,在计算机屏幕前,在论文的公式和代码中,梦想着造出一个会思考的机器。他们关心算法、神经网络、反向传播、损失函数、大语言模型、多模态感知。

恩格尔伯格在车间里,在伺服电机的嗡嗡声中,在焊接的火花里,梦想着造出一个能行动的机器。他关心关节、减速器、扭矩、精度、重复定位误差、轨迹规划。

一个往“大脑”的方向走;

一个往“身体”的方向走;

两条路,隔了半个世界,也隔了半个世纪。

有人问过恩格尔伯格一个很直接的问题:你的机器人会思考吗?

他老老实实地说:

“不会,它连最简单的推理都做不到。但它会动,会干活,会帮你把最累的事情做完。思考是下一步的事情,不是我这一代人的事情。”

他没有夸大自己的成就,他知道自己做了什么,也知道自己没做什么。

但他坚信一件事,这件事后来被证明是对的:

“不管人工智能将来有多聪明,它总得有一副身体,才能真正帮到人。”

你可以有一个能在五秒钟内算出圆周率后一万位的AI,但它拧不开一个瓶盖。

你可以有一个能写出比莎士比亚还优美的十四行诗的AI,但它扶不起一个摔倒的老人。

你可以有一个能通过任何法律考试、医学考试的AI,但它没法在火星上钻一个岩芯。

要做到这些,它需要一个身体。

一个能感知、能运动、能在不确定的物理世界里稳定操作的身体。

一个有关节、有电机、有传感器、有控制算法的身体。

一个能“碰到”这个世界的身体。

恩格尔伯格用一辈子,把这个身体造了出来。

他造好了房子,然后安静地等了几十年,等那个叫“智能”的房客搬进来。


十一、那个叫“大白”的遥远回声

2014年,一部动画电影在全球上映,《超能陆战队》。

电影里有一个医疗机器人,叫“大白”。白白胖胖的,软软的,走起路来一摇一摆。它不会打架,不会飞,没有什么超能力。它唯一会做的事情,就是感知人的身体状况,然后轻声地问:“你还好吗?你的疼痛指数是多少?”

它会给受伤的人冰敷,会给情绪低落的人一个拥抱,会在深夜安静地守在床边。

无数观众被大白感动哭了。

很少有人知道,大白的原型之一,就是恩格尔伯格的HelpMate。

(图片来源:AI生成)

HelpMate没有大白那么可爱,没有大白那么智能,没有大白那么会说话。它只是一个圆筒形的、不会说话的、在医院走廊里默默送药的机器人。

但它们的灵魂是一样的——“帮助。”

不是取代,不是控制,不是统治,是帮助。

恩格尔伯格在二十多年前就看到了这个未来——机器人最好的角色,不是战士,不是工人,不是奴隶。

是帮手,是伙伴,是朋友。

他在一次采访中说:

“我不希望机器人看起来像人,我希望它们看起来像工具,像帮手。它们的存在,是为了让人的生活更好,而不是让人觉得自己被取代了。”

这个理念,在今天越来越成为共识。

但在他提出这个理念的1980年代,它几乎是孤立的。

他又一次超前了。


十二、“机器人不是来取代你的”

1990年代,恩格尔伯格已经七十多岁了。

头发全白了,背微微有些驼,走路慢了,但他还是经常出差,去各地演讲,推广服务机器人的理念。

(图片来源:AI生成)

有一次,他在美国的一个大学演讲,台下坐满了年轻的工程师和学生。

提问环节,一个学生站起来,语气里带着明显的担忧:

“恩格尔伯格先生,如果机器人越来越厉害,那我们的工作怎么办?我们会不会被机器人取代?”

全场安静了。

这个问题,恩格尔伯格被问过无数次。

他笑了笑,慢慢地说:

“我常常被问到这个问题:机器人会取代人类吗?我的答案从来只有一个——不会。”

他顿了顿,看着那个学生的眼睛:

“机器人会做的事情,是人类不想做的。人类擅长的事情,机器人做不到。它们不是来取代我们的,是来成全我们的。”

他停了一下,又接着说:

“它们没有怨言,不会偷懒,不会说‘这不是我的工作’。它们只是安安静静地,把你从琐碎和辛苦里解放出来,让你有时间和精力,去做那些只有人才能做的事情——”

他的声音变得很轻,很温柔:

“爱一个人,读一本书,看一次日落。”

台下很安静。

然后掌声响了很久。

那个提问的学生后来成了一名机器人工程师。多年后,他在一篇文章里回忆起这个瞬间,写道:

“那一刻我忽然明白了,我学的不是一个让人失业的技术,而是一个让人更自由的技术。恩格尔伯格改变了我看待自己职业的方式。”


十三、最后一站

2015年,恩格尔伯格九十岁了。

他的身体已经不太好,不太能出差了。大部分时间待在康涅狄格州的家里,坐在窗边的椅子上,看着院子里的树。

偶尔有年轻的工程师来拜访他,带着新的机器人技术给他看。深度学习、强化学习、大模型、具身智能。他听得很认真,有时候会问一些很具体的技术问题,有时候只是安静地听,然后点点头,露出微笑。

有人问他:你觉得现在的机器人怎么样?

他说:

“它们比我那时候的聪明多了,但它们还有很长的路要走。”

又有人问他:你最希望未来的机器人做什么?

他想了一会儿,说:

“照顾老人,照顾病人,照顾那些需要帮助的人。这个世界上有很多孤独的人,他们需要的不是一台会算数的机器,而是一个能在身边安静陪伴的东西。”

2015年12月1日,

约瑟夫·恩格尔伯格在康涅狄格州的家中去世。

九十岁。

他走得很安静。

没有新闻轰炸,没有全网刷屏。机器人圈子里的人悲痛了几天,发了讣告,写了纪念文章。外面的人,大多数没听说过这个名字。

第二年春天,AlphaGo打败了李世石,全世界都在谈论人工智能。

朋友圈、微博、电视、报纸、杂志,铺天盖地,仿佛一夜之间,AI成了神,成了未来,成了人类最后的发明。

很少有人在那波热潮里提到恩格尔伯格。

这不公平,但也合理。

因为他是一个上一个时代的人。他做的事情太“硬”了,不够酷,不够炫,不像深度学习那样能写出激动人心的论文,也不像大模型那样能跟你聊天写诗。他的一生,就是在车间里和钢铁、电线、电机打交道的一生。

他就是那个造机器的老头。

一个造了一辈子机器的老头。

但他造的机器,到今天还在运转。

通用汽车的流水线上,丰田的工厂里,德国宝马的焊装车间里,无数机械臂日夜不停地工作。它们中的绝大多数,设计理念都可以追溯到1961年那台笨重的Unimate。

而更柔软的那条线——服务机器人,也在悄悄生长。

扫地机器人、送餐机器人、养老院的陪护机器人、医院的物流机器人。它们不会说话,不会思考,不会写诗,但它们在替你扫地,替你送饭,替你看护父母。

它们身上,流着HelpMate的血。


十四、一个迟到但不会缺席的拥抱

2026年,恩格尔伯格走后第十一年。

人工智能和机器人,终于走到了一起。

“具身智能”成了最前沿、最热门的方向。科学家们正努力把大语言模型塞进机器人的身体里,让它们真正理解物理世界,真正学会操作物体,真正能听懂人话、看懂人的手势、理解人的意图。

那些机器人的关节、电机、传感器、控制算法——它们的根,可以追溯到1959年的Unimate。

那些机器人的愿景——在医院里帮忙,在家里陪伴,在危险的地方替人冒险,在孤独的时候陪人说话——那是1988年的HelpMate就已经写下的蓝图。

那个叫“智能”的房客,迟到了几十年,终于搬进来了。

它正在住进恩格尔伯格造的房子里。

他不知道这些,他走得太早了,没看到这一天。

但他一定猜到了,他一直相信这一天会来。

所以他造好了房子,擦了窗户,通了水电,在门口挂了一盏灯,然后安静地等了半辈子。

等那个聪明的、能干的、温柔的智能,有一天走进来,说一声:

“我来了,我们可以开始了。”


尾声:给未来的一封信

(图片来源:AI生成)

如果有一天,你家里的机器人轻轻地走到你面前,替你递上一杯水,或者帮你把掉落的东西捡起来,或者用不太流利的语音跟你说“需要帮忙吗”——

请你记得一个名字,

约瑟夫·恩格尔伯格。

1925年生于布鲁克林,从小喜欢拆东西。

1956年,在一场酒会上看到了改变他一生的图纸。

1961年,造出了世界上第一台工业机器人,把它放在通用汽车的工厂里,让它干最烫、最累、最危险的活。

1983年,五十八岁,卖掉了一手创办的公司,重新出发,去做“服务机器人”。

1988年,造出了一个圆滚滚的、不会说话的、在医院走廊里默默送药的小助手,叫HelpMate。

2015年冬天,安安静静地回了家。

机器人工业协会在悼词里只写了一句话。

那句话很短,但足够了:

“因为他,机器人成了一个全球性产业。”

如果让我替他补一句,我会写:

“因为他,机器人在成为一个产业之后,终于有机会成为人的伙伴。”

他给了人工智能一个家。

一个可以走路、可以触碰、可以拥抱这个世界的——家。

而他,在康涅狄格州冬日的阳光下,在院子里那棵老树的旁边,在九十年的漫长人生之后——

终于可以休息了。


约瑟夫·恩格尔伯格(1925年7月26日—2015年12月1日)

物理学家、工程师、企业家

“机器人之父”

他造好了身体,然后安静地等了六十年,等那个叫智能的灵魂住进来。


02. 我的思考与感受

读完整整十四节恩格尔伯格的故事,我忽然意识到一个之前从未认真想过的事情:我们谈论人工智能的时候,谈论的几乎全是“大脑”——算法、算力、数据、神经网络。我们崇拜OpenAI,追逐大模型,为一段AI生成的文字或图像惊叹不已。我们把“智能”捧上了天,却忘记了它至今没有一副可以触碰这个世界的身体。

恩格尔伯格的故事,像一记温柔的提醒。

他不是一个站在聚光灯下的人,他的名字不像图灵、麦卡锡、辛顿那样如雷贯耳。他一生做的事情,在很多人看来“不够酷”——造机械臂,调伺服电机,在车间里拧螺丝,在医院走廊里跟着一台圆滚滚的送药机器人慢慢走。没有论文引用量的狂欢,没有技术突破的新闻头条,只有车间里的铁屑和机油。

但他做了一件也许更重要的事:他为智能造了一个家。

这个家,有手,有关节,有电机,有传感器,有能在物理世界里稳定运行的可靠性。没有这个家,再聪明的AI都只是一个被困在服务器里的幽灵——能写诗,能聊天,能通过任何考试,却连一个瓶盖都拧不开。

他造好了这个家,然后安静地等了六十年。

六十年,一个人的大半生。

他等到了吗?严格来说,没有。他2015年离开,而具身智能真正成为热点,是2020年代以后的事情。他差了几年,但他在晚年看着那些来拜访他的年轻工程师展示新技术时露出的微笑,让我相信,他知道这一天会来。他只是等不及了。

这让我觉得温柔,又觉得心酸。

温柔的是,一个人可以如此笃定地相信一件尚未发生的事情,并用一生的时间去为它打地基。心酸的是,他没能亲眼看到那个叫“智能”的房客,真正住进他造的房子里。

但也许,这正是工程师的宿命——你种树,后人乘凉。你造房子,后人入住。你不需要看到最后的结果,你只需要相信那棵树会长大,那个房子会有人来。

恩格尔伯格相信了,他用九十年的时间,证明了他的相信。

如果有一天,我家里那个笨拙的扫地机器人,或者养老院里那个会轻声提醒老人吃药的陪护机器人,或者医院走廊里那个安静送药的物流机器人,能够真正“听懂”我说的话,能够真正“理解”我的需求,能够真正“帮助”到需要帮助的人——

我会想起这个老头。

想起他在康涅狄格州那个窗边的椅子上,安静地看着院子里的树。

想起他说的那句话:

“机器人不是来取代你的,是来成全你的。”

成全,这个词,真好。

03. 本期提问

基于恩格尔伯格“为智能造身体”的理念,以及当前具身智能的发展趋势,你认为在技术层面之外,机器人要真正成为人类生活中“温柔的存在”(像HelpMate和大白那样),还需要突破哪些非技术性的障碍——比如伦理、法律、社会心理或设计哲学层面的问题?

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-09 23:11:59 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/507454.html
  2. 运行时间 : 0.111959s [ 吞吐率:8.93req/s ] 内存消耗:4,917.21kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=575b2a1de086befad1b707f0d83c2873
  1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
  7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
  10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
  21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
  22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
  26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
  30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
  33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
  35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
  36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
  37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
  38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
  39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
  40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
  41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
  42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
  43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
  44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
  45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
  46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
  47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
  48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
  50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
  51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
  57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
  88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
  90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
  104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
  108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
  109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
  136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.80 KB )
  145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000602s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000927s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000341s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000285s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000589s ]
  6. SELECT * FROM `set` [ RunTime:0.000236s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000656s ]
  8. SELECT * FROM `article` WHERE `id` = 507454 LIMIT 1 [ RunTime:0.004829s ]
  9. UPDATE `article` SET `lasttime` = 1775747519 WHERE `id` = 507454 [ RunTime:0.005219s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.002960s ]
  11. SELECT * FROM `article` WHERE `id` < 507454 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001680s ]
  12. SELECT * FROM `article` WHERE `id` > 507454 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000470s ]
  13. SELECT * FROM `article` WHERE `id` < 507454 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001562s ]
  14. SELECT * FROM `article` WHERE `id` < 507454 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005670s ]
  15. SELECT * FROM `article` WHERE `id` < 507454 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.006470s ]
0.113643s