T:0 工程师:AI 会计为什么总在猜?因为总账只记结论,丢了来龙去脉

T:0(Airwallex 旗下)工程师 Erik 的长文:给总账接上再快的 Agent,它也只能猜。复式记账本来就带着一套能用算术核对的「本体」,把被软件丢掉的链接存回来,AI 才能指着证据回答「为什么」。

作者:Erik (@eya0)09-12 · 17 分钟
🎧 听播客版0:00 / --:--
0:00 / --:--

过去两年,市场上涌现了一批 AI 会计产品,发布页上的承诺大同小异:Agent 嵌进账本、对账从几天缩到几分钟、自动起草波动说明(解释科目余额为什么变了)、「几小时关账,不是几周」、九成多的手工活被自动化。

近日跨境支付公司 Airwallex(空中云汇)旗下的财务技术子公司 T:0 结束私测,面向美国初创企业开放。T:0 的工程团队成员 Erik(@eya0)在 X 上发表了一篇长文《Why Every AI Accountant Fails, and Why Palantir Knew First》。

现有的 AI 会计产品回答不了“为什么”,问题不在模型能力,而在它们脚下那张被软件拍扁的总账。会计在五百年前诞生时就自带了一套本体(复式记账),错在多数软件选择无视它,在过账那一刻把链接丢掉,只剩一张结论清单。

这是 T:0 团队写的产品与架构文章,客户案例和效果数字是厂商自己的说法。作者借 Palantir(一家给政府和大企业做数据平台的美国软件公司)的「对象 / 链接 / 动作」框架,说明为什么先修好账本底座,AI 才能在财务上给出可信的答案。

总账只记“结局”,却把“故事”扔了

要理解这个判断,先得看懂会计软件底层的总账(General Ledger,简称 GL)究竟长什么样。

复式记账的基本规则其实很简单:每笔业务至少记两边,一边借、一边贷,两边金额必须相等。无论打开哪套现代企业资源计划系统(ERP,如 SAP、NetSuite 或 QuickBooks),总账的本质都是一张扁平的流水表:日期、科目、借、贷、备注,动辄几百万行。

每一行分录都是一个故事的结局。至于故事的前因后果与交易链路,总账里全都没有。

Erik 在文章中举了一个具体的年度订阅收费案例:

这笔 4,120 美元的订阅,在总账里是这样一步步记下的

  1. 3 月 14 日

    开出发票:客户签下 4,120 美元的年度订阅。钱还没收到,服务也还没提供。

    借应收账款4,120.00 贷递延收入4,120.00

    递延收入:已开票但服务还没提供,先记成对客户的负债。国内准则一般叫「合同负债」,本文沿用美国准则的叫法。

  2. 3 月 18 日

    客户付款:钱先落在支付处理商(比如 Stripe 这类处理商)那里,还没进公司的银行账户。

    借处理商清算4,120.00 贷应收账款4,120.00

    处理商清算是个中转科目:钱在处理商那儿时记进去,打到银行时转出来,一进一出归零。

  3. 3 月 21 日

    处理商打款:把这笔付款和另外 40 笔打包成一次结算打款付给公司。这笔扣掉自己的手续费 123.60,净额 3,996.40 随整批进入银行。

    借银行存款3,996.40 借手续费123.60 贷处理商清算4,120.00

    只看这一笔:4,120.00 − 123.60 = 3,996.40。

三个日期、7 行分录、5 个科目;借方合计 12,360.00,贷方合计 12,360.00。

图 1:同一笔订阅在总账里和在会计地图里 图 1:左边是总账里孤立的 7 行,右边是连起来的同一笔生意。

一笔商业事件,在总账里变成了 7 行互相孤立的分录,前后一周、横跨三个日期、分散在五个科目里:应收账款、递延收入、清算账户、手续费、银行存款。支出方向的每一块钱也一样,从公司卡扣款到从两个账户出资的工资发放。图 1 右边只画了这一条收入线,完整的地图覆盖整个总账:账单、工资、公司卡、转账、股权。

故事的其余部分散落在账本之外:支付处理商、计费系统、银行流水、数据仓库。这就是月末关账存在的原因——一队人从结论倒推故事;审计则是第二队人重做同样的事,风险更高、掌握的背景更少。

现在,把前沿大模型接入到这套扁平的总账上,向它提出 CFO 真正关心的问题:

“为什么这个月递延收入变了?”

