年初,苏州一家电子线束厂的品管负责人老张找到我们,说了一个让他头疼了大半年的问题:
"每天十几个供应商送货,每批货都带着厚厚一摞质保书。我们IQC(来料检验)的人手就那么3个人,一张一张核对参数、翻历史记录、手写检验报告……一天蹲在收货区根本出不来。"
更要命的是,去年有一批端子送错了规格——图纸上标的是0.5mm厚的铜片,供应商发了0.3mm的。IQC当时没仔细看质保书上的规格参数,直接签了字。等产线上料发现压接不紧的时候,已经做进去了一批半成品。那次报废直接赔了8万多。
这篇文章就记录我们是怎么帮他们解决的——不是简单买个扫描枪或者上套MES,而是用AI Agent把来料检验的流程串起来,让机器做重复劳动,让人做判断。
一、现场情况摸底
去现场蹲了两天,把来料检验的全流程走了一遍:
- 供应商数量:27家活跃供应商,每月到货约400批,平均每天15-25批
- 物料种类:端子、连接器、线束、塑胶件、PCB板、包装材料等6大类
- 当前流程:送货 → 签收 → 收纸质质保书 → IQC查规格 → 抽检/全检 → 手写检验报告 → 录入Excel → 入库
- 痛点:
- 纸质质保书每月积攒一厚摞,查找历史记录要翻半天
- 每个IQC对检验标准的理解有差异,同一供应商同一物料,不同人检的结果可能不同
- 检验报告靠手写,字迹潦草的时候后期录入经常出错
- 供应商的历史表现没有量化数据——"这个供应商靠不靠谱"全凭感觉
- 偶尔有急料来不及检就被产线催着上了,出了事才追责
- IT现状:有ERP系统(金蝶)但没用MES,IQC做完检验后在Excel里录一遍,再由文员录入ERP
这其实不是简单的"上套系统"就能解决的问题。来料检验涉及:文档OCR识别、视觉比对、历史数据分析、决策判断、ERP数据同步——五个环节串在一起,每个环节都有不同的处理逻辑和规则。用传统的软件开发方式,每个环节写一个独立模块再集成,周期长、改起来也麻烦。
我的想法是:用AI Agent做编排层,把OCR、视觉检测、规则引擎、ERP对接这些能力串成一个自动工作流。
二、方案设计
整体架构
最终方案分四层:
┌─────────────────────────────────────────────────┐ │ 用户交互层 │ │ IQC平板APP(扫码+确认) + 看板(实时状态) │ ├─────────────────────────────────────────────────┤ │ AI Agent 编排层 │ │ 来料接收Agent → 质保书解析Agent → 检验决策Agent │ │ → 结果输出Agent(推送ERP+生成报告) │ ├───────────────────┬─────────────────────────────┤ │ 感知层(边缘AI网关) │ 数据层 │ │ • 高拍仪OCR(质保书) │ • 供应商数据库 │ │ • USB工业相机(外观检) │ • 检验标准库 │ │ • 扫码枪(物料批次) │ • 历史检验记录库 │ └───────────────────┴─────────────────────────────┘
边缘AI网关的角色
在IQC工位部署了一台边缘AI网关,跑了三个服务:
- OCR服务:用PaddleOCR解析质保书上印刷体内容(规格参数、批次号、检测值、日期),提取结构化数据
- 视觉检测服务:对接USB工业相机,对端子/连接器等物料做外观尺寸粗检——不是代替精密测量,而是快速检查有没有明显的外观缺陷(变形、氧化、毛刺)
- Agent运行时:跑AI Agent,负责编排整个检验流程
选择把AI Agent跑在边缘网关而不是云端,主要是考虑延迟——每次扫描质保书希望在2-3秒内出结果,云端OCR+Agent编排的网络往返可能到5-8秒。而且工厂网络偶尔会断,本地运行保证断网也能继续工作,断网期间的结果缓存在本地,网络恢复后自动同步。
AI Agent的工作流
AI Agent采用了多Agent协作模式,每个Agent负责一个环节:
Agent 1: 来料接收Agent
输入: 扫码枪扫描送货单条形码
动作: 查ERP获取采购订单信息 → 匹配供应商+物料编码
输出: {供应商, 物料编码, 订单数量, 批次号}
Agent 2: 质保书解析Agent
输入: 高拍仪拍摄的质保书图片
动作: PaddleOCR提取关键字段 → 与检验标准库做参数比对
输出: {规格参数是否匹配, 关键检测值, 异常标记}
Agent 3: 检验决策Agent
输入: Agent1+Agent2的输出 + 供应商历史质量评分
动作:
- 如果规格参数不匹配 → 标记"退换"
- 如果参数匹配但供应商历史评分较低 → 建议"加严检验"
- 如果参数匹配且供应商历史表现好 → 建议"免检/减量抽检"
输出: {检验结论, 检验等级, 建议抽样数}
Agent 4: 结果输出Agent
输入: 检验结论 + IQC确认
动作: 生成检验报告PDF → 推送ERP更新库存状态 → 发送企业微信通知
输出: 闭环
三、实施过程
第一阶段:质保书OCR调优(2周)
本以为OCR是最简单的环节——扫描文档提取文字而已。结果27家供应商的质保书,格式五花八门:有的大厂有自己的模板,有的小厂直接在A4纸上手写一张表格,还有的是一式三份的复写纸,字迹模糊得连人都要辨认半天。
PaddleOCR对印刷体识别效果不错,但遇到了几个具体问题:
- 表格定位:同一个参数在不同供应商的质保书上出现在不同行列位置。我们给每个供应商建了个模板配置——指定"批次号在第几行第几列"、"规格参数在哪个区域"。这样OCR解析按模板对齐。新供应商第一次来料时走"模板注册"流程,配一次后面自动走。
- 复写纸识别:一式三份的复写纸对比度太低,PaddleOCR识别率不到60%。解决方案是先做CLAHE图像增强再送OCR,提升到约82%。剩下的模糊字段走人工复核。
- 手写数字识别:有些小厂的质保书关键参数是手写的。试了PaddleOCR的手写体识别,对规范书写识别尚可,但对潦草的数字(比如6和8、0和O)错误率较高。我们的处理方式是:对手写数字区域做灰度投影分割,单字符识别后加形态学校验——比如"厚度0.3mm"如果识别出两个差别很大的值,就标红要求人工确认。
教训:OCR不是"一拍就认"的,至少在来料检验这个场景里,不同来源的文档质量差异巨大。花时间给每个供应商配模板是绕不开的苦活。
第二阶段:AI Agent流程搭建(3周)
多Agent的编排我们用了LangGraph,每个Agent是一个节点,节点间通过状态图传递上下文。
核心的决策逻辑在检验决策Agent里。我们设计了一个简单的评分模型:
供应商质量评分 = 近3个月批次合格率 × 0.4 + 近3个月交货准时率 × 0.2 + 同类物料历史问题数扣分 × -0.2 + 质保书数据完整性 × 0.2 根据评分和当前物料类别决定检验等级: - 评分 ≥ 90 且 物料为C类(辅助材料)→ 免检(直接入库) - 评分 ≥ 80 或 物料为B类(重要零件)→ 减量抽检(正常AQL的50%) - 评分 < 80 或 物料为A类(关键零件)→ 正常/加严检验 - 上一批有问题 → 强制加严检验
这个评分模型是初版,实际跑了一个月后发现几个问题:
- 新供应商没有历史数据,评分全是0,导致永远进免检(不符合逻辑)。我们给新供应商设了默认分70,且必须连续3批合格才能升级到减量抽检。
- 批次合格率只按"合格/不合格"算太粗:一批来料1000个端子,外观轻微不良2%和批次规格全错,都记为"不合格"但严重程度完全不同。后来加入了缺陷等级权重——致命缺陷直接扣到0分,轻微缺陷按比例扣分。
- 质检员"手动降级"的问题:系统判定需要正常检验,但IQC因为产线催料,擅自改成免检。我们加了权限控制——只有品管主管能豁免检验等级,且每次豁免记录留痕。
第三阶段:视觉粗检上线(1周)
在IQC工位上放了一台USB工业相机,固定俯拍角度,装了一个可调节亮度的环形LED灯。操作流程:IQC把来料样品(一般3-5个端子/连接器)放在相机下的定位板上,系统自动拍照并运行YOLOv8n模型做外观缺陷检测。
视觉检测的目标不是代替卡尺和投影仪做精密测量——对于需要精确到0.01mm的尺寸,还是靠传统量具。视觉模块解决的是"一眼能看出来的问题":端子有没有明显变形、连接器针脚有没有弯曲、有没有氧化变色、有没有毛刺。
训练模型的数据来自过去一年IQC退回的不良品照片+网上收集的端子/连接器外观样例。约800张图片,做了数据增强后到3000张。模型用YOLOv8n-seg做缺陷分割,对变形和弯针的检出率约90%,误报率初期约12%(主要把反光误判为刮痕),经过调整光源角度和增加训练样本后,误报率降到约7%。
第四阶段:ERP对接和试运行(2周)
这一步花的时间比预期的长。金蝶ERP的接口文档比较老,有些接口没有提供批处理能力——一次只能提交一个检验结果。如果一批来料有10种物料,就要提交10次。在AI Agent里加了批处理队列,用事务性提交保证要么全部成功要么全部回滚。
另一个麻烦是:金蝶里的"物料编码"和IQC手里的"供应商物料号"不是一一对应的。同一个物料,采购部用金蝶编码,供应商用自己的编号,IQC又按供应商编号来管理。我们建了一张映射表,让AI Agent在收到送货单时自动做匹配——匹配不上的标黄由人工指定。
四、实际效果
系统上线跑了3个月后,我们统计了一些数据:
其中OCR解析约10秒,AI Agent决策约3秒,视觉检测约8秒,剩下的主要是IQC确认、放样、签字等不可压缩的人工操作。
2次是规格参数与采购订单不匹配(质保书参数OCR比对发现的),1次是端子外观氧化(视觉检测发现的),1次是批次号与质保书不符(AI Agent交叉校验发现的)。
评分高的稳定供应商,部分C类物料走免检通道,节省了IQC约30%的工作量,让他们可以把精力集中在关键物料和可疑批次上。
AI Agent自动汇总当月的检验数据,生成供应商质量排名、不合格项分布、月度趋势等报告。
五、遇到的问题和解决办法
坑1:质保书批次号和实物批次号对不上
有次AI Agent发现质保书上的批次号"B20251201"和供应商送货单上的批次号"B20251201-1"不一致,但人工一看其实是同一批货,只是供应商打单时多加了后缀。解决方案:在AI Agent的匹配逻辑里加了模糊匹配(去掉连字符和空格后再比较),如果模糊匹配上了就标记"需人工确认"而不是直接"不匹配"。
坑2:IQC一开始很抵触
"以前我一单检40分钟是认真负责,现在5分钟就完了,老板会不会觉得我工作量不饱和?"——这是个真实的心态问题。我们专门和品管主管商量,把IQC的考核指标从"检验批次数量"改为"拦截不良品数量+异常检出率",让大家看到系统帮他们做的是重复劳动,不是替代他们。同时保留了人工复核环节,所有AI Agent的结论都可以被IQC否决——这是信任建立的关键。
坑3:高拍仪光线不均匀导致OCR识别率波动
第一天用的普通高拍仪,发现质保书边缘的文字识别率比中间低。原因是高拍仪的LED补光集中在中心区域。换了带均匀面光源的高拍仪解决。另外操作台上方有顶灯,质保书表面会反光——后来在IQC工位拉了个遮光帘。
坑4:视觉检测的"同一个端子放歪了"误报
YOLO模型训练时大部分样本都是正位摆放的。实际操作中IQC放样位置偏差较大,角度一偏就误判为变形。加了定位槽板固定摆放位置,同时在预处理阶段加了仿射变换校正。
坑5:断电断网场景没考虑够
有次仓库断电,边缘AI网关靠UPS撑住了,但高拍仪和工业相机用的USB hub没有独立供电,断电重启后相机设备号变了(从/dev/video0变成/dev/video1),OCR和视觉服务启动失败。解决方案:在网关启动脚本里加了udev规则固定USB设备号,同时给相机接独立供电USB hub。
坑6:ERP接口限流
金蝶API有每分钟200次调用的限制。平时够用,但月末集中入库的时候(一天入库几十批)会触发限流。AI Agent的队列里加了指数退避重试,并且在每天高峰期(上午10-11点集中到货)提前把检验结果缓存起来,错峰提交。
六、个人的思考
这个项目做完,有几个让我印象深刻的体会:
AI Agent在工厂落地,最合适的角色是"流程编排"而不是"替代人"。传统的自动化做不了灵活判断——规格参数匹配不上,是直接退货还是让步接收?这需要有上下文理解。AI Agent的优势就在这里:它能把OCR、视觉、规则引擎、ERP这些各司其职的工具串起来,根据上下文做不同的决策分支。
数字化最难的地方,往往不在技术,在"把模糊的规则变成确定的数据"。来料检验做了这么多年,很多规则是在IQC脑子里或者写在墙上歪歪扭扭的作业指导书里。比如"这个供应商的端子公差要严一点",在系统里就得把它量化成具体的阈值和校验规则。梳理这些规则花的时间比写代码多一倍。
"先跑起来再优化"在工厂场景里行不通。在互联网产品可以灰度发布、边跑边修,但在工厂里,IQC环节出错直接影响产线投料。系统上线前,我们把AI Agent的每个决策分支都"模拟跑"了一周——用历史数据回放的模式,每批来料同时走人工和AI两套流程,对比差异,有分歧的拉上品管一起讨论。等差异率降到约5%以下才切到正式模式。
数据积累是持续优化的燃料。前3个月积累的供应商质量数据,已经开始反哺到采购决策了——采购部在评新供应商时,会参考AI Agent生成的质量评分历史。这不是我们当初设计的功能,但数据多了自然就有这种衍生价值。
七、给你的建议
如果你的工厂也在考虑来料检验数字化,几点实际建议:
- 先梳理供应商质保书的格式多样性——如果大部分供应商的质保书是标准印刷模板,做OCR门槛很低;如果以小厂手写为主,OCR投入产出比要谨慎评估
- 别上来就想全自动化——把"决策辅助"作为第一步:AI Agent给出结论建议,IQC确认后才执行。等大家建立了信任,再逐步开放自动执行权限
- 供应商质量评分模型要持续调——我们的初版评分只看合格率,后来发现单一指标会"骗人"。把权重、缺陷等级、时间衰减等因素加进去后结果才合理
- QC工位的物理环境别忽视——光线、空间、操作台高度、设备走线……这些细节决定了系统能用 vs 好用的区别
- 把IQC当合作伙伴——他们是来料检验最懂的人,系统的规则定义、阈值设定、异常判断都需要他们的经验输入。系统让他们少做重复劳动、多关注真正有风险的问题,这才是双赢