夜雨聆风学习资料网

ARTICLE · 1266049

合并报表 AI 助手三环节串联实测:一次上传 4 张表,一份总报告

合并报表 AI 助手三环节串联实测:一次上传 4 张表,一份总报告

三张独立的工作流图,能不能串成一条流水线?上个月我分别跑通了合并报表的 ③ 内部往来抵销核对、④ 内部交易抵销分录、⑦ 底稿平衡校验三个 AI Agent,各有各的入口,各有各的输出。这个月我做的事只有一件:把它们串成一个总编排,让财务同事一次上传 4 张表,拿到一整份合并报表校验报告。

结果跑通了,数据全对。但这趟串联踩的坑,比单独搭三个 Agent 加起来还多。写下来,给同样在做"AI 落地财务流程"的人一份避坑清单。

01先交代背景:三个环节为什么值得串

合并报表有七个环节,我的系列文章里反复讲过:只有 ③④⑦ 三个环节适合用 AI 落地,因为满足三个条件——表能拿来、规则能说清、输出能复核。

这三个环节分别验证过:

③ 内部往来抵销核对:母子公司应收/应付内部往来逐笔勾稽。实测应收 4 行、应付 3 行,完全一致两对(各 120,000 抵销),中山宏远记错 5,000、佛山新锐其他应收 30,000 漏记,全部命中。

④ 内部交易抵销分录:按售出比例生成抵销分录。实测 4 笔内部交易,生成 3 笔分录、未实现损益 35,000 全中。

⑦ 底稿平衡校验:借贷平衡、勾稽、抵销、损益结转四类校验。实测 12 科目,查出 8 条问题、差额 -30,000。

三个都能单独跑。但财务做合并报表,不可能一次只跑一个环节——数据从 ③ 传到 ④ 再传到 ⑦,中间靠人手工搬运。串联的价值就在这里:把"人搬运数据"换成"工作流自动接力"。

02串联方案:一个入口,四张表,一份报告

总编排工作流的结构很简单:

图 1 · 串联总架构:开始节点接收 4 个文件

开始节点接收 4 个文件:应收侧明细、应付侧明细、内部交易台账、合并底稿。

三个工具节点依次接力:③ 往来抵销核对 → ④ 交易抵销分录 → ⑦ 底稿平衡校验。

LLM 总报告节点把三个环节的输出汇总成一份四段式中文报告:往来抵销结论、抵销分录建议、底稿校验结论、复核建议。

结束节点输出:总报告 + 问题明细 + 汇总信息。

听起来就是"画三条线的事"。真正难的不是画线,是变量能不能传过去。

03合并报表 AI 助手 · 三环节串联(③→④→⑦)方案与实操步骤

一、串联逻辑:三个环节怎么连成一条线

③④⑦ 三个工作流已在 Dify 分别搭好、分别跑通。串联的目标很简单:

一次上传 4 张表(应收表、应付表、交易台账、合并底稿)→ 一份合并报表 AI 助手总报告。

串联的数据流:

串联数据流

应收表 + 应付表 ──→ ③ 往来抵销核对 ──→ matched 240,000 / diff 35,000 / issues交易台账 ──────→ ④ 交易抵销分录 ──→ vouchers 3 笔 / unrealized 35,000 / issues合并底稿 ──────→ ⑦ 底稿平衡校验 ──→ issues 8 条 / check_result / report↓ 全部汇总 ↓LLM 总报告助手 → 合并报表 AI 助手·总报告

为什么测试数据天然配套:⑦ 底稿里埋的雷,正是 ③④ 抵销"没做完"的结果——

应收账款调贷 200,000(应 240,000)→ ③ 应发现的往来差异 40,000;

存货调贷 0(应 35,000)、营业收入调借 0(应 230,000)、营业成本调贷 0(应 195,000)→ ④ 应生成的抵销分录;

本年利润 430,000(应 390,000)→ 抵销完成并结转后修正。

所以这套串联,不是三个无关演示的拼接,而是一条完整的合并报表 AI 处理流水线。

二、串联架构图

图 2 · 三环节串联架构图(总览)

三、动手前先把之前的三个 AGENT 发布工具

三个发布工具的完整信息,表格格式(可直接对照粘贴到 Dify 发布表单):

环节
英文名称(名称,唯一)
显示名
中文摘要(摘要栏)
③ 内部往来抵销核对
ar_ap_offset_review
内部往来抵销核对
核对母子公司应收 / 应付内部往来余额,识别差异与漏记,输出抵销匹配清单(matched)、差异金额(diff)与问题清单(issues)。用于合并报表内部往来抵销环节。
④ 内部交易抵销分录
intercompany_trade_offset
内部交易抵销分录
识别内部销售形成的未实现损益,按售出比例生成抵销分录(vouchers),计算未实现损益金额(unrealized)并输出问题清单(issues)。用于合并报表内部交易抵销环节。
⑦ 合并底稿平衡校验 + 报告助手
consolidation_workpaper_check
合并底稿平衡校验 + 报告助手
对合并底稿执行借贷平衡、勾稽、抵销完整性、损益结转四类校验,确定性重算合计与差额(check_result),输出问题清单(issues)与中文校验报告(report)。用于合并报表底稿平衡校验与报告环节。