T:0 团队说他们做过这个测试——导出一份总账交给前沿大模型,同一个问题问三遍,得到三个自信、写得漂亮、却彼此矛盾的答案。这不是模型能力不够,而是答案根本不在数据里。总账记录了结论,却扔掉了连接。要求 AI 仅凭一张扁平总账去解释业务,就像让人光凭电影片尾的演职员名单去推导完整剧情。你能得到一段流利、符合语法、看似合理的文字,但那只是一个猜测。

行业的解法:更快的簿记员

开头列的这些产品,背后的工程是真的,对账、起草、关账确实都变快了。

T:0 团队的真实反应是:那又怎样?

每一款这类产品都接受了总账的现状——一张扁平的结论清单,外加一堆互不通话的源系统,然后在上面放一个极快的 Agent。Agent 做数据考古确实更快了:匹配更快、起草更快、关账更快。但它没有改变什么是可知的。

如果数据模型本身回答不了“为什么”,坐在上面的 Agent 也回答不了。它只能猜得更流利。而一个说得流利的猜测,恰恰是 CFO、审计师和董事会永远不能接受的东西。

一个更快的簿记员依然只是簿记员。天花板不在模型,而在底座。

要让 AI 在财务里给出可信的答案,先得修好它脚下的底座,而修底座正是 Palantir 出名的原因。

Palantir 究竟搞明白了什么

Ontology(本体)这个词原本属于哲学系和数据库教科书,现在 CEO 们也会在财报电话会上讨论它。在 Palantir 的演示里,逻辑始终如一:AI 并不是因为模型弱而失败,而是因为脚下没有坚实的东西可站。因此,在让 AI 接触决策之前,需要先建立组织的数字孪生——存在的对象、对象之间的链接、改变对象的动作,让 AI 在这个模型上运作,而不是面对一堆互不相连的原始表格。

剥离掉神秘感,本体的概念其实很简单,只有三个基本构件:

  • 对象(Objects):业务里的名词。一架飞机、一次货运、一张采购订单。它们不是表格里的一行,而是带有属性和生命周期的实体。
  • 链接(Links):名词之间的关系。这次货运履约了那张订单;这个零件属于那架飞机。
  • 动作(Actions):受控的动词。明确定义、可审计的操作,只有它们被允许改变对象的状态,并写回源系统。

作者认为,这正是 Palantir 做成大生意的关键:模型在有类型的对象和真实关系上推理,给出的答案有现实依据;在原始表格上推理,只能产出看着合理的文字。模型正在商品化,真正的护城河是模型脚下的语义层。

但 Palantir 生意里的难点在于:每个客户的世界都不一样。飞机不是货运,也不是病人。Palantir 必须派工程师针对每个客户、每个对象从零开始建模,因为在日常运营中,本体是高度定制的(Bespoke),必须逐个客户做出选择。

会计天生自带本体

1494 年,卢卡·帕乔利(Luca Pacioli)出版了《算术、几何、比及比例概要》,记录了当时威尼斯商人使用的簿记方法。用现代眼光看,他写下的其实是一套数据结构定义(Schema):每笔经济事件都被记录为特定类型的分录,借贷必须平衡,分录连向结算的事件,并在交易之间串联。复式记账不只是一种记账惯例,它是一套本体,甚至可能是生产环境中运行时间最久的一套。

与 Palantir 的客户不同,会计的本体还是完全标准的。T:0 调研了从 QuickBooks 到 SAP 等 7 家主流 ERP 的对象模型,发现每家系统里都出现了同样的三十多个对象:发票(Invoice)、贷项通知单(Credit Memo)、付款(Payment)、退款(Refund)、预付款(Prepayment)、账单(Bill)、打款(Payout)、工资发放(Payroll Run)等。这些厂商并没有互相抄袭,对象之所以一致,是因为它们对应的是真实的商业事件,而商业在任何地方长得都差不多。名词早在几百年前就确定了。

还有一项特性将会计与 Palantir 曾建模过的所有领域区分开来:在会计里,链接是可以证明的。

在日常运营的本体中,“这批货运与那个供应商相关”是一个建模决定——有用,但属于建模者的断言。而在会计里,一笔退款确凿对应某一笔付款,一笔付款确凿核销某张特定发票。整张图处处都要满足借贷相等的铁律。这是整张图自带的完整性校验,比后人发明“数据校验”这个词早了五百年。其他领域建好本体只能寄希望于它是对的;会计则自带核对机制。对 AI 来说,这种区别至关重要:在靠断言建起来的本体上,你只能相信模型的依据是对的;而在可证的本体上,你可以核对。

