用可视化工作流做了一个发票识别助手,聊聊这次 Agent 落地踩坑
最近我在团队里折腾了一个发票识别助手,起因其实很朴素。财务同事每个月都要处理一堆报销发票,PDF、图片、电子票夹杂在一起,人工核对发票代码、发票号码、开票日期、购买方、销售方、商品名称、金额这些字段,最后再录入到飞书多维表格。量少的时候还能靠耐心,月底集中报销时就很容易出错。更麻烦的是,有些同事提交的发票格式不统一,截图、扫描件、电子 PDF 都有,人工补录经常来回确认。
我一开始想得很简单,写个 OCR 脚本,把图片识别出来,再用大模型抽字段,最后调飞书接口写入表格。这个方案当然能做,但很快就遇到一个现实问题:需求一直在变。今天财务说要增加销售方税号,明天又说金额字段要区分不含税金额和价税合计,后天又希望异常发票单独标记。每改一次逻辑都要重新调整代码、测试、部署,虽然不算难,但琐碎得让人有点疲惫。
说回当时,AI Agent 和 RAG 相关工具正好很火,我就顺着这个方向看了几个可视化编排平台。Dify 的界面和调试体验确实不错,适合快速搭一个应用原型;Coze 的上手门槛也低,插件生态对轻量 Bot 很友好。我自己试下来,它们都能减少不少样板代码,但我的场景有个硬约束:发票里涉及企业抬头、金额、税号、报销信息,团队希望尽量本地化部署,数据不要随便出内网。再加上后续可能要对接 OA、飞书、甚至财务系统,所以我更倾向于找一个开源、可私有化、工作流可视化能力相对完整的方案。
后来在翻开源 RAG 框架和社区讨论时,我注意到 FastGPT。它不是那种只负责聊天的机器人,更像一个可以把知识库、模型、接口和流程串起来的 AI 应用构建平台。比较吸引我的是,它开源免费,采用 Apache 2.0 协议,支持本地化私有部署,也有可视化工作流。对我这种不想每个小需求都重新写一遍胶水代码的人来说,这类节点化编排还是挺有吸引力的。
我的发票识别流程大概是这样搭的。用户上传发票文件后,工作流先做文档解析和 OCR 识别,再把识别文本交给模型抽取结构化字段。字段抽取后进入校验节点,比如检查发票号码是否为空、金额是否能解析成数字、购买方名称是否符合预期。通过校验的数据再调用飞书多维表格接口写入,如果不通过,就返回一段说明,让提交人补充或重新上传。这个流程听起来不复杂,但如果用纯代码写,异常分支、字段变更、接口参数调整会占掉不少时间。
可视化工作流的好处在这里就体现出来了。它的体验确实有点像搭积木,AI 对话、文档解析、HTTP 请求、判断器、变量更新这些节点可以按业务顺序拖出来,再通过连线串起来。财务同事提需求时,我可以直接打开画布给她看:这里是识别,这里是字段校验,这里是写入飞书,这里是异常返回。她不需要理解后端代码,也能看懂流程大概怎么走,沟通成本低了很多。
我还顺手试了知识库能力。平台支持 PDF、Word、Excel、PPT、Markdown 等多种格式导入,会自动解析、切分和向量化。虽然发票识别本身不一定依赖大量知识库,但我把报销制度、发票填写规范、常见驳回原因放进知识库后,助手在返回异常原因时就不只是说字段缺失,而是能结合规则解释为什么不符合报销要求。这类 Agentic RAG 的价值不在于让模型凭空发挥,而是让它尽量基于企业自己的材料回答,减少一本正经胡说的概率。
模型接入这块也比较灵活,可以根据成本和效果选择 ChatGPT、Claude、DeepSeek 等模型。对企业内部应用来说,标准 API 接口也很重要,因为一个工作流不可能只停留在问答层面,最后往往都要接企微、飞书、钉钉、OA、ERP、CRM 或数据库。我的这个小流程目前只是写入飞书多维表格,但从设计上看,后面要接报销审批或者财务系统,也不至于推倒重来。
当然,说实话,它也不是没有让我皱眉的地方。节点少的时候画布很清爽,节点一多,连线就容易变得有点乱,特别是异常分支多的时候,要靠命名和分组维持可读性。复杂循环逻辑也有一定学习门槛,刚开始我以为拖拽就等于不用理解程序逻辑,后来发现该懂的变量、条件、上下文传递还是得懂。不然工作流跑不通时,排查问题一样会卡住。
但整体看下来,这种方式确实更适合我这次的需求。它没有取代代码,只是把频繁变化的业务编排从代码里抽出来了。以前财务说要新增一个字段,我可能要改解析逻辑、改数据结构、改接口参数、重新发版;现在很多改动可以直接在工作流里调整节点和变量,验证周期短很多。对初中级开发者来说,这类工具也比较友好,因为它把 RAG、模型调用、接口请求这些能力封装成了可组合的模块,不用一上来就陷进完整工程架构里。
我现在对可视化 Agent 工作流的看法也变得更冷静了一点。它适合快速迭代、多变流程、知识问答、轻量自动化这类场景,尤其是领域专用模板会越来越有价值,比如发票识别、简历筛选、文档对比、售后问答、智能出题。模板不是为了让人完全不思考,而是把常见流程沉淀下来,让开发者把精力放在业务差异和系统集成上。
但任何工具都有边界。如果是强事务、高并发、复杂状态机,或者对链路稳定性要求极高的核心系统,我还是会更谨慎地评估,必要时把关键逻辑写回代码里。可视化编排更像是业务和工程之间的一层缓冲,让一些原本需要开发排期的小自动化,可以更快被验证和迭代。
这次发票识别助手还算是一个小规模尝试,解决的也不是多宏大的问题,只是把财务反复录入、人工核对、异常沟通这些工作稍微理顺了一些。但从这个小场景里,我能明显感觉到,AI 真正落地时,重点往往不是模型会不会聊天,而是能不能接住企业自己的资料、流程和系统。
如果你也在搭 RAG 或 Agent 工作流,应该也会遇到一些类似问题,比如召回率不稳定、上下文丢失、知识库切分不合适、模型幻觉、接口异常不好处理。你们一般是怎么排查和优化的?欢迎在评论区聊聊,我也想看看大家在真实项目里都踩过哪些坑。
更多推荐



所有评论(0)