1979 年,VisiCalc 作为早期电子表格应用,成为 Apple II 的杀手级应用。1985 年,微软在 Macintosh 上发布第一个版本的 Excel,比 Windows 版 Excel 更早。

米色 Apple II 风格电脑上的 VisiCalc 黑底绿字电子表格,屏幕显示物品数量、单价、成本与合计。
VisiCalc 与早期个人电脑。依据所提供的界面参考生成,历史场景重现,非档案照片。 查看大图 ↗

2005 年,进入职场的第一个项目,是一家汽车国企的驻场 ERP 实施。用今天的 Title 来说,大概就是 FDE。至今记忆犹新的,除了定福庄的中传食堂,便是会计主管的 Excel 表:巨大的公式,加上行云流水的快捷键微操,差不多定义了后来二十年里,我再也没见过的灵活与优雅的高度。

因为你几乎可以看到任何想要的数据,只依赖于一位优秀的会计。

Claude Code 的作者 Boris Cherny 在 Sequoia 的一场谈话中提到,接下来的软件生产与分发,应该跟发短信一样简单。他还谈到,制作财务软件最适合的人,是一位非常优秀的会计,因为他懂这个领域。

是的,又回到优秀的会计。

这中间的四十多年,无论塞贝斯、.NET 那些老古董,还是 SaaS,基本上可以说是集难用、笨拙、不符合业务之大成。需求谈必称费用与排期。这种笨拙,基本上就是工业化思想的延续。

原先的一门手艺,一种整体性的认知,被“精确的幻觉”分隔,被专业分工拆开。业务归业务,数据归数据,流程和页面又各有各的负责人。然后,我们再用数据中台、DDD 去模拟、去找补,试着把它们接回去。这一路,也成就了 Snowflake、Databricks 这样的公司。

软件发展史,也可以看作一种以知识分类为底色的实践历史。我这一路黑,并非要否定软件的历史。只是做这行的人,应该一直记得这种拆分带来的缺陷,别把它当成业务本来的样子。

而整个过程中,Excel 就像一朵优雅的小花,一直无比倔强地绽放。

01 / 合

Excel

Excel 的天才,在于把三件事压进了同一个格子。数据是单元格的值,计算是 =SUM(A1:A10) 这样的公式,显示结果的界面,就是网格本身。

FIG. 01数据、逻辑、视图,在同一个格子相遇
fx=SUM(A1:A2)
AB1100本月2200上月3300合计
DATA值
LOGIC公式
VIEW网格
拖动数值:事实变化,公式重算,结果立即呈现。三件事都在眼前。

任何人都能在 Excel 里“写软件”,因为他不用先搞清那些抽象层。数据、逻辑、视图都在眼前。改一个值,看一下结果;发现公式不对,直接改公式。知道业务该怎么算,也就知道这张表该怎么做。这种直觉,对优秀的会计很友好。

那位会计主管的手艺,也正在这里。他对业务的理解和手里的工具没有分开。哪些数该合在一起,哪些要单独处理,计算到哪一步需要回头核对,都能直接落实在表里,不必先变成一份交给别人的需求文档。

但优雅的代价也很直接:一千人协同的公司,没办法只靠一张 sheet 运行。同一份表发给几个部门,各改一遍,再收回来,光是确认哪份有效,就已经是另一种工作。公式可以算得很漂亮,却不会自动解决谁有权改、改完谁负责的问题。

Excel 是小尺度的优雅。它让我们看到,在整体没有被拆开的时候,软件可以多直接、多贴近业务;但把这个尺度放大到一个组织,还需要解决另一批问题。

02 / 分

SAP / Salesforce

要承载一千人协作,在有限的计算资源下,很自然的办法就是拆分。按业务领域拆,再按技术层次拆。横竖各切几刀,每一块都交给专门的人处理。