这也让当下会计软件的现状显得尤为奇特:本体就在眼前,古老、标准且可用算术验证,却没有系统真正建立在它之上。ERP 把对象存了下来,却在过账那一刻把链接丢掉。分录就是故事死掉的地方。

因此,T:0 换了一种相反的方式来构建系统。

连接型会计地图

T:0 的出发点只有一个:保留故事。财务报表上的每一个数字,都应该是一条可以反向回溯的路径的终点,穿过每一个对象和每一条链接,一直追溯到最初触发它的商业事件。T:0 将其称为“连接型会计地图”(Connected Accounting Map)。

作者在文中称,这套地图已在生产环境中运行,每年为 Reddit、GoodRx、Vimeo 和 MasterClass 等公司的财务团队生成数十亿条会计记录。

说明:这些客户名和「每年数十亿条记录」只出现在作者这篇文章里,Airwallex 新闻稿、T:0 CEO 的发布博客和官网都没有提到,属于公司自述;T:0 公开发布材料写的目标客户是美国初创公司。

这套地图包含三个部分:

对象(Objects)

进入系统的每一笔经济事件,都会变成系统能够理解的标准对象:发票、付款、退款、打款、账单、工资发放、银行交易。不管从哪个源系统进来,同一类事件都是同一种形状;记录知道自己是什么、涉及谁、处在生命周期哪一步。

这听起来理所当然,做起来却极其繁重。本体虽然标准,但现实系统里的数据并不统一。最典型的例子是“deposit”这个词:

  • QuickBooks:指正准备送往银行的一批客户付款,T:0 解析成「一批客户付款」。
  • NetSuite:指还没开票、客户先付的款项(预付款),T:0 解析成「等待对应发票的预付款」。
  • 商业银行对账单:指任何进账的现金,T:0 解析成「等待确认的银行交易」。

一个词代表三件毫无关联的事件,对应三种不同的会计分录。如果把“deposit”读错,图就会把客户的预付款连到别人的银行流水上,下游每个结论都会跟着悄悄出错,而且没人发现。这也是这项工作必须在数据摄入时、一个源系统一个源系统地完成,在任何 AI 出场之前做好的原因;地图无法在事后套在既有系统上。

链接(Links)

每个对象都将关系作为数据来保存。这笔付款核销了那张发票;这次处理商结算打款扫走了这 41 笔付款,并扣掉 41 笔手续费;这笔退款冲销了某笔特定扣款,而扣款又对应着特定合同。

在账本支出侧也是完全相同的逻辑:账单付款核销供应商账单、转账为工资发放出资、银行交易确认钱真的到了。

图 2:资金流入与资金流出的对应结构 图 2:收钱和付钱两条链形状一样,每条连线都能双向核对。

图 2 下面一行是资金流出,结构和收入一侧一样,从供应商和账单开始,最后落到银行交易,中间三步的分录是:

  • 账单行:借费用,贷应付账款
  • 账单付款:借应付账款,贷账单付款清算
  • 付款流出:借账单付款清算,贷银行

「账单付款清算」和前面的处理商清算一样,是钱在路上时用的中转科目,付出去时记进、银行扣款时转出,正常一进一出归零。同样的形状还出现在工资、公司卡扣款、报销和内部转账里。

图底部列出了每条连线怎么核对:收入一侧,付款 = 发票余额,打款 = 付款合计 − 手续费合计;支出一侧,账单付款 = 账单总额;两侧最后都要满足银行到账 = 结算净额,而且处处借等于贷。

回到 3 月那笔 4,120 美元的订阅案例:在 T:0 里,它不再是 7 行分散的分录,而是一条完整路径:合同 → 发票 → 客户付款 → 打款 → 银行流水,人和机器都能顺着它双向走(图 1 右侧起点画的是订单 Order)。这笔付款的 123.60 美元手续费挂在打款上,每条分录仍连着生成它的对象。反过来走也行:从银行里那笔入账出发,先拆出这次打款包含的 41 笔付款,找到这笔 4,120 美元的客户付款,再追到发票和合同。

从一行账倒着查:7 行分录各自挂在哪个业务对象上

合计12,360.0012,360.00

  1. 合同 / 订单生意的起点,不生成分录
  2. 开出发票
  3. 发票(发票行)借 应收账款 · 贷 递延收入
  4. 付款核销这张发票
  5. 客户付款借 处理商清算 · 贷 应收账款
  6. 这笔付款被打包进打款
  7. 打款借 银行存款 · 借 手续费贷 处理商清算同批 41 笔付款、41 笔手续费
  8. 打款被银行流水确认
  9. 银行交易对账锚点,不生成分录

