先说一件小事。
前段时间朋友感冒发热,我陪他去楼下药店买退烧药。柜台里摆着两种,布洛芬和对乙酰氨基酚。驻店药师多问了一句,有没有肝病史。他说有轻度脂肪肝,她点点头,把对乙酰氨基酚往回放了放,递过来布洛芬。
走出药店我愣了一会儿。这个判断是怎么完成的?药师知道,对乙酰氨基酚禁忌于肝病患者;药师知道,眼前这位客人属于肝病患者;药师还知道,感冒发热需要退烧药。三条知识一拼,答案自己就蹦出来了,她全程没碰搜索引擎。
这就是本体论在干活,只不过它藏在人的脑子里,一藏就是几十年。而过去这两年,我大部分工作时间都在干同一件事:把这张藏在我们每个人脑子里的地图,画出来,画到机器能读懂的程度。
这篇文章是我这段时间的笔记。不打算从定义讲起,定义你们都查得到。我想把几件纠缠在一起的事情拆开:哲学里的本体论到底是什么,Palantir 的本体论到底做了什么,以及为什么我判断"AI 本体论"是另一条更野的路。中间会夹不少我在一个真实平台上折腾的细节,有代码,有踩过的坑。
一片药,引出两千年的学问
Ontology 这个词拆开看很朴素,ontos 是"存在",logos 是"学说"。合起来,关于存在的学说。听起来很玄,但亚里士多德在《形而上学》里干的活其实特别接地气:他试图回答四个问题。
这个世界里,有什么东西真实存在?这些东西,该怎么分类?它们之间有什么关系,会如何相互作用?这些关系和相互作用,随着环境变化会发生什么变化?
你把这四个问题挪到医院,就是内科、外科、骨科的挂号体系。挪到我们家药箱,就是"布洛芬作用于发热,对乙酰氨基酚禁忌于肝病"。挪到一家制造企业,就是供应商、工厂、订单、物料、工艺路线,以及它们之间那些说不清道不明的恩怨。
所以本体论一点都不新。医院靠它挂号了几十年,药典靠它编了几版,老会计靠它定科目。它的核心作用就一句话:消除歧义,建立共识。让所有参与方对"这是什么"“它属于哪一类”"它跟别的东西什么关系"有一致的理解。
真正的变化发生在最近几年。有人开始要求,这张地图不能只画给人看,还得画给机器看。人看地图,模糊一点没关系,上下文一补就懂了。机器看地图,每一个概念、每一条关系、每一条约束,都得是明文写出来的,可查询,可校验,可推理。
这个要求一提出来,事情就变了。
你画的 ER 图,缺了半个世界
写代码的人看到"对象、关系",第一反应往往是:这不就是数据建模吗,ER 图、类图、领域驱动设计,我们干了二十年了。
我原来也这么想。直到有一次我在一个项目里试图回答一个很简单的问题:库存周转率跌了,系统为什么不自己处理?
把当时的流程摊开看。分析师在 BI 报表里发现周转率跌了 18%,截图,拉会,查数,定位到华东仓的补货策略出了问题。然后呢?打开 ERP,手工调整补货计划,再发个邮件通知采购。前后三天。这三天里,那个 18% 在报表里躺得笔直,真实世界照旧在转,该缺的货照缺。
问题出在哪?不在于没有数据,也不在于没有系统。ERP、CRM、SRM 这些跑事务的 OLTP 系统都在,BI、数据中台这些做分析的 OLAP 系统也在。问题在于这两边是两拨人、两套模型、两种语言建出来的。分析系统发现问题之后,到业务系统执行动作之间,隔着人工,隔着截图,隔着会议室。
我见过最典型的一次打架。CRM 团队和数据分析团队对"客户"的定义谈了一下午,CRM 说客户是签了合同的法律主体,分析侧说客户是所有有过成单记录的账号,财务那边幽幽补了一句,客户是回款方。三个定义都没错,三套系统各建各的,于是同一个自然人在三家系统里有三个身份。这种事每家公司都在上演,只是规模不同。
后来大家搞 TP/AP 一体化,把数据打通了。但很快发现,数据层面的融合解决不了根本问题,因为割裂发生在更上面一层,语义层。"库存周转率"这个概念在 BI 里是一张物化视图,在 ERP 里是几十张表的隐含逻辑,在采购经理脑子里是一段经验。三者之间没有一张共同的地图。
传统数据建模为什么补不上这个缺?因为 ER 图只回答了"有什么东西"和"东西之间有什么外键关系"。它不回答"这个东西能干什么"“干这件事要遵守什么规则”“状态怎么流转”。换句话说,它建了名词,漏了动词和法则。而真实业务里,值钱的恰恰是动词和法则。你去看任何一个资深业务专家和新手的差距,从来不在名词表上,在于他脑子里那套"什么情况下该做什么、什么操作绝对不能碰"的东西。ER 图装不下这个,文档装得下但机器读不懂。
Palantir 的桥,聪明,但只修在旧河上
这时候可以请出 Palantir 了。
很多人对 Palantir 本体论的印象是"在数据模型上加了层关系"。这个理解是错的,而且错得关键。Palantir 本体真正的核心是行为建模,也就是把"促进数据形成的行为"和"促进数据流转的行为"也建进模型里。对象会执行行为,行为会调用规则和约束,三者互相咬合,是一个整体。
它的运作机制,拿供应链中断这个经典场景走一遍就很清楚。某种核心材料断供了,这首先是一个事件。事件进入消息管道,触发两类规则,采购计划调整规则和客户交期承诺调整规则。规则算出具体的调整结果,然后通过业务系统开放的 API,把结果回写进 ERP 和 CRM。人的角色退到只剩审核,审完自动更新。发现问题,分析问题,解决问题,整条链路是连贯的、自动化的。
你仔细看这个机制会发现,Palantir 干的事本质上是在已有的 OLTP 系统和 OLAP 系统之间架了一座桥。数据中台的指标触发预警,本体层的 Function 行为关联到具体对象,事件流进管道,规则计算行动方案,API 回写业务系统。桥修得很漂亮,闭环也真的闭上了。
但我总觉得这里面少了点什么。
这座桥是修在旧河上的。河两岸的城市,OLTP 一座,OLAP 一座,当年是分开规划、分开施工、各自为政建起来的。Palantir 没有重建城市,它在两岸之间做了连接,让分析与执行终于能握手。可如果今天你要建一座新城,还要先按老图纸把两座割裂的城市盖出来,再花大价钱修桥吗?
这就是我判断 AI 本体论是另一条路的起点。
另一种野心:让 AI 从第一天就搬进来住
AI 本体论的目标用一句话讲,是为 AI 构建一套完整的业务语义模型。关键词是"为 AI"。这张地图存在的意义,是让大模型真正读懂业务的对象、行为和规则,进而做语义对话、做智能编排、做深层推理。
它有两条腿。面对存量系统,它同样能打通已有的 OLTP 和 OLAP,这一点和 Palantir 重合。但另一条腿是 Palantir 不走的:它可以从零到一构建系统。一套系统在诞生之初,底层就是同一个本体模型,从第一天起就不分什么 OLTP 和 OLAP,事务和分析跑在同一张地图上。
这件事为什么成立?因为 AI 原生应用的逻辑变了。传统做法是先把系统建好,再挂一个 AI 模块上去,像给房子后装空调。AI 原生的做法是,AI 的能力从你有建系统这个想法的那一刻起就在里面,跟系统一起长。它参与建模,参与写代码,参与测试,参与运行态的进化。
我在平台上完整跑过一遍这个流程,四步。
第一步,跟 AI 多轮对话迭代本体模型。你说人话,它画实体、连关系、定状态机,来回掰扯几轮,最后落成一份精确的语义定义。第二步,基于这份模型让 AI 开发能力层的 Skills 技能包。第三步,生成本体驱动的混合交付式前端界面。第四步,进入运行态,用户按意图自然语言操作。
效果是有点吓人的。一个合同管理的 AI 原生应用,AI 编程两三个小时出头就吐出来了,能跑。后来又跑通了供应链智能计划。当然前提是本体模型先立住了,这不是 prompt 念咒,先有地图,再有施工队。
多说一句第一步,多轮对话迭代建模是什么体验。你说"构建一个商机驱动项目交付的应用",它先反问你,商机的唯一标识是什么,一个商机可以对应几个交付单,延期由谁判定。你会发现自己答不上来的地方,恰恰是系统将来必然出错的地方。跟 AI 掰扯本体的过程,本质上是一次业务知识的体检,很多公司做了十几年生意,从来没把这些东西白纸黑字写下来过。
对象、行为、规则,一个都不能少
回过头把"融合建模"这个事掰开。一套完整的本体模型,我认为至少要覆盖三层,少一层都是残废。
对象层,实体、关系、属性、状态、生命周期。比如战场态势场景里的 Situation 这个实体,它不是一行记录,它有状态机:
OBSERVED → ASSESSED → MITIGATED └──────→ REROUTED(异常分支)行为层,事件和状态转换。工厂停机是一个事件,FULFILLS 边从"有效"切到"中断"是一个状态转换,这些都是模型里的一等公民,不是日志里的一行字。
规则层,约束和计算。比如 severity 不是人填的,是系统从 confidence 算出来再写回去的:
{"rule_id":"r_situation_severity","source":"V:Situation.confidence","target":"V:Situation.severity","compute":"same_object @expr","checks":["type_match","dead_knowledge","route_compile"]}三层合起来,才有资格谈那件最值钱的事:打通从分析到执行的路线。注意是"合起来",只有对象的模型就是个好看的 ER 图,只有行为的模型是个工作流引擎,只有规则的模型是个规则引擎。融合,才是本体。
有了这张地图,查询不再是对着几十张表写 join,而是直接在语义上提问:
MATCH (s:Supplier {tier:'A'})-[:SUPPLIES]->(f:Factory)-[:FULFILLS]->(o:Order) WHERE o.status = 'IN_TRANSIT' AND f.status = 'STOPPED' RETURN s.name, count(o) AS impacted_orders问的是业务,答的也是业务,中间的翻译地图替你做了。
把它做出来:一个平台的手记
道理讲完了,讲讲落地。这一年我在一个本体构建平台上把上面的想法完整实做了一遍,挑几个我觉得最关键的环节说说。
第一个环节,数据接入得贪心。企业里的数据散落在各种库,关系型的 MySQL、PostgreSQL、Oracle,国产的达梦、人大金仓,时序的 TDengine、InfluxDB,数仓的 ClickHouse,图的 Neo4j,向量的 Milvus,消息队列 Kafka。接进来之后自动扫表结构、字段类型、注释、主外键,人工确认后进入资产目录。这一步没有捷径,地图的地基本来就是又脏又碎的活。
source:mysql.sup.local:3306/suppliertype:RDBMSextract:-table_structure-field_types-comments-primary_and_foreign_keys第二个环节,工作流要能自己转。数据源、数据处理、子图建模、本体库,四类节点在画布上连成流水线,然后编排引擎每隔几分钟扫一遍,就绪的节点自动执行。哪一步出错,回溯到具体节点调试,源表字段和目标实体的映射一行行摆在那里。这一点我特别想强调,很多人做 AI 生成代码,生成完就完了,出了问题不知道改哪。而在工作流这套结构里,每个处理节点都挂着三样东西,AI 生成的代码、在线跑的单测、字段级映射预览。代码可以重新生成,映射可以人工修正,单测保证改了之后不会悄悄坏掉。可调试性不是锦上添花,是没有它,第二条流水线就没人敢用。
第三个环节,我认为是整套东西的灵魂:闭环。两个闭环。推演失败的时候,系统自动识别缺口,是派生规则没覆盖这个场景,还是状态机少了分支,然后回改本体,重新推演。孪生页面空白的时候,定位到缺了一个查询,自动补上,重建页面。AI 改的不只是代码,是企业运行的这个世界,而且每一次改动都留痕,有证据编号,可回溯。
第四个环节,验收必须铁面。系统里有条硬规则,可交付检查六项全过才算交付,完成不等于可交付。很多人觉得这苛刻,我的看法相反,AI 参与构建之后,这条规则是唯一能让人睡得着觉的东西。
最后是知识库。文档进来,语义分片,建三层索引,向量、实体、三元组。抽出来的三元组直接写进图谱,这一步特别妙,文档知识和图谱知识从此不再分家。检索的时候四路召回混着来,向量相似、实体关联、推理路径、社区摘要,各带权重:
向量 0.4 + 实体 0.3 + 推理 0.2 + 社区 0.1实测下来,比纯向量检索的命中率高一截,这是能拿到桌面上讲的数字。
地图画好之后,上面能长出什么
平台是骨架,真正的价值长在骨架上面。这一年多我看过不少跑起来的应用,归纳下来大概七类,挑有代表性的说说,你就知道这张地图的承载力有多大。
最普遍的是智能客服。以前的客服机器人靠关键词匹配和意图分类硬撑,用户换个说法就露馅。有了本体之后不一样,"退货"这个词背后挂着订单的状态机、售后期的约束、退款的规则,AI 是真的理解用户在问什么,回答自然就准。和它一体两面的是知识助手,重点从听懂挪到答准,术语歧义在语义层被消除,每句话都有出处,答案有据可查。
再往深一层是数据分析 Bot。前面说过"客户"三个定义打架的事,反过来讲,只有本体把指标口径对齐之后,AI 分析师才敢放开手脚。你问库存周转率为什么跌了,它知道这个指标关联哪些实体、哪些关系、算到哪一层,不会拿 BI 的口径去 join ERP 的表。同名异义这种坑,在语义层就被填掉了。
更激进的是业务流程自动化代理。传统 RPA 本质是录屏回放,界面一改就全废。本体驱动的代理不一样,状态怎么流转、每一步谁有权操作,规则全是明文,AI 在规则框里行动,越权操作在模型层面就被拦住。我个人觉得这一条比效率更值钱,敢把操作权交给 AI 的前提,是它碰不了不该碰的东西。
然后是本体推理决策,最接近本体论原始野心的用法。基于关系网络推理,从当前态势推出几条可行的行动方案,评估每条方案的连带影响,挑出最优的那条,军方管这个叫 COA。供应链断供那个例子就是这一类,规则和关系都在图谱里,所谓推理,不过是顺着边把后果走了一遍。
数字孪生也离不开这张地图。实体状态实时映射,工厂停没停、订单走到哪、哪个仓要爆,态势一屏可见。本体的作用是给孪生体一副统一的骨架,否则各系统各画各的孪生,拼到一起还是三张互相不认识的图。
走得最远的是具身智能和世界模型。机器人要在物理世界里行动,光有视觉不够,得有空间和因果的先验结构,什么东西在哪里,碰了会怎样,影响怎么传导。这套结构化的世界知识,说到底就是一套本体。这个方向还早,但方向感是对的:再聪明的脑子,也得装在一个有秩序的世界里。
摊开对比:有本体,和没本体
上面讲的是能看见的应用。再往回退一步,说说这套东西到底改变了什么。四组对照,每一组我都亲眼见过两边。
第一组是语义。没有本体的组织,词不达意是常态,同一个词在不同系统里含义不同,开会一半时间在对着暗号;有了本体,语义统一,人和人对概念的理解一致,人和机器之间也是。
第二组是知识。没有本体,知识散落在代码、文档和老员工的脑子里,机器读不懂,人也找不全;本体把业务规则从这些地方显式地提出来,变成机器可读、可推理的明文,知识第一次成为可计算的资产。
第三组是推理。没有本体的 AI,能回答问题但执行不了动作,分析和执行之间隔着断崖;有了本体,分析发现问题,推理找到原因,行动函数执行变更,事件回流验证结果,闭环真正闭得上。
第四组是维护。传统系统里业务规则一变就要改代码,牵一发动全身,响应速度永远追不上业务;本体的规则和计算是模型的一部分,改规则不改代码,模型在线更新,系统跟着业务一起长。
所以那句话我越来越信:本体不是数据模型,它是让 AI 拥有业务常识的操作系统。
AI 不是黑盒,也不该是实习生
写到这儿,有个绕不开的问题:把这么多权力交给 AI,凭什么信它?
我的答案朴素,让每一步都看得见。需求澄清的产物落在docs/requirements.md,执行计划有版本号,每次推演有证据记录,Agent 的思考过程可以展开看它检索了哪条知识、命中了哪条规则。AI 干了什么,依据是什么,改了哪里,结果如何,四问皆有账可查。
还有一条容易忽略,知识是会陈旧的。推演得出的结论,审核之后归档进知识库,变成下次推理的依据。AI 用得越多,企业这张语义地图就越厚,这是一个会复利的资产,而不是一次性的外包交付。
我管这个叫,AI 不是黑盒,也不该是无证上岗的实习生。它是拿着完整操作手册、每一步都签名的正式员工。
一套模型走到底
绕了两千年,收个尾。
从亚里士多德的存在之问,到医院的挂号表,到 Palantir 架在旧系统上的桥,再到让 AI 从第一天就住进来的新系统,本体论这条线其实一直在回答同一个问题:我们如何对世界的结构达成共识,并且让这个共识可以被使用。
分歧在于给谁用。给人用,ER 图加文档就够了。给分析引擎用,Palantir 的桥够了。给 AI 用,并且要让 AI 参与建设,那就必须从对象、行为、规则的融合建模开始,把系统建在本体上,而不是把本体补在系统后头。
我的判断,未来企业 IT 的底座会收敛成一套模型,事务和分析不再各建各的,分析与执行之间的墙由本体和 AI 一起拆掉。有人给这个方向起了个名字,业务语义操作系统。名字不重要,重要的是方向:地图先画好,AI 再住进来,然后,让它们一起长。
至于那座桥还要不要修?要的。存量世界那么大,桥永远有生意。只是别再让新城按老图纸施工了。