米色 CRT 电脑显示客户数据、审批流程和销售订单三个窗口。
企业软件:客户数据、审批流程、订单界面分开组织。年代风格示意,非特定产品截图。 查看大图 ↗

Excel 那种三合一的格子,被拆成了几件事。数据进入关系表,先定义字段、类型、关联,也就是 schema;流程与编排进入触发器、Flow、ABAP 等工具和程序;交互层则留下表单、报表。各个产品实现不同,但业务用户面对的,已经是这几层重新组装出来的结果。

FIG. 02一个格子,拆成三个专业层次
03 / 交互表单 · 报表 · 页面人怎样使用
↕
02 / 流程业务规则 · 审批 · 编排事情怎样发生
↕
01 / 数据客户 · 订单 · 交易系统记住什么

业务变化 → 跨层协调 → 修改、验证与交付

拆分让组织能够协作,也增加了业务意图与实际修改之间的距离。

代价是 Excel 那种贴近性消失了。业务用户想改一个字段,要走 IT 流程。听起来只是加一列,接下来却得确定:它存在哪里,由谁维护,哪些页面显示,旧报表要不要跟着改。跨层的一致性,靠文档和流程维持。业务一变,底下的数据结构可能要改,上面的规则、页面也跟着受影响。

每个环节单独看,都有充分的理由。不能让所有人随手改生产数据,也不能让每个部门各写一套程序。可这些理由加在一起,业务人员就越来越难直接修改自己的工具。最后,那个最清楚事情该怎么做的人,只能等排期。

从 ERP 到 SaaS,企业软件变得越来越丰富,背后的分工方式却相当熟悉:数据结构在底下做地基,应用建在它之上,再加一层、再接一个系统,直到很难有人能把全貌说清楚。

而江湖上的手艺人,也越来越少了。

03 / 整合

Palantir

到这里,很多人会以为 Palantir 带着 Ontology 这个新范式出现了。仔细看,它仍然延续着“分”的结构。今天谈论的 Ontology 和 Action 层,是 SSOT 与具体业务之间的媒介:底下是事实,上面是如何理解这些事实、如何据此采取行动。

SSOT 是 Single Source of Truth,在这里指共同认可的事实来源。Ontology 则把客户、订单、车辆这些业务对象,以及它们之间的关系、能执行的动作,明确地描述出来。

Palantir 官方 Object Explorer 航空示例:航空公司、航班、机场、飞机、航线、预警等对象之间的关系。
Palantir Object Explorer:航空示例中的对象类型与关联。图片来源:Palantir 官方文档。 查看大图 ↗ · 官方来源 ↗

Palantir 的价值,我认为是两件事叠加在一起:用整合的思想,把过去散落的能力做成一个产品;再用高密度的实施和咨询服务,让这个产品真正能给人用、给 AI 用。对那些长期被复杂流程和官僚作风困住的机构而言,能有人把这一团业务落到可运行的系统里,已经是春风拂面。

① 产品层:把散落的能力接起来

数据接入、语义建模、业务流程,都有很长的历史。数据中台、Semantic Web、BPM、DDD,各自解决过其中一部分问题。Ontology 的产品价值,是把原先散落在不同学派、不同系统里的东西,组装成一个相对统一、可以部署的接口。

产品里的一层它整合的工作与已有方法
数据接入与 ETL连接、整理数据;数据仓库与数据中台所做的一部分工作
Ontology描述业务对象、含义与关系;主数据管理(MDM)、Semantic Web
Action Types把业务动作做成可执行操作;业务流程管理(BPM)、领域驱动设计(DDD)

比如看一个订单,使用者可以沿着关系找到客户和交付,也可以在允许的范围内执行更新。数据查询、业务理解、动作执行,终于能围绕同一个对象工作。前面提到的那些技术,不必再由客户一件一件自行拼装。

另一方面,Ontology 回到中心,也是在正视一件长期被忽视的事:软件应该承认,组织对同一份事实存在多重业务解读。财务、销售、运营各有各的工作,不能因为系统只做了一种表单,就要求所有人用同一种方式理解业务。