已发布的工作流如果修改过,必须重新发布,工具区才会用新版本;发布后在工具区看不到,先刷新页面再检查。

图 3 · 发布工具示例(③ 内部往来抵销核对 发布为工具)

图 4 · 发布工具表单填写(英文名称 / 显示名 / 中文摘要)

同理,其他两个也按如上步骤发布工具。

四、总编排工作流搭建(动作级步骤,方式 A:工具调用)

推荐做法:新建一个"总编排工作流",把三个已发布工作流当工具串行调用。不合并节点、不动原工作流,三个环节保持独立可复用。

Step 1 · 新建工作流

Step 1 · 新建工作流

Dify 工作室 → 创建空白应用 → 选择「工作流」命名:合并报表 AI 助手·三环节串联英文名(可选):consolidation_ai_assistant描述:串行调用内部往来抵销核对、内部交易抵销分录、合并底稿平衡校验三个子工作流,汇总生成合并报表 AI 助手总报告。

图 5 · Step 1 新建工作流应用(Workflow)

Step 2 · 开始节点:加 4 个文件变量

变量名
类型
说明
receivable_file
文件
应收表(③ 用)
payable_file
文件
应付表(③ 用)
trade_file
文件
内部交易台账(④ 用)
workpaper_file
文件
合并底稿(⑦ 用)

图 6 · Step 2 开始节点:4 个文件变量

Step 3 · 工具节点 ×3(调用已发布工作流)

Dify 的工具节点 → 选择对应已发布工作流:

节点名
工具
输入(从提取器选)
输出(手动确认)
③ 往来核对
ar_ap_offset_review
应收文本 + 应付文本
matched / diff / issues
④ 交易抵销
intercompany_trade_offset
交易台账文本
vouchers / unrealized / issues
⑦ 底稿校验
consolidation_workpaper_check
底稿文本
issues / check_result / report

💡 工具节点的输入变量名以该工作流发布时定义的参数名为准(③④ 是文档文本,⑦ 是 workpaper_text)。选不到输出变量时,先确认该工作流已发布且版本是最新。

图 7 · Step 3 工具节点(③ 往来核对)

图 8 · Step 3 工具节点(④ 交易抵销)

图 9 · Step 3 工具节点(⑦ 底稿校验)

Step 5 · LLM 总报告节点

模型:DeepSeek(deepseek-chat 级,系列铁律:金额/多规则汇总不用小模型)

SYSTEM 提示词:

SYSTEM 提示词(合并报表 AI 助手·总报告)

你是合并报表 AI 助手。基于三环节校验结果(③ 内部往来抵销核对、④ 内部交易抵销分录、⑦ 合并底稿平衡校验),为财务专业人员生成一份简短的中文总报告。报告结构:① 往来抵销核对结论:应收/应付内部往来的差异金额与问题清单;② 交易抵销分录建议:每笔抵销分录(借贷方向与金额)、未实现损益金额;③ 底稿平衡校验结论:是否平衡、差额、四类问题明细(借贷平衡/勾稽/抵销/损益结转);④ 复核建议:建议人工重点核查的事项。要求:问题明细用 markdown 表格呈现;语言克制、专业;只使用提供的校验结果,不编造未提供的数据。

用户提示词(上下文分别从三个工具节点选):

用户提示词(合并报表 AI 助手·总报告)

以下是合并报表三环节校验结果,请生成合并报表AI助手总报告:③ 往来核对结果:<③ text>④ 交易抵销结果:<④ text>⑦ 底稿校验结果:<⑦ text>

图 10 · Step 5 LLM 总报告节点 + SYSTEM 提示词

Step 6 · 结束节点(输出 4 个变量)

要选的位置
选这些变量
③ 合并报表 — 内部往来抵销核对 AGENT
TEXT
④ 合并报表 — 内部交易抵销分录 AGENT
TEXT
⑦ 合并报表 — 底稿平衡校验 + 报告助手
TEXT

图 11 · Step 6 结束节点变量映射

五、数据契约表(每环节输入输出对接)

图 12 · 数据契约表(环节间输入输出对接)

图 13 · 数据契约表(续)

04实测结果:三环节输出全部正确

串联跑通后的输出,和三个环节单独跑的结果一字不差:

