ARTICLE · 1153598
工业检测软件的 AI Agent 实践(1)
工业检测软件的 AI Agent 实践(1)一次无参考数模凹坑检测的完整任务 这是《工业检测软件的 AI Agent 实践》系列的第一篇。 前面几篇文章讨论了工业检测软件为什么需要 Agent,以及大模型、Harness、Skill 和确定性检测内核之间应当如何分工。理论讨论可以帮助我们建立判断,但 Agent 究竟能做什么,最终还要回到具体任务中验证。 这篇文章记录一次无参考数模条件下的凹坑检测实践。 任务很简单: 被测对象是一块带加强筋和通孔的板件。三维扫描后,得到一张表面网格,约包含 155 万个顶点和 309 万个三角面片。 当前工程没有参考 CAD,也没有建立 3D 比较。Agent 面对的不是一组已经建立好的尺寸特征,而是一个需要先观察、再分析的真实测量对象。 这次实践关注的也不只是“找到了几个凹坑”,而是检测智能体如何读取工程状态、观察测量对象、处理结构干扰,并根据中间结果调整后续任务。 检测智能体接到任务后,首先要知道当前工程处于什么状态: 这一步看起来很基础,却决定了后续采用什么方法。 本次工程中,测量模型存在,对齐结果存在,参考模型和 3D 比较都不存在。因此,智能体把任务识别为“无参考数模的表面异常发现”,而不是传统的“扫描网格与 CAD 偏差比较”。 
图 1 当前工程中的被测板件。板面带有加强筋和通孔,工程中只有测量网格。 工程状态明确之后,智能体没有直接生成一段长脚本,而是先确定下一步:获取适合观察的三维视图。 智能体调用 Inspect 的视图抓取能力,获得当前三维场景的图像,再将图像交给多模态模型和图像分析程序,用于寻找疑似凹坑。 这一阶段的目标很明确:先找候选区域,不在视觉筛查阶段直接生成正式测量值。 
图 2 左为原始三维视图,右为局部带通增强结果。增强图用于帮助智能体定位候选区域。 原始视图中,凹坑亮度对比度约为 1.6% 到 6.7%。画面里同时存在加强筋、通孔、接缝和扫描纹理,它们都会产生明显的明暗变化。 智能体需要把这些结构区分开: 这一步体现的是感知与理解能力。模型需要把“凹坑”这个检测目标放到当前测量对象上,理解哪些视觉变化属于正常结构,哪些变化值得继续分析。 广角视图的初始分析产生了 19 个候选区域。 智能体没有把这 19 个候选全部当成缺陷,而是分成三类: 
图 3 红圈为确认的孤立凹坑,橙框为需要继续分析的成簇区域。 经过结构排除和人工复核,12 个候选被识别为加强筋和竖向接缝产生的结构性响应,保留 7 处孤立凹坑;右侧一片相互靠近的异常则被标记为成簇区域,等待进一步分析。 这里体现的是任务规划能力。智能体需要决定哪些区域可以继续处理,哪些区域需要换视角或局部放大,哪些结果应该进入人工确认队列。 候选区域只是下一步分析的入口,还不是最终检测结论。 成簇区域贴近加强筋。第一次分析时,它和结构线一起被排除规则过滤掉了。智能体在检查中间结果时发现,候选区域附近仍然存在多个局部响应,简单地把加强筋附近的区域全部排除,可能造成漏检。 于是,任务从“完成广角筛查”转为“放大成簇区域,重新分析局部结构”。 这不是把同一套流程机械重复一遍,而是根据中间结果重新规划: 在工业检测中,异常处理往往不是预先写好的某一个固定分支。一个中间结果可能改变对当前任务的判断,进而影响下一步怎么做。让任务能够根据状态变化重新规划,是检测 Agent 与普通自动化脚本之间的重要区别。 将成簇区域局部放大后,原先的一团模糊斑块被解析出 5 个相互毗邻的凹陷。 
图 4 上为局部原始画面,下为带通增强。局部放大后,成簇区域内部的个体结构开始分离。 广角视图适合快速筛查,但分辨率不足以稳定拆分相互靠近的个体缺陷。局部放大后,智能体完成了三个动作: 但“解析出 5 个候选”仍然属于发现结果。每个凹坑的真实三维边界和深度,仍然需要回到原始网格上计算。图像适合帮助系统找到值得分析的位置,正式测量需要使用具有空间坐标和几何约束的原始数据。 为了验证截图分析的可靠性,同一块板件又使用一款凹坑专用分析软件进行分析。 
图 5 专用软件输出的凹坑分析结果。 智能体进一步调用图像配准程序:根据两幅图的板体轮廓四角建立对应关系,将专用软件的标记框映射到本次截图的坐标系中。 
图 6 专用软件标记框与截图分析圆圈叠加在同一视图中。 验证结果如下: 
图 7 左为专用软件结果,右为截图分析叠加后的结果。 这一步体现的是工具调用和结果校验能力。智能体没有把第一次识别结果直接当成最终事实,而是调用独立工具进行交叉验证,并把差异重新带回任务判断中。 专用软件标记出的浅凹坑,位于加强筋附近,正好对应本次流程中的漏检位置。 这个结果说明,加强筋附近的区域不能简单地全部作为结构误报排除。后续策略需要相应调整: 这里的重点不在于模型“有没有一次判断正确”,而在于系统能否把结果差异转化为下一步行动。检测 Agent 的任务循环大致可以表示为: 这次实践也比较清楚地呈现了不同层次能力之间的分工。 检测智能体适合负责: 确定性几何算法适合负责: Inspect 适合负责: 这就是检测软件中的副驾驶模式:智能体提出下一步,工具完成动作,检测内核返回状态,工程师确认关键节点。 这次实践完成了一段技术验证: 如果继续把它做成产品,还需要沉淀几类能力。 首先是场景能力:生成稳定的多视角图像,识别候选区域,并保留视图与模型之间的对应关系。 其次是三维能力:把二维候选准确映射回原始网格,建立局部参考曲面,完成边界和深度计算。 再次是任务能力:支持局部放大、复核、重试、去重、异常暂停和断点续跑。 最后是审计能力:记录模型判断、工具调用、人工确认、算法参数和最终结果,使每个结论都可以回看和复核。 这几类能力分别对应 Agent 的观察、规划、执行和复核。一次实验只有在这些能力被稳定沉淀下来之后,才有机会成为可复用的检测方法。 这次实践没有把 AI 当作自动测量器。 检测智能体完成的是一次真实的任务推进:它读取工程状态,观察测量场景,发现候选区域,识别结构干扰,调整分析范围,调用独立工具进行验证,再把差异转化为下一步改进建议。 7 处孤立凹坑的位置发现与专用软件 7/7 一致,说明视觉候选定位已经具备工程化价值。加强筋附近的一处漏检,说明结构干扰仍然需要三维约束和人工复核。成簇缺陷的个体拆分和深度定量,则需要更完整的几何数据和专业算法。 这也是目前对检测 Agent 较为合适的理解:它参与理解任务、组织步骤、调用工具和处理反馈,把检测流程向前推进;测量数值、边界计算和最终判定,则留给确定性检测内核和工程师。 AI 实践的价值,来自一次次真实任务中的验证。模型能做什么,应该由任务结果来回答;系统如何继续改进,也应该由这些结果来决定。 这篇是《工业检测软件的 AI Agent 实践》系列的第一篇。后续文章继续记录具体任务,也记录那些没有一次完成、需要反复调整的部分。理论需要回到实践里接受检验,实践也需要沉淀成可以复用的方法。
检查当前测量模型表面是否存在凹坑,并找出值得进一步分析的区域。
先读取工程状态,确定任务条件
当前打开的是哪个 Inspect 工程; 工程中有哪些测量模型; 是否存在参考模型; 是否已经完成对齐; 当前是否已经建立 3D 比较; 三维视图正在显示什么对象。