会计对链接的要求是:证明不了就不连。如果打款金额对不上,或者付款找不到发票,地图不会去猜,而是记录下缺口并明确提示。在财务领域,一个诚实的缺口远比一个貌似合理的连接更有价值。

动作(Actions)

对象与链接描述世界,过账规则改变世界。T:0 里的每一笔分录都来自规则:当这类对象在特定条件下出现时,查看其链接的对象,并记下这笔分录。过账时不再临场判断,没有“通常这样”。同样的事件输入,每次输出的账目完全一致。

这并不等于会计判断消失了,而是判断挪到了它该在的地方:由人认真做一次,写成人人都能读的规则,而不是每月在上千笔交易里看不见地反复重做。至于 AI 如何改变判断本身,原作者表示会另写文章讨论。

这里也是 AI 介入、并设立边界的地方——读写严格分离:

  • 读取侧:AI 可以自由探索整张地图,回答提问、起草报告、调查异常、解释变动,给出的每个结论都有据可查,带着遍历路径。
  • 写入侧:AI 只负责设计,绝对不执行(the AI designs, it never executes)。它可以提议过账规则、建议新供应商支出的归类、草拟落实政策的工作流。但每一项提议都必须经过人工审核,转化为规则,交给确定性引擎执行。AI 生成提议,不生成数字;数字只能来自算术。

图 3 把两边并排对照:对象一行,Palantir 要为每个客户从零建模,会计的对象全行业通用;链接一行,Palantir 的连线由建模者断言,会计的连线能用算术核对;动作一行,Palantir 是受控的操作、会写回源系统,T:0 是 AI 设计过账规则、由确定性引擎执行。

图 3:Palantir 运营本体与 T:0 会计地图对照 图 3:Palantir 运营本体与 T:0 会计地图逐项对照。

地图上的 Agent 能做什么

清单上的 Agent 只能给昨天的流程提速;地图上的 Agent 能做老流程做不到的事,而且按作者的说法,可以无人盯着做,因为它说的每句话都能拿它走过的图去核对。正是地图对 Agent 的约束,让人敢把真正的责任交给它(需要指出的是,这种独立运作仅限于读取侧的调查和核对,写入账本依然必须经过人审定的规则)。作者说,下面五项里前四项是 T:0 的 AI 现在的工作方式,第五项是下一步方向。先一眼看完:

  • 波动分析:以前看着两个余额的差编故事;在地图上沿连线查出背后具体的合同和账单。
  • 对账:以前把总账和银行流水一笔笔配对;在地图上拿图里已有的预期去核实。
  • 审计:以前人工抽样再推断;在地图上全年全量遍历。
  • 关账:以前月底集中拉平;在地图上一直处于关好账的状态。
  • 假设推演:在真实账本的分支上算新条款的影响。还没做到。

波动分析:“为什么”变成了查询,不再是命题作文

今天的 AI 波动分析(比较两期科目余额并解释变化)大多是根据叙事去猜:模型看着两个余额的差额,写一个关于差额的故事。

在地图上,问 T:0 为什么递延收入变了,它不会去编故事,而是沿着连线遍历。比如它会给出这样的结果:214 份合同按期履约确认收入,12 份发生了变更,3 笔退款冲销了前期的确认。在支出侧也一样,问“为什么云成本涨了 40%”,它会直接拆到背后具体的供应商账单和卡交易,而不是给出一篇看着合理的段落。AI 追踪的是以数据形式存在的链条,拿出的结论都附带证据,因为证据就是它走过的路径。

对账:不再需要匹配

银行对账之所以存在,是因为总账和银行就像两个互不相识的陌生人,必须有人居中介绍。“银行对账快 90%”是这波产品最爱用的宣传数字。

但在 T:0 里,这种介绍早就完成了。一笔处理商结算打款、一笔账单付款、一次工资出资,每个节点都会预告银行里该出现的一笔流水,精确到金额、账户和时间窗口。3 月那笔打款在银行入账之前,就已经说明了会进来多少钱,其中属于这笔订阅的份额是 3,996.40 美元。银行流水进入时,是拿着图里已有的预期去核实,而不是重新匹配。剩下的少数真正例外,由 Agent 带着完整上下文逐个查:哪条链接断了、图预期的是什么、实际来了什么。匹配得更快只是功能,不再需要匹配才是架构。

审计:从抽样变成全量遍历