打个比方:把一种业务理解固定在系统里,像把照片洗出来挂在墙上,想换角度,要重新拍。保留事实、允许不同的业务解释,则像保留原始底片,想换角度,可以重新冲一张,老的还挂着。

② 执行层:有人把客户的业务放进去

产品有了,客户那一团混乱的业务,还得有人弄明白。哪个系统里的客户才算客户?同名的两家公司是不是同一个主体?订单到了哪一步可以取消?这些问题,光看一张数据表是回答不了的。

这就是 FDE 团队的工作。FDE 通常译作前线部署工程师,他们在现场陪客户把业务落实到 Ontology 上。产品层提供工具,实施的人要把具体公司的规则、例外和责任关系整理进去。2005 年那种驻场实施的工作,并没有因为工具变新就消失。

FIG. 03共同的业务对象,人和 AI 都能操作
业务人员 / FDE+AI Agent
↓ 通过明确的接口与权限 ↓
ONTOLOGY
对象客户 / 订单
关系归属 / 关联
动作创建 / 更新

业务规则 · 权限 · 变更记录

↑ 接入与整理 ↑
业务系统数据集模型
Ontology 连接数据、业务含义与可执行动作;实施工作把具体组织带进这套结构。

AI FDE 进入这一层,并不意外。产品层已经把一个类型明确、有边界的工作环境准备在那里了。Agent 面对的可以是定义清楚的 Customer、Vehicle、Subscription,也就是客户、车辆、订阅对象;可以调用的动作、需要的参数和权限,也都有据可查。它能直接在这套环境里写函数、改流程、操作对象。

今天常说 Harness Engineering,也就是围绕模型准备工具、上下文、约束和检查方法。放到组织里看,Ontology 做的这部分工作,恰好就在为人和 Agent 准备同一处施工现场。

两层合起来,才是工程与人的整合。下层是技术产品,上层是让客户用起来的服务。客户要解决自己的问题,一组零件显然不够。

Palantir 沿着“分”这条路,把分散的能力重新整理成统一接口,再让人和 AI 一起完成实施。这种整合很有价值,但在我看来,它仍然是一个过渡。它所依赖的重投入、高人才密度的工作,未来有多少能由 Agent 承担?这是接下来更有意思的部分。

04 / 合 2.0

AI-Generated Software

回到开头 Boris 说的,像发短信一样生产与分发软件,像使用 Excel 一样自由创作。我们先作一个假设:当数据集、Ontology、业务编排、交互界面,都能由 Agent 按照眼前的任务组合,会发生什么?

BBG 风格的 Agent 工作平台:用户询问订单延迟,Agent 查库存、比较供应商,并生成关联的对比视图、交付分析和调整方案,等待用户决定。
用户提出问题,Agent 查询数据、找出异常,并生成右侧的比较视图与调整方案。A、B、C 标记对应 Agent 创建、修改和关联的界面。概念示意。 查看大图 ↗

用户说清楚要做什么,Agent 找到相关数据,调用已有的业务规则,生成当下需要的界面。原先由工程团队分头开发、再拼起来的几层工作,可以在使用时一起完成。这里的 runtime,指的就是这种运行时的组合。

例如,临时要查一批订单为什么没能按时交付,可能只需要把订单、库存和交付记录放在一处,按当前问题组织成一张表。以前,这个需求容易变成一个新的报表项目;在这个假设里,它可以在一次对话里形成。用完之后,未必需要把这张页面永久加进菜单。

EXCEL一个单元格

用户当场写公式
值、公式、网格都在眼前

AI-GENERATED一次对话

Agent 按任务组合
数据、规则、界面一起出现

Excel 把三件事压进一格;AI-Generated Software 期待把几层工作合进一次对话。用户重新只面对一个入口,也重新有机会亲手决定工具该怎么用。

