第39课 · AI 生成审计底稿:实战与避坑指南
本节要点
- 一条指令让 AI 生成货币资金底稿(索引表、审定表、明细表、分析表、测试表)
- 结果看着不错,但点开看会发现:AI 在「编」没看过的凭证结论、抽样不符合准则、效率不如传统代码
- 用 AI 做底稿的经验:生成表别填模板、先把数据标准化再生成、脚本要能固化复用
- 让 AI 不乱来:把要求做成 Skill 加强约束 + 对准则引用做事实性检查
- 制作底稿 Skill 要原子化:抽样、凭证检查、函证各自独立,科目 Skill 只做流程描述
- 示例数据(科目余额表、序时账)已上传百度网盘,可下载练习
📁 测试数据获取
本节课演示用的示例科目余额表和序时账数据,已上传到百度网盘,大家可以下载下来跟着练习。
💡 数据是脱敏的演示数据,拿来跑通流程即可。百度网盘链接会在课程群内公布,找不到的话在群里问一下。
1. 实战:一条指令生成货币资金底稿
1.1 准备工作
把科目余额表和序时账放在一个文件夹里,比如:
审计项目/
├── 科目余额表.xlsx
└── 序时账.xlsx1.2 给 AI 下指令
打开 OpenCode / Claude Code,指向数据所在的文件夹,说一句:
根据这个文件夹里的财务数据(科目余额表和序时账),按照中注协的审计底稿要求,帮我生成一份货币资金的 Excel 底稿。
如果想指定用上一课安装的 Excel Skill,可以在 /skill 里选 Excel Automation(用 Xlwings 操作,格式安全)。不指定也行,AI 会自己选合适的库。
1.3 AI 执行了哪些步骤
AI 收到指令后,大致会走这几步:
- 探查目录结构:扫描文件夹,找到科目余额表和序时账文件
- 读取并分析数据:读取两个 Excel,做一些统计分析(各科目金额、月度分布等)
- 规划任务:拆解成几个子任务——分析数据、写生成脚本、执行生成、验证勾稽
- 写 Python 脚本:用代码生成各个 Sheet(索引表、审定表、明细表、分析表、测试表)
- 执行脚本:生成最终的 Excel 底稿
- 验证勾稽关系:检查金额是否对得上
整个过程大约 5-10 分钟,最后会产出一个完整的 .xlsx 文件。
2. AI 生成的底稿长什么样
打开生成的 Excel,你会发现 AI 已经做好了这些 Sheet:
| Sheet | 内容 | 说明 |
|---|---|---|
| 索引表 | 列出本次底稿包含哪些审计程序 | 相当于目录 |
| 审定表 | 未审数据、调整、审定数据的对比 | 底稿核心 |
| 明细表 | 按明细科目逐笔列示 | 含编制表头、审计说明、审计结论 |
| 分析表 | 月度收支金额统计 | 12 个月的波动分析 |
| 收支测试表 | 抽样凭证检查 | 抽了借方 top15 + 贷方 top15 + 随机 10 笔 |
| 截止测试表 | 期末截止性测试 | 跨期收入/支出的检查 |
表头、审计说明、审计结论这些位置,AI 都自动填好了。对于 C 类项目来说,这个完成度已经相当惊艳了。
💡 很多事务所的 C 类项目,现在还做不到这个程度。这说明用 AI 自动生成底稿,是完全可行的。
3. 结果看着不错,但仔细看就发现问题
底稿结构是齐了,可是一张张表点开看,就会发现几个要命的问题。这些不是吹毛求疵,是直接影响能不能用的硬伤。
3.1 最严重的问题:AI 在「编」
先看那张收支测试表。AI 的抽样逻辑是:借方取金额最大的 15 笔,贷方取最大的 15 笔,再随机抽 10 笔,凑成 40 笔。这个抽样方式是否符合你事务所的抽样准则?大概率不符合——审计抽样不是这么拍的。
更要命的是表里的审计说明和审计结论。AI 写得头头是道,好像真的检查过这些凭证一样。但你想想——我根本没给它凭证的 PDF 扫描件,它从哪儿检查的?
截止测试表也是一样。没给任何原始单据,它照样给了检查结论。
这就是目前大模型最典型的问题:它会「脑补」自己没看过的东西。在别的场景这可能无所谓,但审计底稿是签字担责的法律文件,编出来的东西一旦被发现,后果不堪设想。
3.2 效率问题:AI 做这个其实不快
刚才这条指令,从下达到生成完,大概花了好几分钟。对咱们人来说,几分钟生成一整套底稿当然快得不可思议。但对机器来说,这个速度其实很慢。
对比一下:我之前做的审计工具箱,用传统代码批量跑,半小时能生成 100 多家被审计单位的全部明细表和披露表。传统代码写好一次,后面就是机械执行,速度碾压 AI 每次从零开始思考。
所以这里要明确一个判断:不是所有底稿内容都适合用 AI 生成。
像明细表、披露表、辅助到 Word 报告这些——格式固定、内容机械、且容不得半点数字错误的部分,建议还是用传统工具做。执行效率高,准确度有保障。AI 更适合做那些需要灵活判断的部分。
3.3 一个实战经验:生成表,别填模板
如果你确实要用 AI 做底稿,有一个经验要记住:让 AI 用代码直接生成表,不要给它一个 Excel 模板去填。
刚才演示的这条指令,AI 的做法是写 Python 脚本直接生成各个 Sheet——这就是「生成」。为什么不选「填模板」?
第一,速度。 审计底稿的模板通常很复杂——合并单元格、多层表头、条件格式层层嵌套。AI 要先理解你这个模板的结构,这一步极其耗时,而且理解完还经常填错位置。直接生成就没这个问题。
第二,裁剪方便。 每个项目的审计程序是不一样的,C 类项目可能只做几个核心程序。如果是填模板,你得手动把不用的 Sheet 删掉;如果是生成,需要哪些程序就生成哪些,干干净净。
3.4 脚本能固化,但前提是解决格式不一
刚才 AI 写的脚本,是针对这次给的科目余额表和序时账格式来的。如果换一家客户,导出的表头列不一样、科目编码规则不一样,这个脚本就直接废了——AI 又得重新理解格式、重新写代码,效率又掉下来了。
这就引出一个关键问题:每家被审计单位导出的财务数据格式都不一样。 列的顺序、表头行数、有没有辅助核算列……千差万别。这是阻碍自动化的最大障碍。
怎么解决?答案是先把数据标准化。
推荐借助 SW 审计工具箱里的看账功能(或者类似的能做数据清洗的工具)。把科目余额表、序时账、辅助科目余额表导进去,它会自动做清洗,然后把清洗后的标准数据存在本地的一个数据库里。
这样一来,不管原始 Excel 是什么格式,AI 读到的都是同一个数据库里的标准化数据。脚本写一次就能复用,换一家客户只是换数据,代码不用动。
4. 让 AI 不乱来:约束 + 事实性检查
刚才的演示,我下的是一条完全没有约束的裸指令——就让它「按中注协要求生成货币资金底稿」,其他什么都没说。结果就是 AI 按自己的理解随意发挥,该编的编、该省的省。
要让它可控,得从两个方面入手。
4.1 把底稿要求写死,做成 Skill
你的底稿长什么样、每个程序具体怎么做、整个流程分几步——这些不应该每次都在对话里重复说,而是固化成一个 Skill。
Skill 里要明确写清楚:
- 每个 Sheet 的结构、列名、表头怎么排
- 抽样按什么规则、检查哪些内容、结论怎么写
- 第一步做什么、第二步做什么,整个流程串起来
- 最重要的一条:禁止虚构——所有底稿内容必须基于真实的财务数据和实际提供的审计资料,没看过的东西不许写结论
有了这些约束,AI 就不会像刚才那样「自由发挥」了。
4.2 事实性检查:AI 写的引用未必是真的
AI 生成底稿时,经常会引用审计准则、法规条文来支撑它的审计说明。比如它可能写「根据《中国注册会计师审计准则》第1312号——函证……」。
问题是:它写的这个准则编号和名称,不一定真的存在。 AI 会一本正经地编造看似权威的引用。
所以要做事实性检查——底稿里凡是涉及外部依据的内容(引用的准则、法规、政策原文),都要验证真伪。两种方式:
- 让 AI 联网搜索,核实准则编号和名称是否真实
- 或者给它挂一个知识库(参考第 17 课 IMA 知识库、第 36 课本地 RAG),让它从知识库里查证,而不是自己编
⚠️ 这一步不能偷懒。审计底稿里一条编造的准则引用,就够毁掉整份报告的可信度。
5. 真要做底稿 Skill,记住两个字:原子化
如果你打算认真做一个能用的底稿 Skill,这是本节最重要的方法论。
5.1 别把所有功能塞进一个 Skill
很多人第一反应是:做一个「货币资金底稿 Skill」,从抽样到检查到出结论,全包。这样做有三个问题——Skill 太大 AI 理解不了、换个科目又得从头写、改一处可能影响全局。
5.2 拆成单点能力,各自独立
正确的思路是把底稿编制拆成原子化的能力。你看审计工作里,有哪些动作是反复出现的、跟具体科目无关的?
- 抽样——不管审哪个科目都要抽凭证
- 凭证检查——抽中了就要核对金额、日期、对方科目
- 函证——银行、应收应付都可能要发函
- 截止测试——每个科目期末都要看跨期
这些,每个做成一个独立的原子化 Skill,只完成自己那一件事。它们跟「货币资金」还是「应收账款」无关,是审计的底层能力。
5.3 科目 Skill 只管流程,不管执行
那货币资金的 Skill 干什么?它只做流程性的描述——告诉 AI 这一步该做什么、下一步该做什么、每一步去调用哪个原子化 Skill:
# 货币资金底稿编制流程(示意)
第一步:读取标准化数据库,确认货币资金各明细科目余额
第二步:对大额收支进行抽样 → 调用【抽样 Skill】
第三步:核对抽中凭证的原始单据 → 调用【凭证检查 Skill】
第四步:向银行发函确认存款余额 → 调用【函证 Skill】
第五步:检查期末前后的收支跨期 → 调用【截止测试 Skill】
第六步:汇总分析,得出审计结论注意,货币资金 Skill 自己不执行任何检查,它只是个「调度员」。具体干活的是那些原子化 Skill。
这样的架构有两个好处:
第一,换个科目——比如做应收账款底稿——你只需要写一个新的流程描述(应收账款的步骤和货币资金不一样),底层的抽样、函证、截止测试这些 Skill 原封不动复用。
第二,每个原子化 Skill 可以单独打磨。抽样逻辑优化了,所有科目都受益。
6. C 类项目怎么落地
C 类项目(低风险、规模小)最适合用 AI 自动化。建议路径:
路径一:传统代码 + AI 写代码(推荐)
- 明细表、披露表、辅助到报告:用传统代码工具(AI 帮你写代码)
- 这些内容固定、格式统一,做成系统或工具批量执行
- 执行效率高,准确度有保障
路径二:Skill + 流程描述
- 把审计程序拆成原子化 Skill
- 科目底稿用流程描述串联,AI 按步骤调用
- Skill 内部可以嵌工具(比如调用数据库、调用清洗后的数据),提高执行效率
路径三:混合方案(最务实)
- 能用传统工具的(明细表、披露表),就用传统工具
- 需要灵活判断的(抽样策略、异常分析、审计说明撰写),用 AI Skill
- 两者通过标准化数据(数据库)打通
💡 这个过程不简单——你需要对自己的审计业务有深入理解,同时能把需求清楚地说给 AI。但一旦跑通,C 类项目的底稿编制可以大幅自动化。
⚠️ 常见问题
AI 生成的底稿可以直接归档吗?
绝对不行。 至少要人工复核以下几点:
- 凭证检查、函证等需要看原始单据的程序——AI 没看单据就写的结论必须删除重做
- 引用的准则编号、名称——必须逐条验证是否真实存在
- 金额勾稽——AI 生成的数字要和原始数据核对
- 审计结论——不能照搬 AI 写的模板话术,要基于实际审计发现
AI 生成一份底稿要多久?
简单的裸指令大约 5-10 分钟。如果做成固化 Skill + 标准化数据,可以缩短到 1-2 分钟。但批量处理(几十上百家)还是建议用传统代码工具。
不同事务所的底稿模板不一样,Skill 能通用吗?
科目级 Skill 不通用(每家模板不同),但原子化 Skill 通用(抽样、函证、截止测试这些能力跟事务所无关)。建议优先打磨原子化 Skill,科目级 Skill 根据自己事务所的模板定制。
不会写代码,能做底稿 Skill 吗?
可以。你不需要自己写代码,只需要:
- 懂审计业务(知道每个程序该做什么)
- 能把流程说清楚
- 让 AI 帮你写代码、做 Skill
这正是本课程一直在训练的核心能力——把需求说清楚,让 AI 去实现。
关键收获
TIP
一条裸指令就能生成结构完整的底稿,说明 AI 做审计底稿完全可行,尤其对 C 类项目。但要用好它,记住三件事:
- 别全交给 AI:明细表、披露表这些格式固定、容不得错的,用传统工具更靠谱——AI 做这个又慢又不稳
- 别让它自由发挥:把底稿要求和流程固化成 Skill,明确禁止虚构;所有准则引用都要做事实性检查
- Skill 要拆开做:抽样、凭证检查、函证做成独立的原子化 Skill,科目底稿只写流程描述去调用它们——换个科目底层全复用
最后记住:每家事务所的模板都不一样,没有一个现成的 Skill 能直接套用。但只要掌握了「标准化数据 + 约束 + 原子化」这套方法论,C 类项目的底稿自动化完全做得出来。
下一步
- 下载示例数据,跟着视频跑一遍货币资金底稿生成
- 思考你手头的 C 类项目,哪些程序可以拆成原子化 Skill
- 结合第 6 课(学会 Skills)和第 10 课(Skill Creator),开始制作你的第一个原子化 Skill
参考链接
- 第6课 · 学会 Skills:/lessons/06-learn-skills
- 第10课 · Skill Creator 制作工具:/lessons/10-skill-creator
- 第38课 · AI 操作 Excel(上一课):/lessons/38-ai-excel
- 第17课 · AI 调用 IMA 知识库(事实性检查):/lessons/17-ima-knowledge-base