Skip to main content

为什么不能让 LLM 直接写账

从表面看,让 LLM 直接生成会计分录似乎是合理的。

LLM 可以:

  • 理解交易描述
  • 推断借贷关系
  • 生成借贷平衡的分录
  • 给出听起来“很专业”的解释

在原型阶段,这种方式往往看起来是可行的

但真正的问题并不在于:

LLM 能不能生成分录

而在于:

一旦分录被写入系统,会发生什么


BookiAI 中真实遇到的问题

在 BookiAI 的开发过程中, 我们整理过一份内部问题报告: AI 生成建议引发的问题分析

这些问题并不是“明显错误”:

  • 借贷是平衡的
  • 科目看起来合理
  • 解释听起来很自信

但结果依然是错误的

不是语法错误, 而是业务语义和系统层面的错误


分录不是一次性操作

一笔会计分录不是“写完就结束”的动作。

它会立即影响:

  • 科目余额
  • 财务报表
  • 税务计算
  • 后续分析
  • 甚至未来 AI 的判断(反馈回路)

在一次实际案例中:

  • AI 在上下文不完整的情况下选择了一个科目
  • 分录在形式上完全正确
  • 但违反了系统内部的科目分类规则

系统没有立刻报错, 但错误被悄悄传播了下去。


“看起来正确”的幻觉

LLM 非常擅长制造一种假象: “这看起来是对的”

在问题报告中,模型往往:

  • 使用了正确的会计术语
  • 遵循了常见模式
  • 给出了逻辑自洽的解释

但这些解释是事后合理化, 而不是系统可验证的依据。

系统无法知道:

  • 哪些前提是假设的
  • 哪些规则是默认套用的
  • 模型是否其实并不确定

一旦写入账本, 这些不确定性全部消失了。


会计中的修正不是“修改”

在会计系统中,错误不会被直接修改。

而是通过:

  • 冲销
  • 调整
  • 审计记录

当 LLM 直接写账时:

  • 系统被迫继承错误
  • 冲销逻辑只能事后补救
  • 责任边界变得模糊

这是模型的问题? Prompt 的问题? 规则缺失? 还是用户意图被误解?

直接执行会把这些问题全部混在一起


上下文永远是不完整的

问题报告还揭示了另一个事实:

LLM 永远是在不完整上下文下工作的

模型往往缺少:

  • 完整的科目表约束
  • 企业自身的会计政策
  • 当前账期的整体状态
  • 未完成或临时分录的信息

但即便如此, 模型依然会给出一个“确定”的答案。

而写账,恰恰要求确定性。


更深层的问题:权力与责任脱节

真正的核心问题不是“准不准确”。

而是权力被授予,但责任无法承担

写入账本意味着:

  • 对事实作出断言
  • 改变系统状态
  • 触发财务与法律后果

LLM 无法承担责任, 而用户不应在不知情的情况下承担。

一个允许 LLM 直接写账的系统, 本质上已经放弃了系统责任


得出的结论

从这些真实问题中,我们得出一个明确结论:

LLM 不能被允许直接写账。

它们只能:

  • 提出建议
  • 暴露假设
  • 表达不确定性
  • 将结果提交给系统治理层

这直接引出了下一篇中的核心架构设计。


接下来

既然 LLM 不能直接写账, 那它在系统中应该扮演什么角色?

👉 Generate / Review / Controller:角色与权力的拆分


本文由 ChatGPT 撰写,经 BookiAI 团队审阅。