FIG. 04分合之间,尺度发生了变化
合分Excel企业软件PalantirAI 生成一张表专业分层工程整合按任务组合
这是理解软件演化的一条线索,不是产品优劣或技术能力的量化排名。

这条曲线画的是我理解的软件分合:Excel 在一张表里完成整合,企业软件为了承担组织协作而拆分,Palantir 用工程把它们重新接起来,AI 则让运行时的组合成为一种可能。

回来的尺度已经变了。Excel 的尺度是一张表,Agent 所期待的尺度,可以是个人、临时任务,也可以是一个组织。这里面最难的那部分,正藏在“一个组织”这几个字里。

05 / 共识

回到整合:Agent 与现实

Andrej Karpathy 把软件分成三代:1.0 显式编写规则,2.0 通过训练神经网络形成能力,3.0 则在上下文里用自然语言描述意图。从给机器写代码,到给机器喂数据,再到给机器讲清楚要做什么。

沿着这条思路,Agent 接过了当年 Excel 单元格的一部分角色。值是事实,公式是计算方法,网格供业务人员使用。一次对话,也在尝试让用户同时触及这几层,不必逐一处理背后的抽象。

但事情真能这么顺利吗?

个人侧已经很容易试起来了。用 ChatGPT、Claude Code 给自己做个工具,只要自己觉得可用,就可以继续。一个人不必等一家 SaaS 公司排期,便能生成眼前需要的软件。

到了组织里,情况就变了。财务、HR、CRM 都有人想接入 Agent,也都有能演示的功能,但演示结束之后,谁来决定规则、谁承担结果,往往还没有谈清楚。把这些问题全归到模型能力上,恐怕看错了地方。B 端软件很大一部分工作,是让一群人对业务达成共识。

看同一笔交易。财务要判断其中哪些属于递延收入,销售要算业绩提成,运营要确认库存和交付承诺。三种说法可以同时成立。它们引用的是同一笔交易,回答的却是各自工作里的问题。

FIG. 05共同事实,可以支持多种业务解释
共同事实 / SSOT同一笔客户交易订单身份 · 金额 · 发生时间 · 来源
↓↓↓
财务收入确认何时计入?
销售业绩提成如何计算?
运营履约承诺怎样交付?
不同部门不必使用相同视图,但需要知道自己依据的是哪一笔交易、哪个版本和哪套口径。

同一份数据,在不同部门、不同场景、不同时点,甚至出于不同动机,需要被放进不同的业务解释里。Ontology 的确立,就是组织对这些含义的确认。因此它必须能够变化,也必须是一种约定:一群人同意,在这个场景下,这个对象按这套含义和规则使用。

比如销售决定用签约额看业绩,财务仍然可能按履约进度确认收入。只要各自的依据和用途说得清,两种口径完全可以并存。真正麻烦的是,两边都把结果叫作收入,却没有告诉接着使用这些数字的人,它们分别怎么算出来的。

SSOT 要让大家找得到共同的事实来源。订单是哪一笔、合同用的是哪个版本、钱是否到账,这些需要对得上。在此之上,业务解释可以不同。把数据全搬进同一个数据库,并不会自动让几种口径达成一致。

公司内部对共识的要求,也有轻重。来自法律、监管和行业规则的要求,可以称为硬共识,AI 必须遵循,不能凭一次对话改掉。部门之间商定的提成办法、协作流程,是软共识,AI 可以提方案,但要协商。只给自己用的临时计算和页面,通常就不需要别人来拍板。

FIG. 06Agent 的自由度,取决于影响范围
软件层次个人约定组织约定外部约束
界面与表达即兴生成保持口径合规呈现
含义与流程个人方法提议 / 确认遵循规则
共享事实引用来源授权更新受控变更
可以即兴,结果由使用者检验

把已获授权的数据整理成自己的阅读视图、临时计算器或一次性报告。自由的是表达与计算方式,事实仍要有来源。

