|
|
当大模型开始“使用电脑”,我们似乎离真正的AI自动化又近了一步。
过去一年,从浏览器操作、表格填写,到办公软件自动执行任务,Computer-Use Agent正在成为大模型落地的重要方向。
但一旦进入真正的专业软件,这条路线很快遇到了瓶颈。
比如,让Agent在SolidWorks中完成3D建模与装配,在AutoCAD里绘制一张带尺寸标注的工程图,或者在Photoshop、Premiere里完成一套完整的修图、剪辑流程等,这些专业人员的日常工作,现有的Computer-use agent仍难稳定完成。
原因很简单:一方面,专业软件的界面远比日常软件更加复杂、密集,对Agent的视觉感知与定位能力提出了更高要求;另一方面,专业级任务往往不是几步点击就能完成,而是包含数十甚至上百个连续操作。一次微小的交互偏差,可能会在长链路中不断累积,最终影响整个任务结果。
近日,上海AI Lab等团队提出了一种面向专业软件智能体的新范式——ComAct(COM-as-Action)。
它的核心思想在于:不再把鼠标点击和键盘输入作为Agent的action,而是让Agent直接生成COM代码,通过软件底层对象模型操纵真实专业软件。
当前GUI Agent存在显著短板。以CAD软件为例,一个完整任务可能包括创建草图、设置约束、拉伸实体、编辑特征、装配零件、检查干涉、生成工程图、导出文件等多个阶段。每个阶段都涉及大量细粒度操作,而且强依赖前一步结果。
在这样的场景里,Agent不仅要理解任务,还要持续完成高精度视觉定位和低层交互。一旦选错工具、点错对象、输入错参数,后续步骤就可能全部偏离。
另一条路线是API/MCP-based Agent。它通过结构化接口调用完成任务,执行更稳定。但在真实专业软件中,公开API往往并不完整,不同软件之间接口差异巨大,很多商业软件也并不具有开源的API。
因此,专业软件Agent面临的并不是简单的“模型不够聪明”,而是GUI作为action space还不够适合这些任务,具体原因是:
GUI操作鼠标和键盘足够通用,但长程任务中容易受视觉定位误差影响;直接调用软件API更稳定,但常常受限于商用专业接口碎片化和功能覆盖不足,很难在工业软件中使用。
ComAct试图从另一个角度切入:既然很多重型桌面软件本身就暴露了系统级对象接口,为什么不让Agent直接使用这些接口?
GUI as Action依赖视觉定位,API/MCP as Action面临接口碎片化,而COM as Action将专业软件操作转化为统一的代码执行。COM:让Agent用“软件自己的语言”操作软件
COM,全称Component Object Model,是Windows生态中长期存在的一套组件对象模型标准。
大多数传统、重型专业软件都通过COM暴露内部对象和功能。
对于Agent来说,COM更接近软件内部语义。Agent不再需要在屏幕上寻找按钮,而是可以直接操作软件对象,例如CAD中的草图、零件、装配体,或Office中的文档、表格、幻灯片。其二,COM提供了更确定的执行方式。相比连续GUI点击,COM代码一旦生成正确,就可以直接调用软件功能,减少长程操作中的视觉定位误差累积。其三,COM具备跨软件扩展潜力。Office、Adobe、Autodesk、SolidWorks等大量Windows专业软件都不同程度支持COM,这为跨软件工作流提供了统一入口。
也就是说,ComAct把专业软件操作从:
看屏幕→找按钮→点鼠标
变成了:
理解任务→生成代码→执行软件对象操作
这正好匹配大模型最强的能力之一:代码生成。
在ComAct中,Agent每一步会看到当前软件截图和上一轮代码执行后的terminal输出。如果代码报错,它可以根据traceback修复;如果任务还没完成,它继续生成新的COM脚本;如果最终结果满足要求,它输出DONE。
这使得Agent不再是一个低层GUI操作者,而更像一个会写自动化脚本的工程师。
ComCADBench:让Agent真正进入CAD工程现场
为了验证这一范式,研究团队构建了ComCADBench,一个面向真实CAD软件操纵的benchmark。
△ComCADBench覆盖3个CAD平台、7类工程活动,并支持长程多任务工作流。
它覆盖三款主流CAD软件:SolidWorks、Inventor、AutoCAD,以及七类核心工程任务:2D草图、3D建模、编辑、装配、工程图生成、质量属性分析和干涉检查。整个benchmark包含400条单任务与600条多任务流程,模拟真实工程场景中常见的任务组合,比如建模后分析物理属性、装配后做干涉检查等。ComCADBench直接基于最终CAD artifact进行评价,也更接近真实工程任务的评估方式。
ComForge:面向真实专业软件的大规模并行训练平台
真正训练一个能稳定操纵专业软件的Agent,需要让它在大量真实环境中反复试错、获得反馈。为此,团队搭建了ComForge。每个环境都是一个容器化的Windows虚拟机,内部预装SolidWorks、Inventor、AutoCAD等软件,Agent生成的代码会在其中真实执行,软件会真实返回截图和报错信息。一个异步调度器负责把任务分发到空闲的虚拟机上,让成百上千个环境同时跑起来,从而支持大规模评测与强化训练。
基于ComForge,团队训练出了智能体ComActor,通过结合监督微调与强化学习的训练流程,让模型从”能写出语法正确的COM代码”逐步进化到”能根据报错自我修正”,并进一步对齐最终CAD产物的工程要求。
△ComAct主框架。包括数据构建、ComActor闭环执行,以及ComForge并行真实软件环境。GUI Agent受限,COM范式打开新局面
在ComCADBench真实CAD长程任务中,当前GUI Agent的表现非常有限。复杂界面、精细定位和多步骤依赖,使得GUI Agent几乎全线0分。但当action space从GUI切换到COM后,同样的模型在零样本设置下就能拿到非零、甚至可观的成功率。这说明大模型本身具备完成这些任务所需的推理能力,只是被传统GUI交互方式限制住了。
最终,训练后的ComActor在ComCADBench上全面匹敌GPT-5、Claude-Sonnet-4.6等参数量更大的模型,在需要多步骤接力完成的长流程任务上优势尤为明显;在两个外部通用CAD基准上,也展现出了不错的泛化能力。
点评
从结果上看,好像皆大欢喜。然后事实上根本不行,就是糊弄投资者的。
首先这一框架有正面意义,相较于模仿人操作CAD的复杂画图流程而言,ComAct 的核心是通过 COM 组件接口直接操纵 CAD 软件的原生对象模型,这一路线从根上决定了它的产物和人工操作的文件没有本质区别,不存在 “改不了” 的问题:
对 SolidWorks、Inventor 这类参数化三维软件:COM 代码生成的不是导入式的 “死实体”,而是有草图、特征树节点、装配配合关系。每一步拉伸、切除、圆角都对应特征树里的可编辑项,草图尺寸也保留参数化关联,和工程师手动一步步搭建的模型文件完全同源。
对 AutoCAD 这类二维绘图软件:COM 生成的是原生的直线、圆弧、标注、块、图层等图元对象,不是光栅图片或外部位图,所有元素都可以直接选中、修改参数、调整样式。
换句话说,最终输出的.sldprt、.dwg 等原生格式文件,打开后就能用鼠标键盘正常编辑,这也是 COM 路线相比纯视觉 GUI Agent、“AI 生成立体模型再转 CAD” 路线的天然优势 。它的产物从一开始就是结构化、参数化的原生工程文件,不是逆向还原的几何面片。
但是,“能改” 和 “好改” 是两个完全不同的工程概念。一个规范的模型,改一个核心尺寸只需要修改草图参数、刷新特征;一个 “凑出来” 的模型,改一个尺寸可能全树报错、特征崩坏,修改成本远高于重新建模。
而公号文章中的 ComCADBench 基准,评价标准只聚焦 “最终 CAD 产物是否满足几何要求”,完全没有覆盖工业界最看重的 “模型可维护性” 角度,这也是核心缺失:
Agent 生成代码的目标是 “跑出正确结果”,而非 “符合工程师的建模习惯”。如果为了凑出形状生成了大量零散特征、重叠约束、无意义的基准面,且特征命名混乱、排布毫无逻辑,工程师打开文件根本无从下手定位修改点。
比如在3D建模(如SolidWorks、Inventor)中,特征树的构建顺序至关重要(先做主基体 -> 再做切除 -> 最后倒角)。
Agent为了达到ComCADBench评测中的“几何形体正确”和“质量属性一致”的目标,会采取极其非人类的建模逻辑。例如,本可以通过一个“阵列”特征完成的20个孔,Agent在代码里一个循环,生成了20个独立的“拉伸切除”特征。这会导致特征树极其臃肿混乱,人工审查和修改时根本找不到逻辑主线。
约束与参数化的完整性:工程可修改的核心是全约束、强关联。如果 Agent 生成的是欠约束甚至无约束的自由形状,或者尺寸之间没有参数化联动,一动就变形,这样的模型没有任何迭代价值。
优秀的工程师画草图会加上几何约束(水平、垂直、共线、切线)和尺寸驱动,如果Agent在调用COM生成草图时,仅仅是计算出绝对坐标,然后用 CreateLine2(x1, y1, x2, y2) 把线条强行“拼”出一个形状,而没有建立几何约束和参数化,那这个草图在软件里表现为欠约束(蓝线)。
人工审查时,如果想把某个零件的长度拉长10mm,用鼠标一拖动,整个草图就会发生灾难性的扭曲变形,因为线条之间没有拓扑约束关系。
工程标准的符合性:图层规范、标注样式、公差规则、材料属性等企业、行业标准,是图纸审核、流转、生产的基础。AI 生成的图纸如果样式混乱、不符合制图规范,审核和标准化修改的工作量会远超画图本身。
在AutoCAD或SolidWorks工程图中,图纸不仅要好看,尺寸标注(Dimension)必须与几何体关联(Associative)。
如果Agent为了省事,直接在指定坐标处生成了一个“文本(Text)”来充当尺寸标注,而不是生成一个关联几何元素的“标注对象”。那么当人工用鼠标修改图纸中的线条长度时,尺寸文本不会自动更改,这就变成了工程上最忌讳的“假尺寸”。
当前无论是 GUI Agent 还是 COM 路线的 Agent,核心目标都是 “完成任务”,比如ComAct团队的评估指标(ComCADBench)设计如下:“直接基于最终CAD artifact进行评价……比如建模后分析物理属性、装配后做干涉检查等。”这暴露出当前学术界研究的局限性:
目前的Benchmark只检查结果的几何正确性(如体积、质量、形心是否一致,组装后是否有干涉),不检查过程的结构健康度(如草图完全约束率、特征树深度、参数化关联度)。不是 “输出符合工程规范、可维护的模型”。这就像一个新手实习生能照着图纸画出零件,但老工程师根本不敢接他的文件改图, 修补一个烂模型的时间,往往比自己从头画一遍还长。
对于 CAD 这种强工程属性的工具,“自动生成” 的核心价值从来不是一次性出图,而是生成一个工程师可以快速微调、迭代的基础模型。
比如“自动生成”描述的是一个单向流程:人下指令 → Agent生成COM代码 → 得到CAD产物 → DONE
但真实工程场景是反复迭代的:Agent生成初版 → 人审核并修改 → 再让Agent调整 → 人再审核 → ……
如果人无法自然地介入修改,这个流程就变成了一次性交付,而不是协作设计。
如果可编辑性不达标,哪怕几何形状 100% 正确,也只能作为概念参考,无法进入审核、改图、生产的正式流程。
COM 路线解决了 “AI 能不能稳定画出正确 CAD 图” 的问题,但还远没解决 “AI 画的图能不能融入现有工程流程” 的问题。
当前ComAct做法必须引入的工业级约束草图规范几何形状对得上即可强制要求草图完全约束(Fully Defined),检查约束冲突率。特征树质量允许冗余和打乱顺序的特征引入特征树复杂度惩罚,鼓励使用阵列、镜像、装配体自顶向下设计等高级策略。图纸关联性允许硬编码的文本和坐标审查Dim对象与Entity对象的绑定关系,确保尺寸随几何联动。
|
|