环节
关键输出
实测结果
③ 往来抵销核对
可抵销金额 / 差异金额
matched 240,000 / diff 35,000,4 行全覆盖
④ 交易抵销分录
抵销分录 / 未实现损益
3 笔分录,unrealized 35,000,T04 单边入账 30,000
⑦ 底稿平衡校验
问题清单 / 平衡结论
8 条问题,balance_ok=false,差额 -30,000

三份数据汇进 LLM 总报告节点,生成的总报告把三个环节串成一条逻辑链:往来差 35,000 → 抵销分录 3 笔 → 底稿差 30,000 → 复核建议 5 条。

但如果你以为复制粘贴就能复现,那你就错了。 以下是三个真实踩过的坑,每一个都值得单独记下来。

05三个真实踩过的坑

坑 1工具出参名,必须和子工作流结束节点输出一字不差

这是整个系列最反直觉的一条:Dify 按名字取变量,不是按位置。 工具出参定义成了 vouchers,但子工作流结束节点实际输出叫 offset_vouchers——运行时这个字段就是 null,因为 Dify 找不到叫 vouchers 的输出。

哪怕只差一个字母、一个下划线,都取不到。

解法:打开子工作流,抄下结束节点输出变量的真实名字和类型,再到「工作流作为工具」的出参配置里,一字不差地填回去。改完必须保存+重新发布。

坑 2结构化输出子字段选不到——这是官方已知 bug

最折磨人的一个。子工作流里,LLM 节点的结构化输出明明定义了 issues/offset_vouchers/summary,但在结束节点和总编排的变量选择器里,就是展开不出来。之前能选,某天突然选不到了。

我查了一圈,确认这不是配置问题:Dify 1.14.0 的已知 bug(GitHub issue #35833)——structured_output 子字段在新应用里无法选中、在升级后的应用里无法被下游节点读取。官方在 2026 年 5 月收到报告,最新版本已到 1.18.0。

解法(两选一):

坑 2 · 解法

根治:升级 Dify(备份 DSL 后 git checkout 最新版 + docker compose pull/up),升级后子字段大概率恢复可选。绕开(推荐先用):用 text 传递。每个工具的 text 输出携带该环节的完整结果,LLM 总报告节点只引用三个 text,让模型自己从完整文本里提取和组织——正好符合"AI 负责理解"的分工,完全不依赖结构化输出的选择器。

坑 3改完配置,保存≠发布

在「工作流作为工具」配置里加了出参字段,但按钮还停在「保存」,左上角显示"已发布 1 天前"——总编排调用的是旧版本,新字段根本不生效。

解法:保存 → 重新发布 → 回总编排刷新。三步缺一不可,判断标准是发布后左上角时间变成"刚刚"。

06判断框架:什么流程适合这样串

这一趟下来,我沉淀了一套判断"财务流程能不能用 AI 串联落地"的框架,三条缺一不可:

表能拿来:输入是结构化的表格文件,不是散落在线下的凭证。

规则能说清:每个环节的判断规则可以写成明确条件(勾稽、比例、差额),不是靠拍脑袋。

输出能复核:AI 输出可以逐条和原始数据对账,错了能被发现。

满足这三条的环节,串联的收益远大于成本;不满足的,别硬上,先让人把数据理清楚。

07边界与下一步

说清楚边界:这套串联跑通的是"校验+报告",不是"自动改账"。AI 查出问题、给出建议分录,但写进底稿、调整合并数、重新结账,仍然由财务人员操作——这符合我们系列一以贯之的口径:AI 负责理解和辅助,多维模型负责精确计算,业务与财务负责专业判断。

下一篇

     合并系列已经写完 了,下一篇我们研究下全面预算吧,看看AI与传统预算软件的协作是怎么样的?

本文含推广商品,图书仅作为财务实务学习参考,账务处理请以企业会计准则及公司内部制度为准。

这个系列都写了什么

应收线  应收对账 · 银行流水识别 · 核销 · 账龄催收 ·应线收总控

应付线  三单匹配 · 应付对账 · 付款审批 · 应付总控

费用线 费用审核· 费用审批

总账线  银行调节表 · 凭证审核 · 往来核对 · 期末结账检查 · 报表差异分析 · 总账总控 (1)· 结转损益·期末计提·总账线(关账)

管理会计线 资金预测·经营分析报告 · 预算执行资金 ·预测总控 

方法篇  《20 个财务 Agent 总结篇》 · 《提示词的五个套路》

合并报表线   合并报表线开篇 · 往来抵销核对· 交易抵销分录· 底稿校验与报告· 合并报表 AI 助手·三环节串联③→④→⑦(本篇)

想自己动手复现?测试数据、完整提示词和发布参数我都可以发给你。

#财务AI系列 · #集团合并报表 · #Dify实操

相关学习资料