先看懂场景,再寻找候选区域

通孔属于已知结构; 加强筋属于正常结构; 接缝和边缘属于高风险误报区域; 孤立的局部凹陷才是重点候选。
把视觉判断变成候选任务
可能的孤立凹坑; 可能由加强筋、接缝和边缘产生的结构响应; 位于复杂区域、需要放大或补充视角确认的候选。

中间结果发生变化,任务也要跟着变化
广角筛查→ 发现候选簇→ 检查候选与加强筋的关系→ 调整分析范围→ 请求局部放大→ 重新识别个体凹陷
局部放大,把成簇异常拆开

判断当前视图不足以支持个体拆分; 选择更合适的局部观察范围; 将放大后的结果交给后续边界和几何分析。
调用独立工具,验证候选结果



截图分析找到的 7 处孤立凹坑,全部被专用软件标记; 专用软件在孤立区域标记的凹坑,也全部被截图分析找到; 两种方法的对应位置偏差为 4 到 20 像素; 专用软件另外标记出一处浅凹坑,截图分析没有找到,该位置靠近加强筋。
漏检也会成为下一步的输入
加强筋附近的候选应当标记为可疑,而不是直接过滤; 候选区域需要保留局部放大和三维复核入口; 深凹和浅凹可以采用不同的复核阈值; 成簇区域需要进入个体边界拆分流程。
读取状态 → 观察对象 → 提出候选 → 调用工具 → 检查结果 → 更新状态 → 重新规划。
哪些工作交给 Agent,哪些工作留给检测内核
读取工程状态; 理解检测目标; 观察三维视图; 发现候选区域; 决定是否放大或更换视角; 调用图像分析、Inspect API 和专用工具; 汇总差异并提出下一步建议; 在结果不清晰时请求人工确认。
提取候选区域对应的局部网格; 建立局部参考曲面; 计算凹坑深度和面积; 提取闭合边界; 生成三维多义线; 执行维修阈值或公差判定。
管理工程和模型; 创建特征和标记; 保存多义线和测量结果; 记录参数、过程和审批; 生成可追溯报告。
从一次实验走向可复用能力
在没有参考数模的情况下,从测量网格视图中发现候选凹坑; 用局部放大处理成簇区域; 用专用软件进行独立交叉验证; 找到加强筋附近的漏检原因; 明确深度定量仍然需要原始坐标或深度场。