今年圈子里聊得最多的已经不是“AI能不能画图”而是“AI能不能帮我把这半张图画完、把五十处标注一次性改掉”。我前阵子把唯杰WebCAD的新版本从里到外跑了一遍发现它已经不再是一个“长得像CAD的网页画图工具”而是把AI智能体Agent直接接进了编辑内核。你可以用自然语言告诉它“在图纸右边画一道带坡度标注的楼梯”它自己拆解步骤、调用绘图命令、生成实体最后还把图层和标注给你归置整齐。WebCAD本身解决的是“打开浏览器就能看图、就能多端协同”的问题这次Agent进来之后则把“怎么画”从手工操作推进到了意图描述。这篇文章我不想写产品发布会的通稿而是想聊聊这套WebCAD智能体在架构层面怎么设计、实际用起来有哪些坑、哪些环节值得花力气做。如果你在做网页端绘图工具、在用大模型做垂直场景落地或者单纯好奇AI怎么和CAD这类强交互工具结合这篇内容应该能给你一些能直接抄作业的思路。1. 为什么是WebCAD为什么是现在1.1 浏览器里做CAD老问题被解决了多少早几年大家一提“网页端CAD”第一反应都是“能看看图就不错了”。这里面的瓶颈一直很现实CAD图纸动辄几MB、几十MB包含大量实体对象、图层、块引用和标注样式浏览器要在保持流畅缩放、平移、选择的同时把上千个图形对象实时渲染出来压力非常大。以前很多网页看图工具的做法是把DWG在服务器端转成图片切片前端只做瓦片加载能看但没法精确编辑。这几年情况不一样了。首先是渲染层成熟很多Canvas的分层渲染配合局部脏区重绘已经能顶住大量的矢量元素遇到超大图纸还可以用WebGL做GPU加速把图形数据传到显存里批量绘制。其次是数据结构这一层IndexedDB、WebAssembly让解析DWG/DXF、做几何运算可以直接在浏览器里完成不需要每一次都回到后端往返。换句话说WebCAD缺的从来不是“技术可行性”而是“交互效率和用户习惯”。唯杰WebCAD把编辑内核放在前端本质上是为了让用户像用桌面端CAD一样直接操作图形对象选中、拖拽、拉伸、捕捉、标注全部本地响应。浏览器端的优势不在单机性能而在“打开即用、天然支持多人同一张图、版本回溯方便”。如果只是把桌面软件搬到网页上重新实现一遍其实价值不大真正的增量来自“多端同步”和“随时协作”。但现在AI一进来这个本来的优势又放大了不少因为Agent可以直接在所有人的同一张图上做批量操作不需要每个成员自己重复劳动。1.2 AI进场之前WebCAD缺的是哪一块拼图过去WebCAD谈不上不成熟但它有个很尴尬的地方绘图是一个高度依赖操作序列的活。画一条线很简单画一组墙、开窗、加门、标注尺寸就是一连串命令的组合。网页端虽然把命令都做好了但用户必须自己点菜单、记快捷键、一层一层找功能。新手面对工具栏会懵老手也会嫌“点得太多”。AI进来之前这块拼图一直没补上。聊天机器人能说会道但不代表它知道怎么操作图形内核。如果不能把用户的自然语言翻译成编辑器可以执行的一连串命令那AI就只是个“悬浮在图纸旁边的问答框”价值非常有限。所以这次唯杰WebCAD的做法不是简单加一个“智能助手”按钮而是把Agent下沉到命令层它理解用户意图后直接调用创建、移动、删除、标注、图层整理这些接口。模型负责规划和拆解编辑器负责执行和校验各干各的边界清楚。这才是“WebCAD智能体Agent”和普通AI插件的本质区别。普通插件是写死的批量脚本或者提供一串问题答案Agent则具备感知图面状态、规划动作序列、执行并自我修正的能力。它不再只是“告诉你该怎么做”而是“直接把事情做掉”。1.3 唯杰WebCAD的设计骨架整套架构我梳理下来大概是四层这个分层思路我觉得做网页工具的团队可以直接参考渲染层采用CanvasSVG混合策略。日常绘制、拖动、框选用Canvas普通图形、标注、捕捉辅助用SVG这样既保证大面积重绘性能又能保留矢量交互的精度。图形数据层实体列表、图层、块、样式全部用结构化对象管理每个实体有唯一ID支持属性修改事件。这层是Agent操作的基础后面所有动作都作用在数据层上。命令层把“创建矩形”“偏移墙线”“添加线性标注”“修改图层”等封装成标准化API每个API都是事务性的可以被撤销、可被重放。Agent输出的动作序列最终都落到这层。AI服务层负责意图识别、参数抽取、动作编排、规范检索。这一层不直接操作图形数据它只生成“要做什么”的结构化描述然后交给命令层执行。这个分层最大的好处是”AI出错“可以被拦截在命令层之外。模型生成一个不合理的动作命令层可以做参数校验、图层校验、坐标范围校验。哪怕校验通过执行了事务机制还能保证一键回滚。这套设计思路和大型软件里“编辑器内核”与“业务功能”分离的思路是一致的AI在这里只是又一个“上层使用者”。2. 智能体来了功能上到底多出什么2.1 会话式制图把“操作方法”换成“需求描述”新版本最直观的变化是左侧多了一个会话面板用户可以直接在里面输入需求。我问了一句“画一个宽度6000、进深4000的矩形作为外墙轮廓”Agent没有直接画一条孤零零的矩形而是先返回一段计划将以X轴为基准创建矩形、起点设在当前坐标原点、默认图层WALL、后续可以继续偏移。点击确认之后矩形出现在图面上并且自动归入WALL图层。这个“先给计划、后执行”的设计我非常喜欢。Agent不再像某些自动生成工具那样“闷头画完”用户完全不知道会发生什么。它把每一步动作拆成可预览、可勾选、可跳过的列表对设计师来说控制感强很多。对新手来说会话式制图更是大幅降低了门槛不用记“偏移命令怎么输”“图层在哪设置”直接用大白话说要什么就行。会话式制图真正有价值的点是它能和“当前图纸上下文”联动。Agent会读取你选中的实体、当前图层、图纸比例你一句“把这个对象复制到右边800处”它不用问“哪个对象”直接就按当前选中项来理解。这种上下文感知让沟通成本低了一大截比我见过很多“独立对话框问答”式的AI工具靠谱得多。2.2 批量修改和智能标注Agent最擅长处理重复劳动我实测了一个场景整张图里所有标注字号都不统一有一些还是3.5有一些是2.5。过去这种问题要么一个个选中去改要么写一段二次开发脚本跑一遍。现在一句“把所有标注文字高度统一为3.5”Agent会走一遍图面的标注对象列表筛出所有标注实体批量修改属性然后把修改清单列出来给你核对。批量操作是Agent最不容易翻车的地方因为动作模式清晰、目标对象可以通过属性查询精准定位不需要太多主观判断。同样好用的还有智能标注选中一堵墙说“标注尺寸和材料说明”Agent会调用线性标注接口在墙体外侧加尺寸线再添加一段材料说明文字。这些操作如果全手工来大概需要三十次点击但Agent在几秒内完成出错概率还更低。要注意的是这类批量修改不是“无脑全局替换”。Agent会额外的做一轮条件过滤比如图层名过滤、颜色过滤、块内对象排除等。我在测试时专门构造了五十个不同属性的标注Agent能正确区分“只改常规标注”和“改块内标注”。它的执行结果不是一个“模型猜出来的答案”而是建立在对图形数据的结构化查询之上。2.3 规范审查与图层体检从“人找错”变成“图出问题清单”这次版本里另一个让我眼前一亮的功能是图面体检。传统CAD里图纸是否规范要靠人来对照企业标准查线型对不对、图层有没有乱用、标注缺不缺、有没有重叠实体这些检查又枯燥又容易漏。唯杰WebCAD把这类检查做成了“AI审查清单”逻辑Agent逐项扫描图纸输出一个结构化列表比如“发现6处尺寸标注重叠”“2个实体位于锁定图层”“主墙厚度标注缺失”。它做得到这一步关键不在大模型“会看图”而在于它把“规范”变成了可检索、可比对的规则集合。图层标准、图框模板、线型要求都提前注入到私有知识库Agent审查时先检索当前图纸应该遵循哪套标准再对照图形数据逐项检查。点击问题项视图会直接定位到对应位置并高亮不需要人满图找。这个功能对团队的意义是把图纸交付前的检查环节压缩掉了大部分。“人找错”变成“图出问题清单”而且问题清单还能根据团队规范自定义。当然规范审查不可能做到100%有些涉及设计意图的问题还是得靠人判断但至少重复性的、规则明确的错误机器可以帮你兜住绝大多数。2.4 与传统CAD操作的横向对比我把手绘、传统WebCAD、带Agent的WebCAD做了一个对比感受比较清晰对比维度传统桌面CAD手动WebCAD唯杰WebCAD Agent环境依赖私有安装包、授权复杂浏览器打开即可浏览器打开即可学习成本高需要记大量命令中功能查找仍然繁琐低自然语言描述需求批量修改靠脚本/插件手动逐个改一句话批量执行图纸规范检查靠人眼n套自查清单靠人眼Agent自动生成问题清单错误回滚部分支持撤销支持有限事务级预览批量撤销多端协同弱强强Agent可远程操作表格里那句“事务级预览”可能有点抽象后面我在实操章节展开说。总之Agent让WebCAD的价值不只在“随时随地看图”而是在“随时随地动图”同时还能保证操作过程可监管、可回退。3. Agent怎么做到“会看图、会动手”3.1 从自然语言到命令序列中间经历了什么很多人以为Agent画图就是“把一句话丢给大模型返回一个图形”。真实实现比这严谨得多。唯杰WebCAD的AI服务层会把输入拆成几个环节第一步是意图识别。判断用户是想创建新实体、修改已有对象、删除、查询、标注还是做规范审查。这个分类不能含糊因为创建和修改走的是完全不同的动作链路。第二步是参数抽取。从自然语言中提取坐标、长度、宽度、角度、图层名、线型、颜色、位置关系等关键要素。这里有个容易出偏差的地方用户说“右边800”模型不一定知道“右边”对应的是哪个坐标轴方向。所以要结合当前视口方向和用户选中对象的位置来做相对坐标计算不能只靠字面值。第三步是动作编排。模型会生成一个结构化的JSON数组数组里每一项都是一个具体的编辑器动作比如创建矩形、偏移实体、修改颜色、添加标注。每一步都带参数和依赖关系。这个输出不是给人看的而是给命令层执行的。我把一次“画带尺寸标注的门洞”动作序列简化放在下面方便理解[ { action: createRect, args: { start: [0, 0], end: [6000, 5000], layer: WALL, color: 1 } }, { action: offset, args: { source: last_entity, distance: 240, side: inside } }, { action: createRect, args: { start: [1200, 0], end: [1800, 5000], layer: DOOR, color: 4 } }, { action: addDim, args: { entityId: created_wall_rect, measureType: linear, align: outside } } ]可以看到动作序列里包含依赖引用比如“last_entity”表示上一步创建的对象这个机制让Agent能“记得自己刚画了什么”也能在后续操作中精准引用。依赖关系设计得越清晰Agent的能力边界就越容易扩展。最后一个环节是动作校验。命令层会检查坐标是否在图纸范围内、图层是否存在、实体ID是否有效、参数类型是否正确。校验不通过的动作会被拦截并反馈给Agent由Agent尝试新一轮修正。这套“生成-校验-修正”的循环才是Agent自我修正能力落到实处的关键。3.2 动作层必须有的三道安全闸门AI绘图最让人担心的就是“画错了改不回来”。我在实际使用中觉得唯杰WebCAD在安全机制上是考虑得比较周全的核心是三道闸门第一道是预览闸门。Agent生成的动作序列不会立即写入图形数据而是先在一个覆盖层overlay里做虚拟渲染。用户会看到半透明预览效果比如新矩形以蓝色虚线的形式浮在图面上确认无误后再提交。这是给用户一个最直观的“决定权”。第二道是事务闸门。每一次Agent操作从开始到完成都是包在一个事务里的。如果执行过程中出现异常比如某个参数导致实体重建失败事务会整体回滚图纸保持原状。这对批量修改特别重要五十个标注改完一半发现方向错了你不需要一个个手动改回去直接撤销整个Agent批次就行。第三道是权限闸门。Agent能调用哪些动作是可以按角色配置的。只读用户只能让Agent做查询和标记普通编辑者可以生成、修改实体但不可以批量删除管理员才拥有清理图层、重构实体等高风险操作权限。权限模型是和WebCAD的账号体系绑定的这也意味着团队内部可以放心让Agent跑起来不用担心它越权搞出破坏性操作。三道闸门的思路和很多RPA机器人流程自动化工具在设计安全边界时的做法是相通的。目的不是限制AI而是让AI的错误可以被低成本纠正。我觉得任何做“AI自动动手”的产品都值得把这三层机制作为标配否则用户不敢放开用。3.3 私有知识库注入让Agent认识你的图层规范有一种常见情况是Agent能画图但画出来的东西不符合公司规范。比如公司规定外墙图层叫“A-WALL”颜色是红色线型是实线但Agent默认建的图层叫“WALL”颜色是绿色。这种偏差靠提示词很难根治因为不同团队的标准差别太大不可能都塞进一段prompt里。唯杰WebCAD的解法是私有知识库注入。团队可以把本单位的图层标准、图框模板、线型要求、标注样式说明整理成文档切片、向量化后存进知识库。Agent每次执行任务前会先根据当前会话的主题去检索相关知识片段再把片段拼进给模型的上下文中。这样它在创建图层和实体时就会优先按照公司标准来。我试着上传了一份标准文档文档里规定门洞必须放在“B-DOOR”图层并使用虚线。然后我重新让Agent画门洞这次自动创建的图层就是“B-DOOR”线型也正确后续标注也自动匹配该图层的样式。这说明Agent不是“记住了我的提示词”而是真的去检索并采纳了企业规范。这个方案之所以重要是因为它让一个通用模型服务可以适配完全不同的业务团队。不用为每个团队微调模型只要更新知识库即可。对中小团队来说维护规范文档的成本比维护一套独有模型低得多。3.4 端到端示例画一樘带尺寸标注的门洞我整理一个最简单的端到端流程方便理解Agent实际工作起来是什么手感。第一步用户输入“在第一跨墙上开一个门洞宽度900高度2100加上尺寸标注。”第二步Agent先检索知识库中的门洞规范然后返回执行计划“将创建矩形表示门洞轮廓、使用B-DOOR图层、采用虚线线型生成线性标注标注门洞宽度和高度。”这些步骤以卡片形式列在面板上。第三步用户点击确认Agent把动作序列提交给命令层。命令层校验参数后在图中选中墙线、计算插入位置、创建门洞矩形、设置图层、添加两条尺寸标注并自动调整标注位置避免重叠。第四步Agent在动作执行完后再做一次自我检查读取新增实体确认图层正确、标注存在、门洞尺寸与用户输入一致。检查通过后在面板显示“已完成”。整个过程用户只需要一句话和一次确认。如果用传统WebCAD做至少需要以下步骤切换图层、选择线型、打开捕捉、画矩形、修剪、添加标注、调整标注文字位置。Agent把这些繁琐的序列压缩成了“表达-确认”两个环节。压缩的代价是后端复杂度的提升但对用户体验而言是实打实的减负。4. 上线前后踩过的坑和排查入口4.1 坐标单位全线错乱不是模型能背的锅我第一次用Agent画一面墙的时候图纸直接炸了矩形长度缩放了十倍位置还偏出去了上百个单位。当时第一反应是模型理解错了坐标后来排查才发现问题出在图纸单位。图纸用的是厘米而Agent默认按毫米生成参数等于所有尺寸都被除以了10。这个坑的核心教训是单位换算必须放在动作层不能指望模型输出正确的绝对值。正确做法是先读取当前图纸配置的单位在参数抽取阶段统一换算成图纸内部坐标模型只负责输出“逻辑值”比如“6000毫米”真正的坐标变换由命令层执行。按这个思路改了之后不管图纸是毫米、厘米还是英寸Agent都不会再犯同类错误。类似的坑还有比例因子。在1:100的图框里标注文字高度是3.5毫米这个3.5其实是打印尺寸图面尺寸要按比例放大。这类换算规则同样不适合交给模型自由发挥最好是做成配置项命令层统一计算。动作层的“兜底能力”远比模型聪明更重要。4.2 流式输出和图形操作撞在一起早期版本里我们试过让Agent一边生成回复一边同步绘制图形想着“看起来更快”。结果实测很尴尬用户还看到模型在打字图面已经画了一半想取消却发现动作和文本流是绑定的撤销起来特别别扭。更麻烦的是大模型流式输出会有“语义还不完整”的中间状态正好在那个时间点执行动作很容易画出烂尾对象。后来我们调整策略把Agent输出和图形动作彻底解耦。模型完整返回结构化动作序列之后用户先看到完整计划点击确认动作才统一提交执行。中间的“生成速度”不再直接影响绘图体验用户也不会被半成品打断。这个改变虽然损失了一点“实时感”但换来了可靠性和控制感。还有一个内存问题供参考高频执行批量操作时每次动作都触发全图刷新浏览器很容易卡顿。现在的做法是把图形刷新改成“局部脏区更新异步实体重建”只重绘受影响区域同时把批量动作的变更记录合并成一次提交减少对数据层的压力。4.3 Agent一本正经写出不存在的图层有一次我让Agent把一块区域替换为“面层”它自动创建了一个新图层叫“A-FL”然后所有实体都挂上去。问题是这个图层在企业规范里根本不存在正确的是“A-FLOOR”。模型没有撒谎它只是从语义联想里生成了个相似词。这种幻觉在纯聊天里无伤大雅但在图纸里出现一个错误图层名后续统计、导出、出图都会乱套。应对措施是加一层图层名校验动作执行前Agent生成的图层名先查图层表命中规范库里的标准名则通过没命中就进入“自动修正或拒绝”逻辑。自动修正可以基于知识库里的同义词表比如“门”“DOOR”“B-DOOR”这些关键词做映射。如果映射不到就明确告知用户“图层不存在请确认或改用现有图层”而不是自作主张新建。这让我明白了一件事在CAD这类强规范场景里不能只靠prompt约束模型的幻觉必须用“外部事实表”来兜底。模型是生成者事实表是审核者两者分工合作才能做到既灵活又准确。4.4 多人协作时被Agent误覆盖怎么办WebCAD本来就是多人协同的Agent一进来带来一个新问题如果两个人同时在图纸里操作Agent执行一批批量修改可能覆盖了另一个人刚画的内容。测试中我碰到过一种情况同事在A区画了一根管道我让Agent清理所有重叠实体它直接把同事的新管道当成重叠对象给删了。虽然后面可以撤销但协作场景里“被删的东西悄悄消失”很吓人。我们的调整方案是给Agent加“协作确认模式”涉及删除、覆盖、锁定图层修改这类高影响动作时Agent先提交一个“建议变更集”其他在线成员会收到通知确认后才真正生效。同时给Agent划分工作区同一时刻只能在一个指定区域内执行操作避免它越区动别人的东西。如果你也在做类似的多人在线编辑工具建议从一开始就把Agent的操作和用户操作区分标记比如实体元数据里加一栏“createdByAgent”。这样不仅可以追溯还可以做更细粒度的权限控制出了问题能快速定位到具体是哪一批次操作造成的。4.5 问题排查速查表现象常见原因排查/解决入口图形整体缩放倍率不对图纸单位与Agent默认单位不一致在动作层统一换算不依赖模型输出绝对值实体画到图纸范围外坐标解析未结合视口方向和当前比例调整相对坐标计算逻辑加入图纸范围校验批量修改只改一半就中断动作序列中存在失败项检查事务回滚机制逐条重放动作序列定位失败项Agent创建了不存在的图层模型语义联想产生幻觉在动作校验中加入图层名映射和规范库比对多人同时编辑时对象被覆盖Agent操作未纳入协作包围区启用建议变更集或工作区限制图纸卡顿、内存占用持续上涨高频动作触发全图刷新改用局部脏区重绘批量动作合并提交排查时我个人的习惯是先看“Agent返回的动作JSON”里有没有明显异常再看命令层的校验日志最后看用户的输入原文。大多数问题都出在“Armed转换”和“边界条件”上模型本身反而不太背锅。5. 后续扩展方向与我的个人建议5.1 别急着做“全自动设计”先把“琐碎动作”交给Agent这个版本用下来我最大的体会是Agent最好用、最稳的场景不是“一次性画出一整套施工图”而是“把琐碎、确定、重复的动作包圆”。比如批量改图层、统一标注样式、规范审查、批量偏移墙线这些活规则明确、动作固定模型不需要太多创造性出错率也低。反而是“全自动从零设计方案”这种需求目标模糊、约束复杂Agent容易跑偏用户也不敢放手。我给团队落地时的建议是先选2到3个高频、痛感明显的场景跑起来像“画门洞”“批量标注”“图层体检”这类让用户感受到效率提升建立信任感再逐步开放更复杂的生成能力。产品在一开始就把Agent定位成“绘图助手”而不是“全自动设计器”用户的预期管理会舒服很多技术的实现压力也小得多。5.2 提示词是起点动作层才是胜负手很多做AI产品的人一开口就问“你们提示词怎么写的”我当然也写了不少。但实测下来提示词再精巧都补不了动作层设计不合理的坑。Agent能力的上限其实由“可调用的动作接口”决定。如果你的命令层只提供了“创建直线”“删除实体”这种最基础的动作那Agent再强也只能画出火柴盒一样的东西。而一旦动作接口里有了“创建墙段、偏移、修剪、标注、整合图层”这类更高级、更接近业务操作的组合Agent的能力边界马上就不一样了。所以我把前期大部分精力放在“动作API设计”上而不是堆提示词。设计动作时注意幂等性同一个请求重复执行结果应该一致方便重试和回滚。另一个原则是“动作越小越好拆分”类似把“画一堵墙”拆成“选图层、定坐标、创建矩形、偏移、修剪”每个子动作都能独立校验比一个大而全的“画墙”动作更容易排查问题。这套方法和微服务拆分的思路很像放到CAD动作层同样成立。5.3 多模态输入和离线小模型还有的玩现阶段Agent主要吃自然语言指令但往远了看多模态输入一定是个大方向。我已经在测试“把手绘草图拍照上传让Agent识别轮廓并转成CAD实体”的场景。手绘线条虽然有噪声但模型可以通过轮廓分割和关键点提取生成适合矢量化的路径再由命令层转换为标准的Polyline或Region。这个方向能极大降低非专业用户进入CAD的门槛想象空间不小。另一个方向是端侧小模型。目前Agent依赖云端大模型联网成本和安全顾虑都是现实问题。部分高频、规则简单的命令解析比如“改个图层”“加个标注”完全可以放在端侧小模型里本地完成。小模型不需要多聪明能把高频动作搞定就行复杂需求再走云端。等WebCAD和AI的结合继续往下走一定会出现“本地实时、云端深度”的混合方案到时候浏览器里跑轻量绘图AI也不会是什么新鲜事。最后再分享一点个人的使用心得和Agent配合画图最重要的不是把需求说得又多又细而是把“参考对象”说清楚。图面里选中一个门框让Agent“照着这个门框再画三个”比描述一堆尺寸参数要稳得多。因为Agent能直接读取选中对象的几何信息和属性少一轮语言来回就少一次被误解的机会。这个技巧听起来很不起眼但实际用起来是我觉得提升AI制图成功率最高的一条。