审计之所以抽样,是因为手工回溯任何一个数字的源头成本太高,不可能逐笔核查,只能抽样:比如人工抽 60 笔,再推断总体。

在 T:0 里,每个数字都自带来历,验证变成了遍历。银行对账单上任意一笔入账,都能拆到里面的每一笔付款,再追到各自的发票和合同。不再由人抽 60 笔再推断,而是由 Agent 全年持续遍历整张图,带着走过的路径报告发现。审计不再是每年一次的发掘,而是系统一直维持的属性。

关账:不再是一个名词

月末关账之所以存在,是因为脱节的系统慢慢漂移,必须定期强行拉平。

如果账本的链接一直在持续维护,在某种意义上它一直处于关好账的状态,关账就变成了一个确认节点,而不是一场要熬过去的工程。据 T:0 自述,用上地图的财务团队把关账时间缩短了 90%;文中另举了一家的例子,关账从 6 天缩到 3 天。市场在夸口几天关账而不是几周,真正的终点是“关账”不再是一个名词。

OpenAI 财务团队也把零天关账列为目标,至今仍在建设中,见《OpenAI CFO 分享用AI改造财务团队经验》。

假设推演(What-If):在真实账本分支上推演未来(尚未实现)

连接型地图记录了已经发生的世界,同时也可以像代码一样创建分支(Fork)。

按作者的设想,向 AI 提出假设时,它不去空想,而是分叉出真实的事件历史,套用不同的收入政策、合同结构或定价模式,让确定性引擎在分支上重放真实世界,并输出两个世界之间的差异(Diff)。新合同条款下账会是什么样,直接在真实交易上算出来,而不是在电子表格里建模。会计向来是记录过去的学科,能分叉的地图会让它变成排演未来的工具。

回头看这五项:它们都是 AI 能力,没有一项是模型能力。模型和别人用的是同一批,差别在给它们站的是什么。把最聪明的 Agent 放在扁平账本上它会猜,放在地图上它就知道。

三条教训

对于认真思考严肃金融场景中 AI 落地的团队,T:0 总结了三条教训:

  1. 本体是标准的,数据是混乱的。T:0 原以为难点在于 AI,结果并不是,难点是归一化。7 个 ERP、十几个支付平台,每家把同样的五百年老对象塑造成不同的方言(正如前文提到的 deposit)。没有捷径,每一个被跳过的边角情况,最后都会变成某个人对不上的账。
  2. 在金融领域,概率成立的链接比没有链接更糟。AI 行业通常习惯了 95% 的置信度:这对推荐系统足够好,对审计却是致命的。一个大概率对的链接,迟早会在某人的收入数字里错一次,而这样一次发现就会毁掉对系统里所有其他链接的信任。T:0 靠的办法是:链接要么被证实,要么就不存在,而且缺了要让人一眼看见。信任像利息一样累积,一次违约就能抹掉多年。
  3. AI 靠出示路径赢得信任,而不是靠推理说辞。财务总监、审计师或董事会不会因为 AI 的解释听起来严谨就相信它,他们只相信证据。能经受住审计检验的 AI 结论,只有那些能对应到地图路径的结论:这些对象、这些链接、这条规则、这条分录。建好让每个答案都能溯源的底座,信任就不再是盲目的冒险,而变成了一次查验。

结语

行业正在竞相把更聪明的 Agent 架在同样陈旧的总账之上。作者认为,这场比赛的方向跑反了:模型带来的是表达的流利,地图带来的才是真实。而在会计里,真实本身就是产品的全部价值。

作者说,Palantir 证明了组织愿意为了让 AI 值得信赖而围绕本体重构数据,代价是必须逐个客户手工搭建本体。会计从不需要施工队,它的本体自 1494 年起就在眼前,全行业通用,自带校验机制,只是在等待软件认真对待它。

T:0 的自我定位正是那套软件:不是一个更聪明的簿记员,而是一本每个数字都还记得自己来历的账,加上终于读得懂它的 AI。

Palantir 向运营展示了本体的价值,而 T:0 想展示给财务。

来源
Why Every AI Accountant Fails, and Why Palantir Knew FirstErik(@eya0,T:0 工程团队)·2026-09-09·查看主材料
本站说明
原文为 T:0 团队成员撰写的产品与架构文章,客户名与效果数字为公司自述。
↑ 正文结束
✓ 本篇全文免费开放

会员可复制、下载全文 Markdown,还能让你的 AI 订阅和提问。

阅读原文 ↗
📮 新解读第一时间进邮箱

读完觉得有用?留个邮箱,每篇新解读发布就送达,随时退订。