先提出,再由负责人确认

调整提成口径、客户分组或审批规则,会影响其他人的工作。Agent 可以拟定方案、模拟结果;采纳后再按授权写入,并保留记录。

遵循既定规则与受控流程

已确认的业务事实不能凭对话随意重写。纠错仍然允许,但必须有依据、权限、审批和可追溯的变更过程。

越接近正式记录和共同规则,越需要明确的授权与确认。硬共识也会变化,但不能由 Agent 单方面改变。

把共识强度放在横轴,把数据、业务含义与流程、界面这几层放在纵轴,就能看见不同位置上的差别。个人界面可以相当自由地生成;涉及团队规则,Agent 可以试算、比较方案,最后由负责人采纳;涉及正式记录,就要按既定的权限和变更流程处理。

中间那一大片软共识,才是组织里最费工夫的地方。提成规则改了,有人受益,也有人吃亏。客户归属重新划分,会影响几支团队的业绩。Agent 可以把计算做完,却没有资格替这些人宣布谈妥了。

Software 3.0 在组织里的进入方式,大概也会有这样的梯度。共识轻的地方,变化快;共识重的地方,传统系统和既定流程仍然有用。我们谈 AI 如何落地,应该具体看看它要改哪一层、影响哪些人,而不是只问它能不能生成一个应用。

06 / SOFTWARE 3.0

软件从名词成为动词

如果足够简单,像发短信一样,软件就可能从名词成为动词。

通过对话,几层工作即时合成一个此刻可用的应用。这个应用更像一次发生的事情:为了眼前的问题出现,处理完以后,也许就不再打开了。留下来的那部分,是下一次仍然要用的事实和约定。

这个形态还不确定,我姑且称它为 AI-Generated Software,也可以放在 Karpathy 的 Software 3.0 里讨论。它的核心,很可能是一份完整、可靠、能够迭代的业务共识描述。但它的护城河,肯定不是功能。

把开篇 Excel 的图放到这个场景里重画一次,中间会多出关键的一段:Agent 得先弄清楚,此刻这些词是什么意思。

FIG. 07PLTR 在这只 ESG 组合里,符合客户要求吗?
01 / 意图“这笔 PLTR 持仓符合客户要求吗?”
↓
02 / 对齐含义客户偏好:反战
组合约定:ESG 主动管理
在该约定下:相关业务被认定为冲突

对应到这个客户、这只组合使用的具体约定

↓
03 / 形成结果列出持仓与约定,提出剔除建议
↓
04 / 需要执行时按权限确认、执行并记录
假设客户明确反战,且组合约定将相关业务认定为冲突;Agent 据此提出建议。此处展示含义对齐,不对股票作通用分类。

举一个假设的例子:一位客户明确反战,持有一个按 ESG 约定管理的组合,组合中有 PLTR。客户问,这笔持仓是否符合自己的要求?

光看到 ESG 这三个字,Agent 无法得出结论。它需要找到这个客户的偏好、这只组合的管理约定,以及在这个约定下怎样看待相关业务。如果该组合采用的分类把有关业务认定为与客户反战要求冲突,才有依据提出剔除建议。换一个客户、换一套组合约定,结论可能就不同。这里是在举例说明业务含义如何对齐,并非给股票下一个通用标签。

这一步,就是软共识在运行时落实到具体任务上。客户口中的符合要求,必须找到对应的约定,后面的数据查询、界面和动作才知道该怎么办。至于建议是否执行,还要交给有权决定的人,按实际业务流程处理。

让模型写出一张动态页面,已经可以做得很好。但页面上为什么是这个结果,依据的是谁的约定,才决定它能不能在组织里使用。原先留在一位优秀会计头脑和公式里的理解,走到这个尺度上,需要能被其他人、也被 Agent 找到和使用。

最终,一个念头,替代一个格子,就像发短信一样。